首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

SOCKET同时接收客户端连接有关问题

2012-03-01 
SOCKET同时接收客户端连接问题程序和典型的网络都一样的调用接收数据是单进程, 处理消息时把消息和接收时

SOCKET同时接收客户端连接问题
程序和典型的网络都一样的调用
接收数据是单进程, 处理消息时把消息和接收时生成的socketid连同消息给线程处理,并在线程里回应客户端,之后在线程里把句柄关闭

客户端工具A,B, 有连接和发送消息按钮
1.首先点击A上面的连接按键,然后点击B上面的连接按键
2.然后点击A上面的发送消息按键, 然后点击B上面的连接按键
结果是A的消息可以正常收到,B的消息为空,(首先B是肯定发了的,因为是专门的TCP/IP工具嘛)
我尝试着把步骤2调下顺序,结果一样.
所以问下大侠们是什么问题

....
listen(Socket, 1) // 这里1有没有问题?我写成2也是一样的不行
while(true)
{
....
 socketid = accept()
 fd_set readfds;
 readfds = socketid ;
 select(...., socketid, NULL, NULL )
 接收消息就不说了
 把消息和接收时生成的socketid连同消息给线程处理
....
}
......

线程:
fun(socketid)
{
...
  sendtoclient(socketid)
  close(socketid) //这里会不会有关不掉的情况?
....
}



[解决办法]
学习了
[解决办法]
socketid = accept()
 fd_set readfds;
 readfds = socketid ;
 select(...., socketid, NULL, NULL )

典型的select模型,select放accept之前的。lz怎么反的呢??

热点排行