名字不能取太长 2022-08-08 14:27 采纳率: 76.1%
浏览 71
已结题

Socket编程想与外网通信

在socket编程中希望在外网的客户端也能和服务端通信,路由器做了端口映射,请问服务端监听的ip应该填什么?是本地内网ip吗?然后客户端发送数据的目标ip又应该填什么?
测试中服务端填了内网ip,客户端的发送目标ip填了路由器wan口的ip,但是仍然不能通信,请问为什么

  • 写回答

4条回答 默认 最新

  • 刘欣的博客 2022-08-08 15:55
    关注

    在socket编程中希望在外网的客户端也能和服务端通信,路由器做了端口映射,请问服务端监听的ip应该填什么?是本地内网ip吗?然后客户端发送数据的目标ip又应该填什么?

    回答:服务器监听的ip就是自己的本机IP地址(内网IP),客服机发送目的应该填外网IP(公网IP,WAN口IP)。 网络链路如下:服务器IP----公网IP----客服机IP。

    测试中服务端填了内网ip,客户端的发送目标ip填了路由器wan口的ip,但是仍然不能通信,请问为什么?

    回答:分段检查问题:
    1、3个IP是否能够ping通,来验证网络物理的联通性。
    2、只ping通还不行,SOCKET是基于自己的端口工作,还要测试端口是否联通,可以用telent来测试SOCKET的端口通讯是否正常。
    3、 路由器和服务器做的端口映射,应该是成对的,这里容易出问题,需要重点检查一下路由器是否正确端口映射了服务器的端口。
    4、注意操作系统的防护墙,可能阻挡,需要关闭。

    我的网络经验:1999年成功接通重庆市第一根ADSL网络,后用C#+HP-SOCKET完成了自己的聊天服务器。
    我的CSDN BLOG百度: 刘欣 CSDN

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月8日
  • 已采纳回答 8月8日
  • 创建了问题 8月8日

悬赏问题

  • ¥15 用Multisim设计汽车尾灯控制电路
  • ¥100 求用matlab求解上述微分方程的程序代码
  • ¥15 请问各位,如何在Jetson nano主控板的Ubuntu系统中安装PyQt5
  • ¥15 MAC安装佳能LBP2900驱动的网盘提取码
  • ¥400 微信停车小程序谁懂的来
  • ¥15 ATAC测序到底用什么peak文件做Diffbind差异分析
  • ¥15 安装ubantu过程中第一个vfat 文件挂载失败
  • ¥20 GZ::CTF如何兼容一些靶机?
  • ¥15 etcd集群部署问题
  • ¥20 谁可以帮我一下问一下各位