如何在没有侦听器的情况下创建TCP连接?

BubLblckZ

我目前正在使用Winsock 2开发C ++网络程序,这是一个聊天程序,两台计算机之间没有服务器。如果没有一个用户被迫运行具有侦听器的服务器程序,这将很方便,这将使他们不得不向前移植。当然,这将要求他们两个都输入彼此的IP,但这没关系。有没有一种方法可以通过在两台不同的计算机上运行相同的客户端程序,使用相同的端口并各自输入另一台计算机的IP而不用进行端口转发来创建TCP连接?

x

尽管您需要呼叫bind以允许另一台机器连接到该端口,但是您不需要呼叫accept

只要两个进程都bind在其接受端口上进行了调用,然后假定该地址sin已初始化为适当的目的地,则每个进程都可以使用如下所示的循环对称地相互连接:

  while (connect(s, sin, slen) < 0) {
      if (errno == ECONNREFUSED) continue;
      perror("connect");
      _exit(0);
  }

这是TCP状态机图中的“同时打开”情况。双方同时发送SYN,因此双方以SYN / ACK进行响应。双方发送ACK完成三向握手后,双方进入ESTABLISHED状态。

在线试用不支持线程或访问环回,但确实允许我方便地介绍完整的编码示例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

XML onClick 如何在没有事件侦听器的情况下工作?

来自分类Dev

我可以在没有f:ajax侦听器的情况下将panelGroup链接到侦听器吗?

来自分类Dev

如何在没有事件侦听器的情况下检查数据是否仅存在于 firebase 数据库中一次

来自分类Dev

在没有多个事件侦听器的情况下检测表单commit()?

来自分类Dev

如何在没有部署描述符的情况下在Spring中注册侦听器

来自分类Dev

antlr4:如何在没有生产规则的情况下为令牌生成侦听器回调?

来自分类Dev

Amazon ALB:如何在没有自定义域的情况下设置HTTPs侦听器

来自分类Dev

如何在没有匿名函数的情况下设置事件侦听器?(不失去范围)

来自分类Dev

如何在没有互联网连接的情况下创建热点?

来自分类Dev

如何在没有互联网连接的情况下创建热点?

来自分类Dev

如何在没有上下文管理器的情况下连接到WebSocket?

来自分类Dev

如何在没有路由器的情况下正确建立与远程主机的连接?

来自分类Dev

如何在没有 rdp 的情况下连接到 AWS Windows 服务器?

来自分类Dev

如何在没有控制器的情况下创建有效的AuthenticationManager?

来自分类Dev

如何在没有主机编译器的情况下创建Cuda模块

来自分类Dev

如何在没有主机编译器的情况下创建Cuda模块

来自分类Dev

如何在不随机执行函数的情况下将变量传递给具有事件侦听器的函数

来自分类Dev

Android View XML中的数据绑定条件语句过多,如何在没有附加侦听器的情况下移入ViewModel

来自分类Dev

通过模板的侦听器模式,如何在不指定模板参数的情况下使用模板化类?C ++

来自分类Dev

如何在不将事件侦听器放在 HTML 标记中的情况下获取事件目标/这个?

来自分类Dev

如何在没有netstat的情况下查看dnsmasq正在侦听的地址

来自分类Dev

如何在没有互联网连接的情况下创建一个新的 Laravel 项目?

来自分类Dev

在R中没有打开连接的情况下如何创建连接对象?

来自分类Dev

如何在没有“ -secret” jnlp选项的情况下允许从属连接到jenkins主服务器?

来自分类Dev

如何在没有服务器的情况下通过套接字连接两个Android设备

来自分类Dev

如何在没有互联网的情况下安装思科代客连接器?

来自分类Dev

如何在没有Internet连接的情况下使无线AP可以访问(本地服务器)?

来自分类Dev

如何在没有连接显示器的情况下启动 Qt GUI 应用程序?

来自分类Dev

如何在没有ppk文件的情况下从移动应用程序连接linux服务器?

Related 相关文章

  1. 1

    XML onClick 如何在没有事件侦听器的情况下工作?

  2. 2

    我可以在没有f:ajax侦听器的情况下将panelGroup链接到侦听器吗?

  3. 3

    如何在没有事件侦听器的情况下检查数据是否仅存在于 firebase 数据库中一次

  4. 4

    在没有多个事件侦听器的情况下检测表单commit()?

  5. 5

    如何在没有部署描述符的情况下在Spring中注册侦听器

  6. 6

    antlr4:如何在没有生产规则的情况下为令牌生成侦听器回调?

  7. 7

    Amazon ALB:如何在没有自定义域的情况下设置HTTPs侦听器

  8. 8

    如何在没有匿名函数的情况下设置事件侦听器?(不失去范围)

  9. 9

    如何在没有互联网连接的情况下创建热点?

  10. 10

    如何在没有互联网连接的情况下创建热点?

  11. 11

    如何在没有上下文管理器的情况下连接到WebSocket?

  12. 12

    如何在没有路由器的情况下正确建立与远程主机的连接?

  13. 13

    如何在没有 rdp 的情况下连接到 AWS Windows 服务器?

  14. 14

    如何在没有控制器的情况下创建有效的AuthenticationManager?

  15. 15

    如何在没有主机编译器的情况下创建Cuda模块

  16. 16

    如何在没有主机编译器的情况下创建Cuda模块

  17. 17

    如何在不随机执行函数的情况下将变量传递给具有事件侦听器的函数

  18. 18

    Android View XML中的数据绑定条件语句过多,如何在没有附加侦听器的情况下移入ViewModel

  19. 19

    通过模板的侦听器模式,如何在不指定模板参数的情况下使用模板化类?C ++

  20. 20

    如何在不将事件侦听器放在 HTML 标记中的情况下获取事件目标/这个?

  21. 21

    如何在没有netstat的情况下查看dnsmasq正在侦听的地址

  22. 22

    如何在没有互联网连接的情况下创建一个新的 Laravel 项目?

  23. 23

    在R中没有打开连接的情况下如何创建连接对象?

  24. 24

    如何在没有“ -secret” jnlp选项的情况下允许从属连接到jenkins主服务器?

  25. 25

    如何在没有服务器的情况下通过套接字连接两个Android设备

  26. 26

    如何在没有互联网的情况下安装思科代客连接器?

  27. 27

    如何在没有Internet连接的情况下使无线AP可以访问(本地服务器)?

  28. 28

    如何在没有连接显示器的情况下启动 Qt GUI 应用程序?

  29. 29

    如何在没有ppk文件的情况下从移动应用程序连接linux服务器?

热门标签

归档