关于TCP/IP通信问题(200分)

  • 主题发起人 主题发起人 tracksun
  • 开始时间 开始时间
T

tracksun

Unregistered / Unconfirmed
GUEST, unregistred user!
[?]我想请教两个关于TCP/IP通信的问题,请帮忙一下。问题如下

假设:
某公司有一内部局域网,网中PC1的IP为192.168.16.55,该公司通过一路由器将公司整个局域网用户都连接到Internet(采用NAT技术),路由器的内网地址为192.168.16.1,其internet的IP为61.114.123.23。请问:internet上的另一用户PC2(IP:202.96.154.101)需要通过TCP/IP或UDP/IP协议向PC1传送数据,其Socket该如何设置(其IP地址该填什么)?

再假如:
上述PC2如果也在一个NAT网中,能否实现PC2到PC1的直接通信?其办法是什么?
 
关注并且提供100分
 
如果它们在同一个LAN中,毫无疑问可以,TCP,UDP都行。
不在同一LAN中则需要中间路由器支持转发TCP或UDP,需要配置路由器。(我这样想,不知道对不对。)
 
只能从内部主动往外连,不能从外部主动往内连
 
用TCP/IP协议,用DELPHI的两个Socket控件
1、Internet上的机器启动一个ServerSocket
2、先由局域网内机器ClientSocket连上ServerSocket
3、ServerSocket向ClientSocket发内容
 
PC2必须是直接上网的,
首先PC1要主动建立和PC2的Socket连接
Socket建立连接以后,就可以直接发东西了,不需要考虑NAT的区别,
如果需要PC2来主动建立连接是不可能的,必须PC1主动建立Socket连接到PC2。
 
PC2,pc2同时在不同的内网中,而且都不是直接上网是不能能建立连接的。
拿OICQ来举例,
利用OICQ传送文件的时候,如果双方在不同内网,则OICQ无法传送文件成功
他会报一个“双方在不同的防火墙后面”,意思就是双方在不同的内网。
 
Pc1和PC2不能直接建立连接的,需要通过中介,比如代理服务器。
 
那要传送的数据先传到服务器上,(服务器的IP地址),然后在客户端查询
 
用网外的工网机器转发也可以
 
很多人都说了结果.
原因是.192.168.16.55 的主机可以通过router联到202.96.154.101,router起作用,
但202.96.154.101找不到 192.168.16.55,因为192.168.x.x 网段是保留地址,internet
上不会由该地址的路由信息.
pc2 在另一个NAT中,那就谁都联不上谁了.原因同上:无路由信息.
 
不敢苟同楼上navy的说法。
前面一段的分析是正确的。
如果pc2在另一个NAT中,可以将两个NAT通过路由器连接,pc1和pc2就可以象在同一个LAN
上通讯了。(各自使用对方的ip)
 
同意楼上的看法,补充一点:
如果pc2在另一个NAT中,可以将两个NAT通过路由器连接,或者使用udp.
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1078770
 
哈哈,我正在找这方面的资料,看了上面的,有不少收获
 
后退
顶部