请问各位前辈,如何用VC实现C/S模式中的多线程SOCKET通信?

holeon 2003-01-17 11:22:21
我想实现一个简单的功能:
用一个服务器端接收多个客户端的连接请求.
当监听到一个连接请求时,服务器端建立一个线程来处理此请求,然后继续监听.
处理连接请求的线程接收客户端发来的一串字符,显示后关闭Peer并结束线程.

我用的方法是在主线程中定义CSocket类对象Server来进行监听,当监听到后建立一个CSocket类的对象Peer,把其做为线程参数传递到线程中用以接收信息.
编译正常通过.
问题是在线程中接收到字符串并显示后调用Peer->Close();时出现断言错误.

请问各位前辈这是为什么呢?麻烦一定帮帮小弟!最好能给一串能用的代码.有劳有劳

200分奉送.(谁能帮我解决另发贴补分.绝不食言)
...全文
80 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandrowjw 2003-02-08
  • 打赏
  • 举报
回复
没用过CSOCKET,直接用API的话只要在退出线程的时候close掉由监听的socket生成的子socket就可以了。CSOCKET的内部封装机制可能不太一样。
sdmity 2003-02-07
  • 打赏
  • 举报
回复
同意 King_Play(程序猎人)
我写过一个类似的程序,文件下载的,用到了你说的这个方法,
不过当时用的是API,现在想来也可以用CSOCKET,不过我当时给线程传的参数是accecpt后的sockid.我想用到的CSOCKET类实例还是在线程的内部的生成的好.
你说的问题怀疑为在主控线程中有释放行为.
程序獵人 2003-02-07
  • 打赏
  • 举报
回复
到[我的专家门诊]里面,看[我的问题],然后每个帖子后有管理,点[管理],后面的懂中文就行了。
程序獵人 2003-01-17
  • 打赏
  • 举报
回复
CSocket类,我记得是基于消息机制的,好像不支持多线程。

建议使用Socket的API进行操作。
wxwlshyl 2003-01-17
  • 打赏
  • 举报
回复
我会
不过我是才来的,不知道这"分"是什么意思???

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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