应用程序定义的socket应该包括

应用程序定义的socket应该包括,第1张

IP地址和端口号两部分。

socket也叫做套接字。用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过套接字向网络发出请求或者应答网络请求,它是一个处于应用层和网路层之间的一个封装起来供人使用的接口。

socket是通信的基石,是支持TCP与IP协议的网络通信的基本 *** 作单元。它是网络通信过程中端点的抽象表示。

ret = write(socket_fd, send_buff, strlen(send_buff))

应该改为:

ret = write(new_socket_fd, send_buff, strlen(send_buff))

accept成功后,所有的 *** 作,都要针对新获得的句柄来 *** 作,不然会引发错误,造成主程序异常退出。

调用Socket的每个函数之后,会有对应的返回信息,观察这些返回信息,就可以比较轻松的调试了。

如:SOCKET

sock=socket();如果不成功,则sock为NULL。

int

iret=send();(UDP

用sendto())判断iret的值,它表示实际发送的字节数,如果为-1,则是socket网络故障,一般是sock为NULL,或者没有用WSAStartup()初始化套接字。

iret=recv()(UDP用recvfrom())iret表示实际收到的字节数,故障诊断跟send()一样。

bind(),Listen()等都可以查msn获取它的成功与失败代码。

另外用WSAGetLastError()可以获取上次Socket的错误代码,得到这个代码后,你可以在google上搜索这个代码,就知道具体的网络错误(

CString

sErrorCode;

sErrorCode.Format("%d",WSAGetLastError)

sErrorCode中就包括了错误代码。

)。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11507060.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存