socket技术难点
生活随笔
收集整理的這篇文章主要介紹了
socket技术难点
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、使用socket建立連接后,客戶(hù)端和服務(wù)端只要有一方使用close()或者dispose()關(guān)閉連接,對(duì)端在發(fā)送或接收時(shí)都會(huì)拋出異常:遠(yuǎn)程主機(jī)強(qiáng)迫關(guān)閉了一個(gè)現(xiàn)有的連接。 2、使用TcpClient建立連接后,當(dāng)客戶(hù)端在TcpClient實(shí)例上調(diào)用close()方法,或者在流上調(diào)用dispose()方法時(shí): (1)服務(wù)端調(diào)用read()方法會(huì)持續(xù)返回0,但不會(huì)拋出異常,所以會(huì)產(chǎn)生無(wú)限循環(huán),需要break出循環(huán); (2)服務(wù)端調(diào)用write()方法會(huì)拋出異常:無(wú)法將數(shù)據(jù)寫(xiě)入傳輸連接:?您的主機(jī)中的軟件中止了一個(gè)已建立的連接。。 (3)如果直接關(guān)閉掉客戶(hù)端,或者客戶(hù)端執(zhí)行完畢沒(méi)有調(diào)用stream.dispose()或者TcpClient.Close(),則在調(diào)用read()方法時(shí)會(huì)拋出異常:?無(wú)法從傳輸連接中讀取數(shù)據(jù):?遠(yuǎn)程主機(jī)強(qiáng)迫關(guān)閉了一個(gè)現(xiàn)有的連接。。 3、使用TcpClient建立連接后,當(dāng)服務(wù)端在TcpClient實(shí)例上調(diào)用close()方法,或者在流上調(diào)用dispose()方法時(shí): (1)客戶(hù)端調(diào)用write()方法會(huì)拋出異常:無(wú)法將數(shù)據(jù)寫(xiě)入傳輸連接:?您的主機(jī)中的軟件中止了一個(gè)已建立的連接。。 (2)如果直接關(guān)閉掉服務(wù)端,則調(diào)用write()方法會(huì)拋出異常:無(wú)法將數(shù)據(jù)寫(xiě)入傳輸連接:?遠(yuǎn)程主機(jī)強(qiáng)迫關(guān)閉了一個(gè)現(xiàn)有的連接。。 4、創(chuàng)建udp廣播套接字需要調(diào)用SetSocketOption,否則會(huì)拋出一場(chǎng)錯(cuò)誤。udpSocket.SetSocketOption(SocketOptionLevel.Socket,?SocketOptionName.Broadcast,?1);
轉(zhuǎn)載于:https://www.cnblogs.com/liuslayer/p/8394831.html
總結(jié)
以上是生活随笔為你收集整理的socket技术难点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vault-图形界面
- 下一篇: 优化项目中树结构数据的操作