服务器端的同一个端口,能否同时接受客户端两次以上的连接请求?

ttoomm 2001-05-23 12:44:00
下列程序能否得到预期的回显结果。
服务器端:
……
char buf1[10],buf2[10];
CSocket lstn,sock1,sock2;
lstn.Create(20015);
lstn.Listen();
lstn.Accept(sock1);//接收一个连接;
lstn.Accept(sock2);//在前一个连接没有关闭的情况下,再次接收一个连接。
sock1.Receive(buf1,10);
sock2.Receive(buf2,10);
sock1.Send(buf1,10);
sock2.Send(buf2,10);
……
客户端:
……
char buf1[10],buf2[10];
CSocket sock1,sock2;
sock1.Create();
sock2.Create();
sock1.Connect(ServerADDR,20015);//ServerADDR为服务器端的IP地址。第一次请求连接;
sock2.Connect(ServerADDR,20015);//在前一个连接成功后,马上进行第二次连接请求。
sock1.Send(buf1,10);
sock2.Send(buf2,10);
sock1.Receive(buf1,10);
sock2.Receive(buf2,10);
……
...全文
200 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gongxy 2001-05-23
  • 打赏
  • 举报
回复
客户端调用GetPeerName,得到的端口号,是服务器listen的端口
黑白双傻 2001-05-23
  • 打赏
  • 举报
回复
可以的.

服务器端调用lstn.Accept(sock1)的时候,事实上是让sock1用了一个其他的端口来进行实际的数据传输,监听的端口号不被占用.
突然想起一个问题,在客户端调用GetPeerName,得到的端口号,应该不是服务器listen的端口吧.试试.
verybigbug 2001-05-23
  • 打赏
  • 举报
回复
用多线程!!!
没听说过在单线程中不停的Recv的,即使成功,也会留下很多
隐患的。。。
设计就非常不合理。

黑白双傻 2001-05-23
  • 打赏
  • 举报
回复
什么叫"监听端一次能监听五个连接请求"?
不懂
baichichi 2001-05-23
  • 打赏
  • 举报
回复
可以达到预期的目的,监听端一次能监听五个连接请求,但如果用上数组的话,就可以是任意个。
在客户端调用GetPeerName,得到的是服务器端的监听端口。
Kevin_qing 2001-05-23
  • 打赏
  • 举报
回复
可以

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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