我做了一个c/s程序,支持多个客户端。server端发送消息,为何同时连接的多个客户端中只有最近连接的一个能收到?但多个客户端给服务器发的消息,服务器都能正常接受。
欢迎各位大侠指教,谢谢了!
欢迎各位大侠指教,谢谢了!
解决方案 »
- SetWindowsHookEx 失败 返回0x0005 拒绝存取——已经第3贴了
- resource.h 这个文件有找不到了!!!急!!!
- 我要制作自己的控件,请大家给一些参考资料
- AdjustTokenPrivileges 失败了 1300
- 高手请进...
- 为什么IHTMLDocument2工作起来不稳定
- 提问:关于CListCtrl的动态刷新问题。谢谢!!!
- 星期一辞职,今天找到工作 , 放分.
- 动态创建的CListCtrl怎样相应单击的事件呢?
- 怎么找出txt文件中的重复行啊??
- 寻找DirectShow 高手!! 共同交流
- 请问哪里有COM或COM+的教程下载,是不是学习COM都有要会SDK或API
server - clientb 之间有个socketb
...你是不是服务端发消息了只用socketa发消息了啊
而没有用socketb, socketc,发消息啊
void CListeningSocket::OnAccept(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
CClientSocket* pSocket=new CClientSocket(m_pMyServerDlg);
if(m_pMyServerDlg->m_pListeningSocket->Accept(*pSocket))
{
m_pMyServerDlg->m_pConnectionList.AddTail(pSocket);
m_pMyServerDlg->m_pClientSocket=pSocket;
m_pMyServerDlg->m_list.InsertString(0,"有客户端连接!");
}
else
delete pSocket;
}void CMyServerDlg::OnSend()
{
// TODO: Add your control notification handler code here
if(m_pClientSocket)
{
char pMsg[10000];
GetDlgItem(IDC_SENDDATA_EDIT)->GetWindowText(pMsg,10000);
SendMsg(m_pClientSocket,pMsg);
}
return;
}void CMyServerDlg::SendMsg(CClientSocket* pClientSocket,char* pMsg)
{
pClientSocket->Send(pMsg,strlen(pMsg));
}Client端接收:void CMyClientDlg::FetchMsg(CRequestSocket *pRequestSocket)
{
char pMsg[1000],tempMsg[1000];
int ByteCount;
int EndFlag=0;
CStringArray* temp = new CStringArray; strcpy(pMsg,"");
do
{
strcpy(tempMsg,"");
ByteCount=pRequestSocket->Receive(tempMsg,1000);
if(ByteCount>1000 || ByteCount<=0)
{
m_list.InsertString(0,"接受信息错误");
return;
}
else if (ByteCount<1000 && ByteCount>0)
{
EndFlag=1;
}
tempMsg[ByteCount]=0;
strcat(pMsg,tempMsg);
}while(EndFlag==0);
}
急呀!!!!!!!谢谢各位了!!!!!!!!!