利用CSocket连接多台机器出现的问题

wolfghostyang 2003-05-28 08:30:31
SOCKADDR_IN cliadd;
int n;
CString temp;
n=sizeof(SOCKADDR_IN);
Accept(m_sockHandle,(SOCKADDR*)&cliadd,&n);

一台机器这样连接没有问题
但是当第二台机器连接上的时候就出现了错误
请教 这是啥原因啊
...全文
33 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolfghostyang 2003-05-28
  • 打赏
  • 举报
回复
那在每次Accept之前都要把原来的m_sockHandle保存起来再
Accept(m_sockHandle)是吧?

要不要先m_sockHandle.Detach()
再Accept(m_sockHandle);啊?
azuretttc 2003-05-28
  • 打赏
  • 举报
回复
yes:

int listen (
SOCKET s,
int backlog
);

backlog is the max number .
wolfghostyang 2003-05-28
  • 打赏
  • 举报
回复
那是在OnAccept函数里用循环吗
监听套接字的Listen函数里不是可以指定同时接受的客户数吗
lucksender 2003-05-28
  • 打赏
  • 举报
回复
当然了,你只调用了一次Accept阿, 每个连接都要Accept阿,
wolfghostyang 2003-05-28
  • 打赏
  • 举报
回复
在老兄你的提示下 我把程序改了一下:
CSockHandle* pHandle=new CSockHandle;
Accept(*pHandle,(SOCKADDR*)&cliadd,&n);
这样的确是可以接收多个连接了 但是这样又有一个问题了
我在OnAccept函数里动态创建的套接字在OnAccept结束之后(其他地方)还能用吗?
它的内存在什么时后被释放啊?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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