帮忙看一个Socket通信问题,谢谢!
我现在用SOCKET做客户端/服务器的聊天程序。计划允许20个客户端连接,双方都用的是SDI结构,在服务器端的Doc类的OnNewDocument()里面创建的侦听Socket,现在有问题如下:
1、服务程序启动后为什么我点击“新建”快捷按钮他就会弹出Bind错误呢?怎么解决?
BOOL CServerDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
//((CEditView*)m_viewList.GetHead())->SetWindowText(NULL);
SOCKADDR_IN addr;
int ret;
m_ListenSocket = socket(AF_INET,SOCK_STREAM,0);
addr.sin_family = AF_INET;
addr.sin_port = htons(nPORT);
addr.sin_addr.S_un.S_addr = INADDR_ANY;
ret = bind(m_ListenSocket,(LPSOCKADDR)&addr,sizeof(addr));
if( ret == SOCKET_ERROR)
{
AfxMessageBox("bind error");
return FALSE;
}
AfxBeginThread(ListenThread,(LPVOID)m_ListenSocket);//线程来处理 侦听
return TRUE;
}
2、服务端要把从客户端接收的消息发给所有客户端,怎么做呀???另外怎么来管理客户的通信Socket?