读书人

服务器端动态创建socket关闭错误

发布时间: 2013-10-24 18:27:24 作者: rapoo

服务器端动态创建socket,关闭异常
MFC中new的socket,客户端关闭以后,使用shutdown(),closesocket()关闭,然后delete掉创建的socket,但是程序在closesocket()处偶尔会有异常,提示内存异常。有时候也不会崩,求解,可以不用closesocket直接delete吗 服务器 socket 内存
[解决办法]
closesocket的时候,看看参数是不是非法了?有没有使用多线程,是不是close之前已经被delete了?
[解决办法]
closesocket不能省

引用
建议的最好的关闭方式是这样的:

发送完了所有数据后:

(1)调用shutdown(s, SD_SEND),如果本端同时也接收数据时则执行第二步,否则跳到第4步。

(2)继续接收数据,

(3)收到FD_CLOSE事件后,调用recv函数直到recv返回0或-1(保证收到所有数据),

(4)调用closesocket,关闭socket句柄。

closesocket的时候,是不是另一端还在接收?

读书人网 >VC/MFC

热点推荐