简单问题,服务器需要定义多少个socket? 做个聊天室的东西,请问需要为每个需要连接的客户端定义一个socket吗?还是定义一个就可以解决所有客户端的连接?如果每个客户端需要为其定义一个socket,那上万的客户端的话不是需要上万个socket?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看你用怎么实现了。用TCP学是UDP呢?TCP的话要很多个SOCKETUDP就不用了因为不用建立连接 TCP 但我看一个聊天室的程序他只用一个socket 很奇怪 不可能。如果TCP的话最起码两个SOCKET,一个用于listen,一个用于传输数据。 while( TRUE ) { if ( SOCKET_Select(pChatRoom->m_ListenSock, 100, TRUE) ) { sockaddr_in clientAddr; int iLen = sizeof(sockaddr_in); SOCKET accSock = accept(pChatRoom->m_ListenSock, (struct sockaddr *)&clientAddr , &iLen); if (accSock == INVALID_SOCKET) { continue; } //做一些其他操作…… Sleep(100); } }你看 就一个pChatRoom->m_ListenSock 这个socket就accept所有客户端的连接,我不知道他一个客户端连接了之后 其他客户端怎么连接的。但我试过开几个客户端发信息都能收到 while( TRUE ) { if ( SOCKET_Select(pChatRoom->m_ListenSock, 100, TRUE) ) { sockaddr_in clientAddr; int iLen = sizeof(sockaddr_in); SOCKET accSock = accept(pChatRoom->m_ListenSock, (struct sockaddr *)&clientAddr , &iLen); if (accSock == INVALID_SOCKET) { continue; } //做一些其他操作…… Sleep(100); } } while( TRUE ) { if ( SOCKET_Select(pChatRoom->m_ListenSock, 100, TRUE) ) { sockaddr_in clientAddr; int iLen = sizeof(sockaddr_in); SOCKET accSock = accept(pChatRoom->m_ListenSock, (struct sockaddr *)&clientAddr , &iLen); if (accSock == INVALID_SOCKET) { continue; } //做一些其他操作…… Sleep(100); } } SOCKET accSock = accept(pChatRoom->m_ListenSock, (struct sockaddr *)&clientAddr , &iLen); SOCKET accSock = accept(pChatRoom->m_ListenSock, (struct sockaddr *)&clientAddr , &iLen);每次连接都会创建一个SOCKET... 各位,我定义的成员变量确实用不了。 如何生成指定大小的对话框 图片信息解析 利用vc++ 数组参数传递问题 鼠标移到右边QQ自动滑出的界面 怪事!eVB调用eVC编写的DLL程序时怎么会两次运行的结果不一样 如何用vc++ 做头文件 菜鸟刚学一天vc,请教高手:我在窗体上放了一个check和一个按钮,当这个check被打勾了,点击按钮时就弹出对话框:‘已经打勾了’,这么简单 初学vc++,被一些基本问题搞混了头,望高手解答 MFC 阻塞窗口问题 请教一下音视频通信技术的问题 我现在学了C++,想做有窗口界面的程序,看看MFC?感觉好难,是不是还需要学什么,知识体系结构不够?
用TCP学是UDP呢?
TCP的话要很多个SOCKET
UDP就不用了因为不用建立连接
if ( SOCKET_Select(pChatRoom->m_ListenSock, 100, TRUE) ) {
sockaddr_in clientAddr;
int iLen = sizeof(sockaddr_in);
SOCKET accSock = accept(pChatRoom->m_ListenSock, (struct sockaddr *)&clientAddr , &iLen);
if (accSock == INVALID_SOCKET) {
continue;
}
//做一些其他操作……
Sleep(100);
}
}你看 就一个pChatRoom->m_ListenSock 这个socket就accept所有客户端的连接,
我不知道他一个客户端连接了之后 其他客户端怎么连接的。但我试过开几个客户端发信息都能收到
if ( SOCKET_Select(pChatRoom->m_ListenSock, 100, TRUE) ) {
sockaddr_in clientAddr;
int iLen = sizeof(sockaddr_in);
SOCKET accSock = accept(pChatRoom->m_ListenSock, (struct sockaddr *)&clientAddr , &iLen);
if (accSock == INVALID_SOCKET) {
continue;
}
//做一些其他操作……
Sleep(100);
}
}
if ( SOCKET_Select(pChatRoom->m_ListenSock, 100, TRUE) ) {
sockaddr_in clientAddr;
int iLen = sizeof(sockaddr_in);
SOCKET accSock = accept(pChatRoom->m_ListenSock, (struct sockaddr *)&clientAddr , &iLen);
if (accSock == INVALID_SOCKET) {
continue;
}
//做一些其他操作……
Sleep(100);
}
}
每次连接都会创建一个SOCKET...