當前位置:編程學習大全網 - 編程軟體 - 跨平臺套接字編程

跨平臺套接字編程

異步連接過程:1 . socket 2 . set non-block 3 . ret = connect 4 . ifret = = 0註冊到Reactor5。ElseConnected失敗6。ConnectHandler:反應器接收到可寫事件。但是,如果遠程服務端口根本沒有起來,Reactor仍然會寫表,所以需要其他機制來確定它是否真正連接。所以異步連接時,設置非阻塞後,判斷是否可以寫入來確定是否連接!這個說法是錯誤的。解決方法:在上述第4步之前,調用socket . getsocketopt(socket . sol _ socket,socket.so _ error,&;Ret)如果ret = = 0-->;說明連接建立,否則可以打印ret和os.strerror(ret)查看錯誤代碼。但是這個方案需要註意跨平臺方面:在Linux下,getsocketopt的返回值是errno . ein progress 115在Windows下。getsocketopt的返回值實際上是10035。Windows TCP錯誤代碼顯示:wsaewouldblock-資源暫時不可用。代碼需要調整:4。ret = getsocketopt () if (ret = = 0或ret = = errno。einprogress或ret = = 10035) #或者返回值根據操作系統判斷。
  • 上一篇:人力成本怎麽分析
  • 下一篇:初中學歷的寶媽適合考什麽證?
  • copyright 2024編程學習大全網