社区
进程/线程/DLL
帖子详情
关于在线程间共享套接字的问题???
sekfore
2003-05-21 08:21:33
我的程序有一个监听线程,在接收到客户连接请求以后创建一个新的线程对其进行处理。问题出现了,我的参数都成功地传送到了新的线程,但是我在新线程中对套接字进行的操作都出错,返回的是10038,就是无效套接字。我进行了多次跟踪,该套接字的句柄是成功的传到了新的线程。
就是说我用同样的句柄,在监听线程可以正常工作。但是在新线程就不行。总是套接字无效。请高手指点指点。。谢谢:)
...全文
154
6
打赏
收藏
关于在线程间共享套接字的问题???
我的程序有一个监听线程,在接收到客户连接请求以后创建一个新的线程对其进行处理。问题出现了,我的参数都成功地传送到了新的线程,但是我在新线程中对套接字进行的操作都出错,返回的是10038,就是无效套接字。我进行了多次跟踪,该套接字的句柄是成功的传到了新的线程。 就是说我用同样的句柄,在监听线程可以正常工作。但是在新线程就不行。总是套接字无效。请高手指点指点。。谢谢:)
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sekfore
2003-05-22
打赏
举报
回复
问题解决了,我的类的析构函数里要把套接字关闭。而我的那个监听线程里生成的与新客户对应的套接字是一个局部变量,在过了生存期以后要被系统销毁,这个时候析构函数发生作用,将该套接字关闭了。于是,在新的线程里面得到的套接字句柄就的确是一个无效的句柄了。。
哈哈。。。终于解决了。。。散分啦~ :)
sekfore
2003-05-22
打赏
举报
回复
是这样的,我自己做了一个类把套接字进行了封装。接受请求以后就将这个套接字句柄写入一个新的对象。我曾经做过一个程序,也是用的这样的方法,但是那个程序在线程之间共享的时候并没有这个问题。
regainworld
2003-05-22
打赏
举报
回复
线程没有网络初始化嘛?
Bind
2003-05-21
打赏
举报
回复
代码帖出来
Roger_long
2003-05-21
打赏
举报
回复
你的示例代码,看看
天限天空
2003-05-21
打赏
举报
回复
gz
ZeroMQ学习笔记(2)——
套接字
和模式
文章目录一、
套接字
(socket)API1.
套接字
接入网路拓扑2.用
套接字
传输数据3.单播传输4.I/O
线程
二、消息传递模式1.处理消息2.处理多个
套接字
3.多部分消息4.中
间
层5.动态发现
问题
6.
共享
队列(DEALER与ROUTER
套接字
)7.zmq内置代理功能8.传输桥接三、处理错误和ETERM四、处理信号中断五、检测内存泄漏六、用zmq多
线程
七、
线程
间
信令(PAIR
套接字
)八、节点协调九、零拷贝十、发布-订阅消息封包十一、高水位标记十二、信息丢失的解决方案 一、
套接字
(socket)API Sock
典型C/S模式___多
线程
实现
一、思路 1.1 大致轮廓 图1 多
线程
实现思路 正如图1 所示的那样,main主
线程
核心就在于循环探测是否有客户端的连接请求;一旦有客户端的连接请求,就立刻建立连接然后将客户端
套接字
移交给函数
线程
。主
线程
负责建立连接,函数
线程
负责具体业务的处理。这是非常清晰而且简单的想法。 1.2 要点 主
线程
如何将建立好的客户端
套接字
交付给函数
线程
? 图2 客户端
套接字
在
线程
之
间
传递 进程...
Linux C 多
线程
TCP 并发服务器:从 `accept()` 到工作
线程
的完整解析
本文详细解析了Linux C多
线程
TCP并发服务器的实现原理,重点区分了主
线程
、工作
线程
、监听
套接字
和通信
套接字
四个核心概念。文章通过流程图展示了多
线程
服务器的运行机制:主
线程
负责accept()接收新连接,为每个客户端创建独立的工作
线程
进行通信。深入探讨了
线程
间
资源
共享
问题
,指出文件描述符在进程内
共享
但需明确所有权管理。特别强调了正确传递
线程
参数的方法,避免常见的竞争
问题
。本文为构建高效的多
线程
TCP服务器提供了清晰的设计思路和实现要点。(150字)
java并发(六)
线程
安全与
共享
资源
允许被多个
线程
同时执行的代码称作
线程
安全的代码。
线程
安全的代码不包含竞态条件。当多个
线程
同时更新
共享
资源时会引发竞态条件。因此,了解Java
线程
执行时
共享
了什么资源很重要。 [size=xx-large]局部变量[/size] 局部变量存储在
线程
自己的栈中。也就是说,局部变量永远也不会被多个
线程
共享
。所以,基础类型的局部变量是
线程
安全的。下面是基础类型的局部变量的一个例子: [code=...
C++多进程
有操作系统相关知识的应该知道,
线程
是轻量级的进程,每个
线程
可以独立的运行不同的指令序列,但是
线程
不独立的拥有资源,依赖于创建它的进程而存在。也就是说,同一进程中的多个
线程
共享
相同的地址空
间
,可以访问进程中的大部分数据,指针和引用可以在
线程
间
进行传递。它往往与其他通信机制,如信号量,配合使用,来实现进程
间
的同步和通信。
共享
内存:能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的
问题
;管道,通常指无名管道,管道是最简单,效率最差的一种通信方式,不适合进程
间
频繁的交换数据。
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章