为什么socket在局域网内可以,在广域网就不行?

wurenxiaozu 2004-12-20 09:38:02
请大家帮忙看看,下面是我的程序:
服务器端:client=new IPEndPoint( IPAddress.Any,2288);
server=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
server.Blocking=true;
server.Bind(client);
server.Listen(100);

客户端:IPAddress serIP=IPAddress.Parse(服务器的ip地址);
IPEndPoint sever=new IPEndPoint(serIP,2288);
Socket clinet=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
clinet.Connect(sever);
我在局域网内测试一点问题都没有,可是放在广域网内就不行?报错说连接不到服务器.
...全文
710 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
ekinwt 2004-12-23
  • 打赏
  • 举报
回复
你把服务器监听的IP地址就是括号前面那部分(client=new IPEndPoint( IPAddress.Any,2288))的IP改成"0.0.0.0"即服务器监听0.0.0.0的2288端口.

这样应该就可以了.
wurenxiaozu 2004-12-23
  • 打赏
  • 举报
回复
我客户端是知道服务器的地址的,客户端ping可以ping到服务器,为什么它连不上,非要用它上网的代理服务器去连呢?
a10002 2004-12-21
  • 打赏
  • 举报
回复
安装客户端时要只动去找本网与外界相连的IP和可用端口
再用它去联服务器!
客户端:IPAddress serIP=IPAddress.Parse(服务器的ip地址);
IPEndPoint sever=new IPEndPoint(serIP,2288);

否则它只会在本网中找你所谓的"服务器的ip地址"找不到就报错,找到了服务器不存在也报错!
a10002 2004-12-21
  • 打赏
  • 举报
回复
我感觉,局域网里的IP与广域网没有必然的联系,联系到底在哪?
找不到这种联系的话,你是决不可能解决这种问题的!

所以你在客户端要活一点,安装客户端时要只动去找本网与外界相连的IP和可用端口,每个民局域网都不同,所以这个是动态的.这样之后就变成了全是广域网的问题了!
gzlucky 2004-12-21
  • 打赏
  • 举报
回复
个人感觉有几个问题,
一个是防火墙可能进行阻断,
另一个是不是你们都是内网访问外网啊?
你可以用tracert在client连接你的server端,或者你直接使用telnet xx.xxx.xxx.xxx 2288 来试一试,看是能不能打开,如果端也是打不开,就是server端或者中间路由或防火墙出了问题。

或者你可以这样,在Server端运行后。用netstat -an 查看一下你的2288端口是用什么IP地址来监听的。如果是使用你Internet的IP或者是0.0.0.0 的话 Server应该没问题,如果是局域网IP就不用我说了。

client端当你在运行的时候,立即使用 netstat -n 来看一看是否向你正确的IP地址的2288端口进行连接。
DeliverGuy 2004-12-21
  • 打赏
  • 举报
回复
学习
wurenxiaozu 2004-12-21
  • 打赏
  • 举报
回复
再顶一下,请大家帮忙
wurenxiaozu 2004-12-21
  • 打赏
  • 举报
回复
自己顶一下,请大家帮忙,我还没弄明白呢,谢谢了,客户端真的不要也要有广域网IP地址吗?
wurenxiaozu 2004-12-21
  • 打赏
  • 举报
回复
不会的,端口绝对是打开的,如果端口没有打开,无论我是局域网还是广域网都应该不行的
lxkim 2004-12-21
  • 打赏
  • 举报
回复
端口有可能被屏蔽掉了。。。。
wurenxiaozu 2004-12-21
  • 打赏
  • 举报
回复
那么我不明白了,我用外网访问服务端没有问题,为什么使用内网就是不行呢?
还有,由于用户不固定,我事先不可能知道用户会从哪些地方来访问呀,如果不用IPAddress.Any怎么可以保证连接?
gzlucky 2004-12-21
  • 打赏
  • 举报
回复
如果你的Client是内网的话,需要你的访问外网时用的是NAT转接,否则你如何连接Internet的IP啊?
herony420 2004-12-21
  • 打赏
  • 举报
回复
客户端当然不需要一定的外网IP,因为你生成的socket的flag是不一样的,再多的客户端连接,服务器也能给你区别开,包括在内网里
herony420 2004-12-21
  • 打赏
  • 举报
回复
首先保证你的服务器绑定的IP是你客户端连接的IP,你用的是IPAddress.Any,不能保证是你的客户端连接的IP,
另外看看你的服务器的路由设置,如果路由设置允许这个端口开放给你访问就肯定可以,不会有别的原因,也不要考虑复杂了
wurenxiaozu 2004-12-21
  • 打赏
  • 举报
回复
我确实是用内网访问外网,难道不仅服务器需要一个独立的IP,连客户端也必须有独立的广域网IP吗?
tl0 2004-12-21
  • 打赏
  • 举报
回复
你的代码里没有规定是哪个网段,所以Socket只找当前主机所在的网段,如果服务器和客户机不在一个网段,当然会报错。
Csharpking 2004-12-21
  • 打赏
  • 举报
回复
ding,增加连接的次数。
wurenxiaozu 2004-12-20
  • 打赏
  • 举报
回复
不可能是端口问题,我在服务器上用客户端测试没有问题,但在另外一台机器上就不行,可见端口是打开的
lucbesson 2004-12-20
  • 打赏
  • 举报
回复
应该从最基本的问题研究起,不是一两句话的问题 。
网关 防火墙 等等都是有可能的 !

端口有可能被屏蔽掉了。。。。


wurenxiaozu 2004-12-20
  • 打赏
  • 举报
回复
自己顶一下,请大家帮帮忙,谢谢各位了
加载更多回复(8)
内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
MATLAB基于3D FDTD的微带线馈矩形天线分析[用于模拟超宽带脉冲通过线馈矩形天线的传播,以计算微带结构的回波损耗参数]内容概要:本文介绍了基于3D FDTD(时域有限差分)方法在MATLAB平台上对微带线馈电的矩形天线进行分析的技术方案,旨在模拟超宽带脉冲通过该天线结构的传播过程,并重点计算微带结构的回波损耗参数。该方法通过数值仿真手段精确建模电磁波在天线中的传播特性,适用于高频电磁场仿真与天线性能评估,能够有效支持天线设计优化。文中可能涵盖FDTD算法的基本原理、网格划分、边界条件设置、激励源配置及结果后处理等关键环节。; 适合人群:具备电磁场与微波技术基础知识,熟悉MATLAB编程,从事天线设计、射频工程或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①开展超宽带天线的设计与性能仿真;②研究微带天线在脉冲激励下的瞬态响应特性;③计算和优化天线的回波损耗(S11参数),提升匹配性能;④教学与科研中用于电磁仿真方法的实践训练。; 阅读建议:建议读者结合FDTD理论基础与MATLAB编程实践,逐步实现仿真流程,重点关注时间步长、空间网格精度和边界条件对仿真结果的影响,并通过对比仿真与实测数据验证模型准确性。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧