用Connect建立连接时总出现SOCKET ERROR 10056 怎么解决啊? 5
3个回答
展开全部
Socket error 10056 - Socket is already connected // socket已经连接
网路函式通常会有一定的呼叫顺序,有的函式呼叫成功後便不能再呼叫,否则会出现错误。当连接建立时,client程式呼叫()成功,而server程式呼叫accept()成功。此时若client程式再呼叫一次connect()函式的话,会得到WSAEISCONN这个错误,表示该socket已经处於连接状态了。如果client程式呼叫listen()函式的话也会出现这个错误,表示不应该在此时呼叫这个函式。对於server程式,如果socket已经处於连接状态,程式呼叫connect()函式的话,也会得到WSAEISCONN这个错误。
上述错误是发生在stream socket上,因为stream socket才会建立连接。对於datagram socket,多次成功的connect()函式呼叫是被允许的(对於datdgram socket而言,呼叫connect()函式的目的不在於建立连接)。datagram socket发生此错误的原因是在sendto()函式上,当呼叫sendto()传送datagram时,如果对方位址填入INADDR_ANY(“0.0.0.0”)而port填入0(在sockaddr_in结构中),就会导致WSAEISCONN这个错误。
网路函式通常会有一定的呼叫顺序,有的函式呼叫成功後便不能再呼叫,否则会出现错误。当连接建立时,client程式呼叫()成功,而server程式呼叫accept()成功。此时若client程式再呼叫一次connect()函式的话,会得到WSAEISCONN这个错误,表示该socket已经处於连接状态了。如果client程式呼叫listen()函式的话也会出现这个错误,表示不应该在此时呼叫这个函式。对於server程式,如果socket已经处於连接状态,程式呼叫connect()函式的话,也会得到WSAEISCONN这个错误。
上述错误是发生在stream socket上,因为stream socket才会建立连接。对於datagram socket,多次成功的connect()函式呼叫是被允许的(对於datdgram socket而言,呼叫connect()函式的目的不在於建立连接)。datagram socket发生此错误的原因是在sendto()函式上,当呼叫sendto()传送datagram时,如果对方位址填入INADDR_ANY(“0.0.0.0”)而port填入0(在sockaddr_in结构中),就会导致WSAEISCONN这个错误。
来自:求助得到的回答
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询