【发布时间】:2019-03-15 17:01:57
【问题描述】:
好吧,我是一名合格的程序员,多年来一直在做各种奇迹,但我终于要针对一个我完全无法解决的问题提出一个问题。我希望 Stack Overflow 能在这么多年后再次挽救我的生命。
这是关于唯一对问题。我正在使用 GIO 的 GSocketClient 和 GSocketService 高级 API 来建立异步连接并接受两个对等方之间的传入连接(显然每个都使用相同的程序)。由于对等点可以同时相互连接,因此这会导致 2 个连接,而只需要一个。
我尝试了太多的事情,包括删除绑定 IP 号在另一个之前的连接(这样一个连接被丢弃),但这仍然不总是有效,所以我现在头晕目眩,应该先到哪里,先到哪里。
为了不让我尝试过的所有 b******t 过于复杂,我将直截了当地问:在这种情况下,正确的方法是什么?
【问题讨论】:
-
1.如果您可以找到哪个 IP 在另一个之前,您为什么不尝试在创建第二个之前检查现有连接是否已建立? 2. 为什么断开连接不起作用?
-
@adrtam 连接可能随时出现,随时可以处理,这就是异步本质的本质。我将 IP 转换为一个数字,如果这是该 IP 第二次想要存在于连接列表中,我会尝试删除更高的数字。但是peer是先connect还是先accept是不可预知的,我真的不知道。
-
我认为,如果您希望人们认真对待您,您可能需要在介绍时使用语气。
-
@SergeyA 这是什么意思?
-
我的意思就是我所说的。 “经过认证的程序员多年来一直在创造奇迹,这听起来有点自命不凡。
标签: c sockets networking p2p gio