社区
网络编程
帖子详情
winsock 阻塞的理解:阻塞时,所有套接字阻塞,还是某个套接字阻塞?
fangcheng
2004-04-29 03:51:54
winsock 阻塞的理解:阻塞时,所有套接字阻塞,还是某个套接字阻塞?
...全文
122
15
打赏
收藏
winsock 阻塞的理解:阻塞时,所有套接字阻塞,还是某个套接字阻塞?
winsock 阻塞的理解:阻塞时,所有套接字阻塞,还是某个套接字阻塞?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fangcheng
2004-05-03
打赏
举报
回复
感谢各位的解答
MFCClass(profan) 说的,我猜测他可能认为是在界面线程里处理socket i/o了,我这个问题不是这个意思,我问的是关于多线程的i/o处理
alec626(月吻长河) 这位兄弟可能是经常在界面线程里而不是在工作者线程里操作i/o,所以才有这样的认识
除了几个兄弟和我有相同的错误认识,其他兄弟基本上都有清晰、正确的认识,谢谢各位的解答。
请大家继续帮忙:
http://expert.csdn.net/Expert/topic/3029/3029973.xml?temp=.9331629
halk
2004-04-30
打赏
举报
回复
我认为,阻塞时程序控制权交给了正在执行的socket,程序无法得到控制权,这样像程序死了,
此时其他的socket也不做任何事,这和所有套接字阻塞也有区别,阻塞套接字在工作.
--------------
阻塞的时候,只是该线程处于等待状态,等待该socket上的消息。程序有什么控制权,控制权在cpu手里。线程调度仍然在进行,其他线程仍然会可调度,其它的socket也仍然可以用于工作。
Gladstone
2004-04-30
打赏
举报
回复
造成阻塞的原因:接收数据时端口缓冲区中无数据,这时如果被绑定的端口设置为阻塞
式的,则该操作被阻塞在这里,线程被阻塞,直到有数据到来,该操作完成,线程继续执行。
这个过程中其他端口上的操作是正常的。
可以使用ioctlsocket(m_nSocket, FIONBIO, (ULONG*)&optval)设置端口为非阻塞。
fzd999
2004-04-30
打赏
举报
回复
被阻塞的包括两个方面,一方面是当前套接字所对应的端口被阻塞了,另一方面是当前使用这个套接字的线程被挂起了。
lygfqy
2004-04-30
打赏
举报
回复
应该只是阻塞你当前控制的套接字,而其他的不控制不受影响
whslovexyp
2004-04-30
打赏
举报
回复
调用任何一个阻塞模式的函数,都会产生相同的后果-----耗费或长或短的时间等待操作的完成。它只阻塞调用阻塞函数的套接字。如果程序是单线程的,程序都被阻塞了,如果是多线程的并不影响其他的套接字。
vagabondkq
2004-04-30
打赏
举报
回复
设置某个套接字阻塞,它就阻塞.
UDX协议
2004-04-30
打赏
举报
回复
阻塞是指阻塞正在对这个套接字进行IO的线程,不阻塞其他线程对其他套接字的IO操作
wangle11111
2004-04-30
打赏
举报
回复
阻塞是组塞了现在正在执行的那个套接字,是由于调用某个函数,但这个函数所要求的数据没有及时的拱它使用,所以没有办法了,只能等待了。这样对于能接收多个连接的程序来说就有麻烦了,因为在建立连接的请求者中只要有一个没有把数据传过来,那么响应的函数就要等。而其他的套接字(建立好连接的)即使数据准备好了,发出去了,服务器端也不会响应的,因为它的套接字处于阻塞状态。就好比去买东西,如果对哪个顾客的收银速度慢了,即使你在有钱也要等,等那个顾客交完钱后在去买。。。
sevencat
2004-04-29
打赏
举报
回复
是想哪个阻就哪个阻,想哪个不阻就哪个不阻。
phiger
2004-04-29
打赏
举报
回复
BLOCKING是套接字的可以设置的属性,是针对某一套接字,阻塞是指阻塞正在对这个套接字进行IO的线程,不阻塞其他线程对其他套接字的IO操作
PiggyXP
2004-04-29
打赏
举报
回复
所有的socket都挂起了,
因为其他socket的不到被当前socket占用的资源
月吻长河
2004-04-29
打赏
举报
回复
阻塞时,所有套接字阻塞
你用CSocket做个实验就知道了
微星1234
2004-04-29
打赏
举报
回复
阻塞是所有套接字阻塞的.
MFCClass
2004-04-29
打赏
举报
回复
我认为,阻塞时程序控制权交给了正在执行的socket,程序无法得到控制权,这样像程序死了,
此时其他的socket也不做任何事,这和所有套接字阻塞也有区别,阻塞套接字在工作.
Winsock
套接字
非
阻塞
模式小例程
WinSock
IO模型
本文详细介绍了
Winsock
的六种 I/O 模型:
阻塞
/非
阻塞
套接字
、Select 模型、WSAAsyncSelect 模型、WSAEventSelect 模型、重叠 I/O 模型和完成端口模型。每种模型都有详细的原理说明和编程实例,帮助读者
理解
并掌握各种模型的特点和应用场景。
使用
Winsock
:
Winsock
入门
本文提供了一个逐步指南,介绍如何使用Windows
套接字
(
Winsock
)进行网络编程。涵盖了初始化
Winsock
,创建、绑定和监听
套接字
,以及客户端和服务器之间的数据收发等关键步骤。并提供了完整的客户端和服务器代码示例。
异步非
阻塞
套接字
Winsock
开发网络通信程序的经典入门
本文通过一个简单的示例,介绍了如何使用
Winsock
2 API在Windows环境下编写异步非
阻塞
Socket程序,包括服务器端和客户端的实现过程。
同步与异步
阻塞
与非
阻塞
WinSock
编程
本文深入探讨了同步与异步、
阻塞
与非
阻塞
的概念,并通过一个具体的C/S模型示例解释了如何在Windows环境下使用
Winsock
进行编程。包括如何设置非
阻塞
模式、创建监听
套接字
、接受客户端连接请求以及如何处理数据收发等。
WinSock
三种选择I/O模型
本文详细介绍了
WinSock
中的三种选择I/O模型:基于
套接字
集合的select模型、基于Windows消息处理的WSAAsyncSelect模型和基于事件通知的WSAEventSelect模型。每种模型的特点、应用实例和局限性被逐一剖析,以帮助开发者更好地
理解
和运用这些模型进行网络编程。
网络编程
18,356
社区成员
64,164
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章