//服務端的程式如下
//1.建立乙個伺服器端socket,即serversocket,指定繫結的埠,並監聽此埠8888
serversocket serversocket=new serversocket(8888);
socket socket=null;
//記錄客戶端的數量
int count=0;
system.out.println("***伺服器即將啟動,等待客戶端的連線***");
//迴圈監聽等待客戶端的連線
while(true)
//客戶端的程式如下
//1.建立客戶端socket,指定伺服器位址和埠
socket socket=new socket("localhost", 8888);
//2.獲取輸出流,向伺服器端傳送資訊
outputstream os=socket.getoutputstream();//位元組輸出流
printwriter pw=new printwriter(os);//將輸出流包裝為列印流
pw.write("使用者名稱:alice;密碼:789"); //傳送資訊
pw.flush();
socket.shutdownoutput();//關閉輸出流
//3.獲取輸入流,並讀取伺服器端的響應資訊
inputstream is=socket.getinputstream();
bufferedreader br=new bufferedreader(new inputstreamreader(is));
string info=null;
while((info=br.readline())!=null)
//4.關閉資源
br.close();
is.close();
pw.close();
os.close();
socket.close();
//執行緒執行的操作,響應客戶端的請求(伺服器多執行緒處理多客戶端)
public void run()
socket.shutdowninput();//關閉輸入流
//4.獲取輸出流,響應客戶端的請求
os = socket.getoutputstream();
pw = new printwriter(os);
pw.write("歡迎您!");
pw.flush();//呼叫flush()方法將緩衝輸出
} catch (ioexception e) finally catch (ioexception e)
}
socket網路通訊
read write recv send readv writev recvmsg sendmsg recvfrom sendto include ssize t read int fd,void buf,size t count ssize t write int fd,const void bu...
socket網路通訊《二》
socket網路通訊 本文注意基於socket來分析tcp連線建立過程。先回顧一下tcp連線建立過程 主機a執行的是tcp客戶端程式,主機b執行的是tcp伺服器程式,最初兩端tcp程序處於closed態,a主動開啟連線,對應客戶端connect函式發起連線,b被動接受連線,對應於伺服器listen函...
網路通訊及Socket
1.物理層 提供資訊傳遞的媒介,如同軸電線 2.資料鏈路層 負責建立 維持和釋放資料連線,當接收點檢測到所傳資料中有錯,則會通知傳送失敗重發一遍 對資料的識別 3.網路層 當兩個計算機之間出現若高資料鏈的時候,網路層的任務就是在若干的資料鏈路中間選擇合適的鏈路確保資料的及時傳送 選擇合適的資料鏈路,...