SOCKET服务器问题

m_blackpp 2008-01-09 10:02:20
if(::listen(s, INFINITE) == SOCKET_ERROR)
{
::WSACleanup();
return 0;
}
sockaddr_in remoteAddr;
int nAddrLen = sizeof(remoteAddr);
SOCKET client;
while(TRUE)
{
// 接受一个新连接
client = ::accept(s, (SOCKADDR*)&remoteAddr, &nAddrLen);
if(client != INVALID_SOCKET)
::CreateThread(NULL,NULL,Threadrecv,LPVOID(client),0,NULL);
// 专门建立一个线程为这个连接工作
// 关闭同客户端的连接
::closesocket(client);或者把他"//"掉都不行

}
第一次客户端可以connect并且线程正常工作,客户端关闭连接后第二次再连接,无法connect请问为什么啊,应该如何改
...全文
148 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
痞子酷 2008-02-29
  • 打赏
  • 举报
回复
怎么还不揭帖?
痞子酷 2008-01-30
  • 打赏
  • 举报
回复
::CreateThread(NULL,NULL,Threadrecv,LPVOID(client),0,NULL);
线程中注意:::closesocket(client);
mrdone 2008-01-28
  • 打赏
  • 举报
回复
我觉得你的关闭有问题.
所以,还是在析构的时候关闭吧
huzhangyou 2008-01-16
  • 打赏
  • 举报
回复
::closesocket(client);

怎么可以关闭呢?

晕倒!
FengSC 2008-01-16
  • 打赏
  • 举报
回复
accept有正确执行吗?
ydlchina 2008-01-10
  • 打赏
  • 举报
回复
这个问题似乎与客户端没有关系,可能是服务端不支持多用户连接,或不能判断客户端是下线,自动断开连接

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧