Windows Sockets2 详解3——堵塞模式

我想真正理解windows sockets2的最好方法就是通过编程实践,只有实际去做了,才能获得形象的记忆和深刻的理解。下面我们通过代码看一下堵塞模式下是如何编程的,以一个简单的聊天室程序为例。

先分析一下:在(2)中我们已经了解了堵塞模式的特点,堵塞模式下对socket对象的任何操作都会被挂起,直到操作结束,线程才被唤醒。 因此我们需要一个单独的线程来执行Accept操作,等待客户端连接的到来;对每一个接收的socket对象,都需要一个单独的线程执行recv操作,不断接收客户端发送来的数据;最后我们需要一个线程来将从客户端接收来的消息广播给所有客户。显而易见,服务器端线程的数量会随着连接数量的增加而不断增加,随着线程数量的增加,cpu进行线程切换的时间增加,真正处理请求的时间减少了,造成服务器的响应速度越来越慢。

 

我们主要来看一下服务器端:

代码下载

客户端可以用telnet 127.0.0.1 5555

转载于:https://www.cnblogs.com/hjblog/archive/2010/11/17/1878182.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值