社区
通信技术
帖子详情
unix中如何设置一socket为非阻塞方式?
mnbvcxz
2000-08-16 11:23:00
我在作一ftp客户端程序,现在的问题是在get一个文件时,如网络中断,则程序阻塞,不能退出,听说将socket设为非阻塞可以,请高手指点,多谢.
...全文
215
3
打赏
收藏
unix中如何设置一socket为非阻塞方式?
我在作一ftp客户端程序,现在的问题是在get一个文件时,如网络中断,则程序阻塞,不能退出,听说将socket设为非阻塞可以,请高手指点,多谢.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
borz
2000-08-18
打赏
举报
回复
试一下:
fcntl(socket_fd,F_SETFL,O_NONBLOCK)
Kevin_qing
2000-08-17
打赏
举报
回复
关注
wwwunix
2000-08-17
打赏
举报
回复
用select调用。
linux实战视频课程
Linux是一套免费使用和自由传播的类
Unix
操作系统,是一个基于POSIX和
UNIX
的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的
UNIX
工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了
Unix
以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备
中
,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机
WebServer为什么需要将
socket
设置
为
非阻塞
?
目录一些基本概念解释1.
socket
文件描述符有哪些2.
socket
文件描述符
设置
为阻塞的影响二、使用epoll模型将
socket
设置
为
非阻塞
1.listenfd
非阻塞
2.clientfd
非阻塞
(1)epoll的ET模式(2)epoll返回读写事件,但不一定真的可读写小结 一些基本概念解释 1.
socket
文件描述符有哪些 网络
中
的客户端和服务器进行连接通信时需要建立连接,服务器端需要两个
socket
文件描述符,分别是建立连接时需要的监听文件描述符listenfd和连接完成后的已连接文件描述符clientf
服务器编程心得(四)—— 如何将
socket
设置
为
非阻塞
模式
只要将accept4()最后一个参数flags
设置
成SOCK_NONBLOCK即可。3. 除了创建
socket
时,将
socket
设置
成
非阻塞
模式,还可以通过以下API函数来
设置
:参考:),linux下如果调用fcntl()
设置
socket
为
非阻塞
模式,不仅要
设置
O_NONBLOCK模式,还需要在接收和发送数据时,需要使用MSG_DONTWAIT标志,即在recv,recvfrom和send,sendto数据时,将flag
设置
为MSG_DONTWAIT。
网络编程6: 如何将一个
socket
设置
为
非阻塞
(windows和Linux)
如何将一个
socket
设置
为
非阻塞
(windows和Linux)
socket
的阻塞模式和
非阻塞
模式(send和recv函数在阻塞和
非阻塞
模式下的表现)
socket
的阻塞模式和
非阻塞
模式 无论是Windows还是Linux,默认创建
socket
都是阻塞模式的 在Linux
中
,可以再创建
socket
是直接将它
设置
为
非阻塞
模式 int
socket
(int __domain, int __type, int __protocol) 将__type增加SOCK_NOBLOCK 不仅如此,在Linux上直接利用accept函数返回的代表与客户端通信的
socket
也提供了一个拓展函数accept4,直接将accept4返回的
socket
设置
为
非阻塞
的 send和
通信技术
4,356
社区成员
28,926
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章