EAL

EAL

0个粉丝

8

问答

0

专栏

0

资料

EAL  发布于  2018-09-06 15:30:37
采纳率 0%
8个问答
2798

客户端与服务器断开了连接,再人为地主动关闭这个客户端的Socket程序就不会挂怎么回事

请教大神,客户端程序中,在一个线程使用recv接收服务器数据,当客户端和服务器处于连接状态,人为地主动关闭这个客户端的Socket程序就挂掉, 如果客户端与服务器断开了连接,再人为的主动关闭这个客户端的Socket程序就不会挂,怎么回事?
我来回答
回答16个
时间排序
认可量排序

HXW

0个粉丝

41

问答

0

专栏

1

资料

HXW 2018-09-06 15:33:46
认可0
pipe 信号处理下。关闭的时候未及时感知,重复读,或写会产生pipe信号,默认会杀死进程

EAL

0个粉丝

8

问答

0

专栏

0

资料

EAL 2018-09-06 15:35:17
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105919&ptid=52068]HXW 发表于 2018-9-6 15:33[/url]
pipe 信号处理下。关闭的时候未及时感知,重复读,或写会产生pipe信号,默认会杀死进程[/quote]

我想实现的功能是客户端和服务器正在连接中的时候,我主动关闭我的客户端程序。怎么实现?

HXW

0个粉丝

41

问答

0

专栏

1

资料

HXW 2018-09-06 15:38:31
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105920&ptid=52068]EAL 发表于 2018-9-6 15:35[/url]
我想实现的功能是客户端和服务器正在连接中的时候,我主动关闭我的客户端程序。怎么实现?[/quote]

connect要做成非阻塞就可以了

EAL

0个粉丝

8

问答

0

专栏

0

资料

EAL 2018-09-06 15:39:45
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105921&ptid=52068]HXW 发表于 2018-9-6 15:38[/url]
connect要做成非阻塞就可以了[/quote]

怎么做成非阻塞??貌似只能阻塞啊

HXW

0个粉丝

41

问答

0

专栏

1

资料

HXW 2018-09-06 15:42:06
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105922&ptid=52068]EAL 发表于 2018-9-6 15:39[/url]
怎么做成非阻塞??貌似只能阻塞啊[/quote]

。。。select   IO都可以做成非阻塞,设置超时时间,只是很少有人这么做。我确定connect可以非阻塞

F0A

0个粉丝

7

问答

0

专栏

0

资料

F0A 2018-09-06 15:43:58
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105923&ptid=52068]HXW 发表于 2018-9-6 15:42[/url]
。。。select   IO都可以做成非阻塞,设置超时时间,只是很少有人这么做。我确定connect可以非阻塞[/quote]

我是这么干,可以的。

EAL

0个粉丝

8

问答

0

专栏

0

资料

EAL 2018-09-06 15:46:20
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105923&ptid=52068]HXW 发表于 2018-9-6 15:42[/url]
。。。select   IO都可以做成非阻塞,设置超时时间,只是很少有人这么做。我确定connect可以非阻塞[/quote]

recv可以非阻塞吗?

HXW

0个粉丝

41

问答

0

专栏

1

资料

HXW 2018-09-06 15:48:41
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105925&ptid=52068]EAL 发表于 2018-9-6 15:46[/url]
recv可以非阻塞吗?[/quote]

说了IO都可以,这种网上一搜就能找到

EAL

0个粉丝

8

问答

0

专栏

0

资料

EAL 2018-09-06 15:50:30
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105924&ptid=52068]F0A 发表于 2018-9-6 15:43[/url]
我是这么干,可以的。[/quote]

不用select可以实现为阻塞吗?

F0A

0个粉丝

7

问答

0

专栏

0

资料

F0A 2018-09-06 15:53:44
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105927&ptid=52068]EAL 发表于 2018-9-6 15:50[/url]
不用select可以实现为阻塞吗?[/quote]

阻塞跟select无关,但是用IO复用会好些。

EAL

0个粉丝

8

问答

0

专栏

0

资料

EAL 2018-09-06 15:55:18
认可0
你是用setsockopt来设置recv超时,实现非阻塞吗?

F0A

0个粉丝

7

问答

0

专栏

0

资料

F0A 2018-09-06 16:02:09
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105929&ptid=52068]EAL 发表于 2018-9-6 15:55[/url]
你是用setsockopt来设置recv超时,实现非阻塞吗?[/quote]

我超时直接用的epool中的  非阻塞直接用

F0A

0个粉丝

7

问答

0

专栏

0

资料

F0A 2018-09-06 16:02:43
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105929&ptid=52068]EAL 发表于 2018-9-6 15:55[/url]
你是用setsockopt来设置recv超时,实现非阻塞吗?[/quote]

fcntl  :):)

EAL

0个粉丝

8

问答

0

专栏

0

资料

EAL 2018-09-06 16:04:03
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105932&ptid=52068]F0A 发表于 2018-9-6 16:02[/url]
fcntl[/quote]

我的不是linux。。。

F0A

0个粉丝

7

问答

0

专栏

0

资料

F0A 2018-09-06 16:05:44
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105933&ptid=52068]EAL 发表于 2018-9-6 16:04[/url]
我的不是linux。。。[/quote]

是啥系统?

EAL

0个粉丝

8

问答

0

专栏

0

资料

EAL 2018-09-06 16:09:10
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=105934&ptid=52068]F0A 发表于 2018-9-6 16:05[/url]
是啥系统?[/quote]

rtt,国产操作系统,可以了解一下 :lol
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区