如何在客户端和服务器端同事连接两对Socket?

linfuyong 2002-10-30 12:48:20
我在一个继承自CSocket类的CMainSocket类中,内嵌了另一个同样继承自CSocket类的CIntSocket类成员变量。
在服务器端,我让CMainSocket连接成功后,调用一个继承自CSocket类的侦听函数
LstSocket.Create(2000);
LstSocket.Listen();
在CLstSocket的OnAccept()函数中,调用Accept(IntSocket);

在客户端,调用Connect(HOST_IP,2000);可是连接不成功,返回错误值是WSAENOTSOCK
(10038) “Socket operation on nonsocket”。
请问:这是什么原因,如何解决?

...全文
103 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanhuahui 2002-11-01
  • 打赏
  • 举报
回复
象问题中的一个socket中有另一个socket成员变量的情况?看不懂。。。
jeffandjeff 2002-10-31
  • 打赏
  • 举报
回复
同意楼上,监听端口可以支持多client
你两个socket同时监听一个端口,肯定第二个出错拉,你可以判断以下Create()地返回值
yanhuahui 2002-10-31
  • 打赏
  • 举报
回复
在服务器端用两个侦听函数侦听?去掉一个listen();你对socket通信的总体思路不熟悉,应该去找本书看看,不会花很长时间。当监听到的时候,将监听的socket释放掉它仍在监听,无须再写一个listen();
hauck 2002-10-31
  • 打赏
  • 举报
回复
楼上两位,我的两个监听的Socket不是监听的同一个端口,譬如说,一个监听端口2000,另一个监听2001,所以,必须由两个socket实现。这样,怎么才能不出错呢?
又:
象问题中的一个socket中有另一个socket成员变量的情况,又该如何正确实现连接?
hauck 2002-10-30
  • 打赏
  • 举报
回复
楼上,这是我遇到的问题,我在客户端已经调用了Create()了。
并且我又在另外的两个程序中如下实现:
在服务器端用两个侦听函数侦听;
在客户端分别用两个socket连接,但是只能连上一个,另一个总是出错。如果a连接成功,b就不能再连上了;如果b连接成功,a就连不上,这是为什么?
yanhuahui 2002-10-30
  • 打赏
  • 举报
回复
同上
sans 2002-10-30
  • 打赏
  • 举报
回复
在客户端:
Create(...);//差这两步
Bind( ... );
Connect(HOST_IP,2000);

18,357

社区成员

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

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