基於TCP協議的socket通訊

2022-07-13 09:18:15 字數 1633 閱讀 4587

一、伺服器端

1、建立serversocket,即伺服器端的socket,繫結指定的埠,並偵聽此埠

serversocket server = new serversocket(8888);

2、呼叫accept()方法,開始偵聽,等待客戶端的連線,在未連線成功之前,處於阻塞狀態,返回的socket,用於與客戶端連線

socket socket = server.accept();

3、獲取輸入流,用來讀取客戶端發來的資訊

inputstream is = socket.getinputstream();//位元組輸入流

inputstreamreader isr = new inputstreamreader(is);//字元輸入流

bufferedreader br = new bufferedreader(isr);//緩衝輸入流

string info = null;

while((info=br.readline()) != null)

socket.shutdowninput();//關閉輸入流

4、獲取輸出流,使用者響應客戶端的請求

outputstream os = socket.getoutputstream();//位元組輸出流

printwriter pw = new printwriter(os);//列印輸出流

pw.write("伺服器端已接受你的請求,允許登入");

pw.flush();

socket.shutdownoutput();//關閉輸出流

5、關閉資源

br.close();

isr.close();

is.close();

pw.close();

os.close();

socket.close();

server.close();

二、客戶端

1、建立客戶端socket,指定要連線的伺服器位址和埠號

outputstream os = socket.getoutputstream();//位元組流

printwriter pw = new printwriter(os);//列印流

pw.write("使用者名稱:admin;密碼:123");

pw.flush();

socket.shutdownoutput();//關閉輸出流

3、獲取輸入流,用來讀取伺服器端發來的資訊

inputstream is = socket.getinputstream();//位元組輸入流

inputstreamreader isr = new inputstreamreader(is);//字元輸入流

bufferedreader br = new bufferedreader(isr);//緩衝輸入流

string info = null;

while((info=br.readline()) != null)

socket.shutdowninput();//關閉輸入流

4、關閉資源

br.close();

isr.close();

is.close();

pw.close();

os.close();

socket.close();

基於tcp協議的socket

serve服務端 import socket sk socket.socket 例項物件 sk.bind 127.0.0.1 8080 集合內設定ip和埠,利用bind方法 sk.listen 監聽資訊 conn,addr sk.accept 接受到資訊 while true ret conn.re...

基於TCP協議的socket程式設計

什麼是socket socket是應用層與tcp ip協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,socket其實就是乙個門面模式,它把複雜的tcp ip協議族隱藏在socket介面後面,對使用者來說,一組簡單的介面就是全部,讓socket去組織資料,以符合指定的協議。所以,我們無需深入...

基於TCP協議下的socket程式設計

socket tcp ip協議中乙個埠號和乙個ip位址繫結在一起就生成乙個socket就表示了網路中唯一的乙個程序,它是全雙工的工作方式。基於tcp的socket程式設計 函式的使用 1 socket include see notes include int socket int domain,i...