socket 异步传输

senyi168 2010-09-20 02:43:36
为什么我在服务器端拿到客户端的ip: Client.LocalEndPoint 和本地客户端的ip不一致呢?

本来IP应该是这样的,如下所示:

客户端:192.168.2.22 --> 123.183.209.183
服务端:123.183.209.183 <-- 192.168.2.22

现在是:

客户端:192.168.2.22 --> 123.183.209.183
服务端: 123.183.209.183 <-- 183.7.146.223

客户端的ip是没问题的,现在是服务端的ip 183.7.146.223不知哪来的,为什么不是192.168.2.22呢?

望各位大侠拔刀相助,小弟是新手! 在线等
...全文
163 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
senyi168 2010-09-21
  • 打赏
  • 举报
回复
不知能回答的高人何时能上网呢!不过还是要感谢各位大侠的指点,让我知道了问题的根源!
  • 打赏
  • 举报
回复
提出具体的问题,什么样的问题决定你能得到什么样的回答。(当然,回答的人得刚好上网)
  • 打赏
  • 举报
回复
当然,最厉害的还是要数Skype之类的。
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 senyi168 的回复:]
怪不得我在本地测试是没问题的,一上传到测试服务器就不能进行文件传输了!
那像这种情况,如果我一定要连外网,那该是怎么解决呢?
[/Quote]

你的“文件传输”是什么呢?

不尊重NAT路由规则,其实就是不懂互联网。如果你开发互联网软件(而不是一个小办公室内部的软件),就要先循着NAT的脚步走一段。

文件传输当然可以进行,例如迅雷、QQ等等,人家都可以。但是人家懂互联网。
萨拉嘿 2010-09-20
  • 打赏
  • 举报
回复
获取已知外网IP一端,一般都是服务器端,由客户端先向服务器端发送信息(任意消息),再由服务器向客户端发送文件,
senyi168 2010-09-20
  • 打赏
  • 举报
回复
怪不得我在本地测试是没问题的,一上传到测试服务器就不能进行文件传输了!
那像这种情况,如果我一定要连外网,那该是怎么解决呢?
fengboyangjinfeng 2010-09-20
  • 打赏
  • 举报
回复
路由器帮你转化了 局域网的IP
缭绕飘渺 2010-09-20
  • 打赏
  • 举报
回复
明显是局域网地址
你在局域网测试才得你要的ip的
freefei 2010-09-20
  • 打赏
  • 举报
回复
NAT技术。
javabegin 2010-09-20
  • 打赏
  • 举报
回复
同意楼上,192.168.2.22 是局域网内网地址,你连的服务器是外网地址,所以服务器获得的客户端也是外网地址183.7.146.223。除非你服务器和客户端在同一局域网内。
CGabriel 2010-09-20
  • 打赏
  • 举报
回复
192.168.2.22 是仅在局域网里面用的虚拟 IP, 服务端当然不认。

服务端只认局域网的出口地址。

111,129

社区成员

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

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

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