社区
网络编程
帖子详情
TCP互联网传输打洞问题?????急!!!!!!
xuggzu
2010-03-15 10:48:17
互联网上,一端A是开放某一端口的带路由器电脑,端口映射已作,防火墙例外开启;另一端B也是带路由器电脑,有防火墙。
现在A想传输文件到B,如何实现?TCP打洞如何实现(因为无公网的中间服务器)??期待答案中。。。。。。。。。。。。。。。。。。
只有这点分了,希望有高手相助!
...全文
264
20
打赏
收藏
TCP互联网传输打洞问题?????急!!!!!!
互联网上,一端A是开放某一端口的带路由器电脑,端口映射已作,防火墙例外开启;另一端B也是带路由器电脑,有防火墙。 现在A想传输文件到B,如何实现?TCP打洞如何实现(因为无公网的中间服务器)??期待答案中。。。。。。。。。。。。。。。。。。 只有这点分了,希望有高手相助!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
99263
2010-03-29
打赏
举报
回复
ADSL拨号,如果是通过了路由器上网,就不行了,而且正如楼上所说,是动态IP地址。
jackson35296
2010-03-19
打赏
举报
回复
[Quote=引用 17 楼 rollrock1987 的回复:]
服务器只需要有一个 公网IP地址就可以了 那也就是说 家里的宽带链接电脑后 也是可以作为服务器的 对吧??
[/Quote]
是的,可以做服务器。但是家庭的adsl一般为动态IP,拨一次号就变一次。如果是路由器拨号上网的,你的机器就属于内网了,不能做服务器。除非建立端口映射或完全暴露
yangtao639999
2010-03-18
打赏
举报
回复
借宝地请教个相关问题:
假设两个C端都有防火墙并且都在NAT后面 ,有转发打洞消息的服务器 , 请问:
1。是穿透防火墙写一段相关代码,穿透NAT写段相关。需要两段代码,还是两个根本就是一回事,能封装到一起??
2。如果这是两回事,那么数据包经过路由器的时候是先经过NAT,在由防火墙过滤喽?就是说先对数据包写NAT穿透,在写防火墙穿透???
3。哪位有防火墙穿透的源码??
jackson35296
2010-03-17
打赏
举报
回复
[Quote=引用 6 楼 xuggzu 的回复:]
先感谢以上各位的答复,可是你们没有看清楚我说的意思,拿4楼的jackson35296帅哥答复的来说,其实B电脑才是listen电脑,因为实际上我要把数据从A发送给B。
如果是B发送给A,自然没有问题了。。。
[/Quote]
TCP数据是双向的,不管谁连接谁,只要连接上了,A发给B或者B发给A都没有问题。跟谁listen无关,并不是只有listen的才能接数据。listen的也可以发数据。
kevinmartin
2010-03-17
打赏
举报
回复
lz的要求,必须通过第三方服务器实现,即公网服务器,或者将A当成公网服务器。
没有别的路可以走。
尤其不可能在B不知情的情况下由A push 给B
zhou1xp
2010-03-17
打赏
举报
回复
可以在B的路由器上做一广播,然后让B来连接,只是不知道会不会出现广播风暴
hurryboylqs
2010-03-17
打赏
举报
回复
所以这里根本不是什么打洞问题
这里A能映射端口,也就是说A所处的路由必须具有公网IP!
否则就得走中转或者打洞路线了
奔跑前行
2010-03-17
打赏
举报
回复
这样 你看可不可以 利用A 当做服务器端 然后B 作客户端去连接 ,你A 有做端口映射,也类似外网机器了。。。。
hurryboylqs
2010-03-17
打赏
举报
回复
步骤是这样子的:
A想发数据给B
那么A先直连B,连不上那么A通过服务器中转告诉B 我想连接你
B知道后反连A即可
cqsfd
2010-03-17
打赏
举报
回复
[Quote=引用 6 楼 xuggzu 的回复:]
先感谢以上各位的答复,可是你们没有看清楚我说的意思,拿4楼的jackson35296帅哥答复的来说,其实B电脑才是listen电脑,因为实际上我要把数据从A发送给B。
如果是B发送给A,自然没有问题了。。。
[/Quote]
A电脑一直监听,让B去连不一样吗!连上的话,不管A给B发 ,B给A发,有什么区别?
rollrock1987
2010-03-17
打赏
举报
回复
服务器只需要有一个 公网IP地址就可以了 那也就是说 家里的宽带链接电脑后 也是可以作为服务器的 对吧??
99263
2010-03-17
打赏
举报
回复
没有中间服务器,是没办法实现两个NAT之后的计算机互通的!楼主如果是商用的话,可以考虑AnyChat即时通讯平台开发包:[URL=http://www.anychat.cn]http://www.anychat.cn[/URL],支持UDP、TCP打洞,支持UPNP协议,可实现内网穿透,不过也是需要中间服务器来协助的。
rollrock1987
2010-03-17
打赏
举报
回复
http://blog.csdn.net/rollrock1987/archive/2010/02/04/5289314.aspx
jackson35296
2010-03-15
打赏
举报
回复
你这种情况,根本无须打洞,也不涉及打洞。因为A已经做了端口映射,可以认为A就是外网机器。无论是谁传文件给谁,都必须A做服务端,B去连接A,然后就可以通信了。
A机器listen的端口必须是映射的那个端口,B机器直接connect路由器的公网ip和映射的那个端口即可。由于和你的机器建立了端口映射,路由器会直接把对该映射端口的数据转给你的机器处理。我曾经做过的,就把A机器当做外网机器用就行了,和打洞无关。打洞是没有建立端口映射的的情况下,两台同为内网的机器要通信,必须由公网上服务器协调建立通信通道。
Eleven
2010-03-15
打赏
举报
回复
[Quote=引用 2 楼 xuggzu 的回复:]
需要公网服务器我知道,但是A电脑映射了路由端口,防火墙端口也开启了,那么B先主动连接A,此时A可以获得B的信息,难道不能利用这个临时通道传数据吗?
[/Quote]
做了端口映射,应该可以的
xuggzu
2010-03-15
打赏
举报
回复
需要公网服务器我知道,但是A电脑映射了路由端口,防火墙端口也开启了,那么B先主动连接A,此时A可以获得B的信息,难道不能利用这个临时通道传数据吗?
JonathanS666
2010-03-15
打赏
举报
回复
打洞是需要公网服务器协调的
xuggzu
2010-03-15
打赏
举报
回复
...对了,忘说了,B电脑是不能控制的,也就是说B电脑无法进行映射之类操作,否则也不会有此一问。
xuggzu
2010-03-15
打赏
举报
回复
先感谢以上各位的答复,可是你们没有看清楚我说的意思,拿4楼的jackson35296帅哥答复的来说,其实B电脑才是listen电脑,因为实际上
我要把数据从A发送给B
。
如果是B发送给A,自然没有问题了。。。
kevinmartin
2010-03-15
打赏
举报
回复
TCP没有打洞的说法。
这种情况下是A的公网端口已知,所以应该由B去连接A,A再给B发文件。这种属于PULL的模式,即主动模式。
如果想让A给B直接发文件,属于PUSH模式,那必须A要知道B的公网端口,即过路由器后的端口才行。
Make
Tcp
Hole
注意:以上过程只适合于Cone NAT的情况,如果是Symmetric NAT,那么当Client B向Client A
打洞
的端口已经重新分配了,Client B将无法知道这个端口(如果Symmetric NAT的端口是顺序分配的,那么我们或许可以猜测这个...
内网穿透
TCP
打洞
C语言实现
内网穿透
TCP
打洞
C语言实现 时间2017-03-29 标签socketc语言
打洞
穿透栏目...上篇文章中做了UDP
打洞
,这篇当然就会是
TCP
打洞
了,两个处于不同内网的两台机器如何通过
TCP
/IP协议进行链接通讯呢?这其实跟UDP
打洞
...
计算机网络
传输
层
TCP
和UDP协议
Re: 计算机网络
传输
层
TCP
和UDP协议 #
传输
层协议
TCP
和 UDP 的应用场景 要发送的内容多,需要将发送的内容分成多个数据包发送(
TCP
) 要发送的内容少,一个数据包就能发送全部内容(UDP) #
传输
层协议和应用层...
用
TCP
穿透NAT(
TCP
打洞
)的实现
1.
TCP
穿透原理: 我们假设在两个不同的局域网后面分别有2台客户机A和 B,AB所在的局域网都分别通过一个路由器接入
互联网
。
互联网
上有一台服务器S。 现在AB是无法直接和对方发送信息的,AB都不知道对方在
互联网
上...
网络穿透 P2P 穿透 UDP
打洞
、
TCP
打洞
原理
网络穿透 P2P 穿透 UDP
打洞
、
TCP
打洞
原理
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章