Socket簡介
Socket是一種抽象層,應(yīng)用程序通過它來發(fā)送和接收數(shù)據(jù),使用Socket可以將應(yīng)用程序添加到網(wǎng)絡(luò)中,與處于同一網(wǎng)絡(luò)中的其他應(yīng)用程序進行通信削锰。簡單來說,Socket提供了程序內(nèi)部與外界通信的端口并為通信雙方的提供了數(shù)據(jù)傳輸通道毕莱。通過建立socket連接器贩,可為通信雙方的數(shù)據(jù)傳輸傳提供通道颅夺。socket的主要特點有數(shù)據(jù)丟失率低,使用簡單且易于移植蛹稍。
Socket實現(xiàn)原理
服務(wù)器端首先聲明一個ServerSocket對象并且指定端口號吧黄,然后調(diào)用Serversocket的accept()方法接收客戶端的數(shù)據(jù)。accept()方法在沒有數(shù)據(jù)進行接收的處于堵塞狀態(tài)唆姐。(Socketsocket=serversocket.accept()),一旦接收到數(shù)據(jù)拗慨,通過inputstream讀取接收的數(shù)據(jù)。
? 客戶端創(chuàng)建一個Socket對象奉芦,指定服務(wù)器端的ip地址和端口號(Socketsocket=newSocket("172.168.10.108",8080);),通過inputstream讀取數(shù)據(jù)赵抢,獲取服務(wù)器發(fā)出的數(shù)據(jù)(OutputStreamoutputstream=socket.getOutputStream()),最后將要發(fā)送的數(shù)據(jù)寫入到outputstream即可進行TCP協(xié)議的socket數(shù)據(jù)傳輸