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

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日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效