社区
C++ 语言
帖子详情
怎样通过一个线程结束另一个线程的accept()呢?
zyq_123
2012-05-15 12:13:10
循环
socketclient=accept(......);
//怎样通过另一个线程结束accept呢?
...全文
193
6
打赏
收藏
怎样通过一个线程结束另一个线程的accept()呢?
循环 socketclient=accept(......); //怎样通过另一个线程结束accept呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zyq_123
2012-05-15
打赏
举报
回复
是不是closesocket(sListen)?此处的sListen是socket()返回的SOCKET。
若是closesocket(sListen),那么,accept()返回的是什么值?
是不是INVALID_SOCKET?
是不是调用closesocket(sListen)后,accept()就不再等待了?
www_adintr_com
2012-05-15
打赏
举报
回复
在 accept 那个 socket 上调用 close.
regainworld
2012-05-15
打赏
举报
回复
楼上你得说明操作系统
morebread
2012-05-15
打赏
举报
回复
accept中的socket可以在其他线程中通过closesocket来结束accpet,其他的例如recv,send等之类的所有阻塞的操作也一样适用。我已经试过了,closesocket后accept返回值就是INVALID_SOCKET
mars_man
2012-05-15
打赏
举报
回复
LS说的方法是不行的。在一个线程closesocket另一个线程中处于accept阻塞中的socket,这样本线程也一块儿阻塞了。
首先需要说的是,如果LZ在阻塞线程中根本就不包含退出线程的代码,那就不会有和谐的方法了,只能用TerminateThread暴力拆迁了。
如果accept之后有退出代码的话,你可以通过这个线程发起连接,之后等着退出逻辑。
其实改善一点设计就不会这么糟糕了,比如使用select等这些方法,这样在accept之前就有空间可以安排退出逻辑了。
mars_man
2012-05-15
打赏
举报
回复
LS说的方法是不行的。在一个线程closesocket另一个线程中处于accept阻塞中的socket,这样本线程也一块儿阻塞了。
首先需要说的是,如果LZ在阻塞线程中根本就不包含退出线程的代码,那就不会有和谐的方法了,只能用TerminateThread暴力拆迁了。
如果accept之后有退出代码的话,你可以通过这个线程发起连接,之后等着退出逻辑。
其实改善一点设计就不会这么糟糕了,比如使用select等这些方法,这样在accept之前就有空间可以安排退出逻辑了。
简单多
线程
socket聊天室程序(c语言)
server.c client.c Makefile 在linux下编译通过,C语言编写,短小精练。 server实现数据转发,使用了socket中的
accept
,select,
线程
中的
线程
分离属性(PTHREAD_CREATE_DETACHED)等 client实现读和写的异步,也使用了
线程
分离属性。 直接实现多个client终端对话。 可做为新人学习的参考。
android在wifi下手机与电脑的socket通信
代码完整,手机做服务端,电脑做客户端;也可以反过来,电脑做服务端,手机做客户端。修改积分000000000000000000000000000
Java
结束
线程
的三种方法
线程
属于一次性消耗品,在执行完run()方法之后
线程
便会正常
结束
了,
线程
结束
后便会销毁,不能再次start,只能重新建立新的
线程
对象,但有时run()方法是永远不会
结束
的。例如在程序中使用
线程
进行Socket监听请求,或是其他的需要循环处理的任务。在这种情况下,一般是将这些任务放在
一个
循环中,如while循环。当需要
结束
线程
时,如何退出
线程
呢?有三种方法可以
结束
线程
: 1.设置退出标志,使
线程
正常退
socket编程时,
一个
线程
中
accept
或者recv阻塞中,另
一个
线程
要关闭socket的解决办法
[Solved] How to close a blocking recv socket from another thread? - CodeProject
Android 关闭
一个
线程
线程
对象属于一次性消耗品,一般
线程
执行完run方法之后,
线程
就正常
结束
了,
线程
结束
之后就报废了,不能再次start,只能新建
一个
线程
对象。但有时run方法是永远不会
结束
的。例如在程序中使用
线程
进行Socket监听请求,或是其他的需要循环处理的任务。在这种情况下,一般是将这些任务放在
一个
循环中,如while循环。当需要
结束
线程
时,如何退出
线程
呢? 有三种方法可以
结束
线程
: 1. 使用退出
C++ 语言
65,199
社区成员
250,520
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章