社区
Linux/Unix社区
帖子详情
如何在主进程共享子线程中accept得到的socket号?
ks9960
2003-12-23 07:27:45
用全局变量带回socket号但不能使用,子线程中该资源是私有的。请大家帮忙 谢谢
...全文
65
11
打赏
收藏
如何在主进程共享子线程中accept得到的socket号?
用全局变量带回socket号但不能使用,子线程中该资源是私有的。请大家帮忙 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ks9960
2003-12-24
打赏
举报
回复
没人理我啊!!!痛苦
ks9960
2003-12-24
打赏
举报
回复
va_list老大,人了?
ks9960
2003-12-24
打赏
举报
回复
while(1)
{
if ((newSock =
accept(listenSock, (struct sockaddr*)&sin, sizeof(sin))) == -1)
{
if (errno == EINTR)
{
continue;
}
perror("accept() ");
return -1;
}
// 设置newSock为非阻塞socket
fcntl(newSock, F_SETFL, O_NDELAY);
// 设置超时
if (setTimeout(newSock, expired) <= 0)
{
close(newSock);
continue;
}
......................
g_Sock = newSock;(用它带回让主进程使用)
......................
主进程自己写的get_info()函数用g_Sock接收数据,但收不到啊
fierygnu
2003-12-24
打赏
举报
回复
程序有问题。贴代码。
lichungen
2003-12-24
打赏
举报
回复
进程间通讯,比如管道
rexp
2003-12-24
打赏
举报
回复
我感觉是能公用的。
ks9960
2003-12-24
打赏
举报
回复
自己顶一下
ks9960
2003-12-24
打赏
举报
回复
实在不好意思,是我自己主进程打回应包打错了,被代理把连接断掉了,所以收不到数据了,不是因为与字线程冲突。
结贴!
growup
2003-12-24
打赏
举报
回复
>>g_Sock = newSock;(用它带回让主进程使用)
如果你用的是多进程而不是用多线程,那么这个g_Sock是无法带回父进程的,很明显父子进程各有一个g_Sock变量,不是同一个。
一般做法是父进程accept(),得到newSock后fork()子进程对这个socket处理。
或者用线程。
sharkhuang
2003-12-24
打赏
举报
回复
可以用哦是线程的嘛
fierygnu
2003-12-24
打赏
举报
回复
1、g_Sock = newSock应该设置mutex或condition variable,否则有可能产生冲突。
2、POSIX标准是O_NONBLOCK,不要用O_NDELAY了。
3、g_Sock应该是有效的。accept只是说明对端用connect连接了,即完成了三次握手,对端不一定发送了数据。你用了非阻塞socket,当然可能收不到数据就返回。查看此时的errno。
python
线程
进程、异步IO
该章节主要包括
线程
进程的概念,基于python的
线程
进程实现,GIL锁的影响,消费者生产者模型,进程池的应用以及IO模型的介绍,一句话概括本章的内容就是:实现并发编程,即计算机能够同时处理多个任务。
socket
--多进程,多
线程
服务器
我们知道IP地址是标志网络
中
不用主机的IP地址,而端口
号
就是同一台主机上标志不同进程的地址,IP地址和端口
号
标志网络
中
的唯一地址.(又称
socket
) 在TCP协议
中
,建⽴立连接的两个进程各⾃自有⼀一个
socket
来标识,那么这...
socket
多
线程
编程
线程
在Unix系统下,通常被称为轻量级的进程,
线程
虽然不是进程,但却可以看作是Unix进程的表亲,所有的
线程
都是在同一进程空间运行,这也意味着多条
线程
将
共享
该进程
中
的全部系统资源,如虚拟地址空间,文件描述符和...
python
中
socket
进行多
线程
_Python
socket
进阶 多
线程
/进程
x
Socket
语法及相关
Socket
Families(地址簇)
socket
.AF_UNIX unix本机进程间通信
socket
.AF_INET IPV4
socket
.AF_INET6 IPV6上面的这些内容代表地址簇,创建
socket
必须指定,默认为IPV4
Socket
Types
socket
.SOCK...
【Linux系统与网络编程】13:
Socket
多
线程
为解决
线程
对文件描述符的竞争问题(进程
中
多个
线程
共享
空间),创建文件描述符数组、创建
线程
数组解决
线程
竞争问题。在创建结构体数组、创建
线程
数组之后,所有客户端发送的消息都
得到
了响应,
线程
竞争问题解决。10...
Linux/Unix社区
23,116
社区成员
74,506
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章