SocketErrorCode:10022
生活随笔
收集整理的這篇文章主要介紹了
SocketErrorCode:10022
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? 在編寫.net的網絡服務器時,我使用了裸socket來實現。在windows上,或者在linux上通過.net core來跑時都沒有什么問題,但是通過mono運行調用socket.Bind()時卻總是報ErrorCode為10022的SocketException,表示參數無效。通過命令netstat -a | grep myport并未發現端口占用現象,擔心與權限有關,sudo mono myserver.exe來運行也依然如故。后來用TcpListener來實現,這個問題就沒有了。無奈之下,去瀏覽TcpListener的源碼,發現其內部創建socket是這樣的:
m_ServerSocketEP = new IPEndPoint(localaddr, port); m_ServerSocket = new Socket(m_ServerSocketEP.AddressFamily, SocketType.Stream, ProtocolType.Tcp);? ? 再對比我的代碼,發現創建socket時使用的是未指定AddressFamily參數的構造函數。于是指定參數為AddressFamily.Network,這個問題就解決了。應該是不同的平臺實現在設置默認AddressFamily參數上有差別導致的。
轉載于:https://www.cnblogs.com/Jackie-Snow/p/7470475.html
總結
以上是生活随笔為你收集整理的SocketErrorCode:10022的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Leedcode][JAVA][第11
- 下一篇: LVS 同网段搭建keeplive+lv