服務(wù)器先進(jìn)行
創(chuàng)新互聯(lián)建站專注于江岸網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供江岸營銷型網(wǎng)站建設(shè),江岸網(wǎng)站制作、江岸網(wǎng)頁設(shè)計(jì)、江岸網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造江岸網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供江岸網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
Bind ()綁定服務(wù)器的端口
然后BeginReceive接受客戶端發(fā)送的數(shù)據(jù)
客戶端Bind ()綁定客戶端接受和發(fā)送數(shù)據(jù)的端口
SendTo()來發(fā)送數(shù)據(jù)就可以
不需要進(jìn)行BeginConnect,因?yàn)閁DP不需要連接
你可以根據(jù)服務(wù)器收到的數(shù)據(jù)的長度來判斷,如果服務(wù)器收到的數(shù)據(jù)長度是0,那么意味著你的客戶端程序已經(jīng)斷開了連接。從TCP/IP協(xié)議棧的角度來說,就是客戶端程序關(guān)閉了自己寫的這一半連接,向服務(wù)器發(fā)出了一個(gè)FIN。這涉及到TCP的狀態(tài)遷移,關(guān)于這方面的知識,建議你看一下Richard Stevens先生的《TCP/IP 詳解》卷一和《Unix網(wǎng)絡(luò)編程》卷一,上面有詳細(xì)的解釋。
關(guān)于你的第二個(gè)問題,建議你仔細(xì)看一下自己的服務(wù)器程序代碼。服務(wù)器程序首先要建立一個(gè)監(jiān)聽socket,當(dāng)有客戶端連接上來時(shí),服務(wù)器會(huì)在一個(gè)新socket上接受客戶端連接。所以并不存在“亂”的問題。關(guān)于這個(gè)問題同樣推薦你看上面的兩本關(guān)于網(wǎng)絡(luò)編程的經(jīng)典著作。
Server端不是要建立serversocket么,這個(gè)類會(huì)監(jiān)聽socket連接,客戶端連接服務(wù)端的時(shí)候會(huì)攜帶本機(jī)(客戶端)的ip,服務(wù)器接收連接,經(jīng)過三次握手之后雙方建立tcp連接,然后就可以通訊了,編寫服務(wù)端的時(shí)候并不需要關(guān)心客戶端發(fā)起連接的端口。
獲取ip:socket.getInetAddress()
獲取端口:socket.getPort();
先連接 在獲取到連接以后用AcceptSocketClient得到一個(gè)socke對象 用這個(gè)來判斷對方的IP是否負(fù)荷你的黑名單 具體根據(jù)什么 你可以再接著問