首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boost-ASIO简单回显客户端-服务器无法建立连接?

Boost-ASIO简单回显客户端-服务器无法建立连接?
EN

Stack Overflow用户
提问于 2013-02-23 09:09:37
回答 2查看 783关注 0票数 0

我使用BOOST-ASIO创建一个简单的回显client-server (客户端和服务器端有一个单独的链接)。当我尝试运行服务器时,我使用这个async_tcp_echo_server 4000。对于客户端,我使用blocking_tcp_echo_client #.#.#.# 4000 (使用#.#.#.#作为ip地址)。我在XP-SP3上使用USB卡将计算机连接到无线dsl调制解调器。在客户端运行几秒钟后,我得到了这个错误:

代码语言:javascript
复制
Exception: connect: A connection attempt failed because the connected party did
not properly respond after a period of time, or established connection failed be
cause connected host has failed to respond

你知道它会是什么吗?我关闭了我的防火墙,包括windows防火墙,但我仍然没有得到响应。我的端口会不会在错误的范围内?是否需要包括计算机名才能指定网络上的计算机(网络上有时还有其他计算机处于活动状态)?我确实尝试在另一台直接连接到dsl调制解调器的计算机上运行此程序,但出现了同样的问题。我确实对我的地址执行了ping操作,这对4/4的数据包确实有效。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-23 11:01:40

这可能是各种各样的问题。因此,有必要使用较低级的网络工具,例如netcat来为服务器上的端口提供服务,并尝试从客户端连接到netcat。这可以通过消除应用程序的网络编程代码引入的任何潜在问题来帮助简化问题。如果问题被确定为网络问题,则需要检查以下几点:

  • 验证服务器上的防火墙例外。
  • 验证服务器的网络网关中的防火墙例外。
  • 如果服务器和客户端位于不同的网络上,并且客户端尝试连接到服务器的外部IP,则验证服务器的网关是否知道要路由到服务器的通信。这可能需要在路由设备中设置规则,例如port forwarding
  • 如果服务器和客户端在同一网络上,但客户端尝试通过网络的外部IP连接到服务器,则验证网关是否支持将内部流量环回到外部IP。
  • 使用网络分析工具(例如Wireshark )验证数据包中的time to live字段是否足够高,以便不会被丢弃。
票数 1
EN

Stack Overflow用户

发布于 2013-02-23 10:28:26

你可以试一试

代码语言:javascript
复制
$ telnet server-ip 4000

并查看是否可以建立tcp连接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15035824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档