可能是比较弱的问题,但确实需要大家帮助

northwolves 2006-06-27 08:58:55
两台跨网电脑间电脑A(操作系统WIN98)向电脑B(操作系统WIN2000), 突破网关和防火墙采用TCP协议发送文件,电脑A考虑使用超级终端,无论何时,只要在线,电脑B都能接收到文件并保存到指定文件夹并提示,电脑B如何写代码? WINSOCK 用得不多,紧急请大家帮助,多谢!
...全文
474 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
熊孩子开学喽 2006-08-21
  • 打赏
  • 举报
回复
to楼上
看楼主的题意,应该是有公网地址的,否则一般没有人会在内网架设防火墙的。


分析一下,这个问题总归要有一个固定不变的IP才能解决。如果不是A也不是B,那么就只能依靠第三方了。
比如楼主开设一个什么网络硬盘的,然后A负责往上面扔东西,B负责从上面拿东西。
pigsanddogs 2006-08-06
  • 打赏
  • 举报
回复
vpn是很方便但需要b的网关或者a的网关是个公网ip,而且楼住能操纵并且在上面架设一个ras server.
没条件则用不了了

ps:其实vpn也不过是个通过第3方(ras server)建立tcp通信的方式而已,不过是对用户透明.
系统自动建立的.
VirtualDesktop 2006-08-05
  • 打赏
  • 举报
回复
恩~其实开vpn的方法不错~
我啃 2006-08-05
  • 打赏
  • 举报
回复
300分啊先DING再JF
熊孩子开学喽 2006-08-05
  • 打赏
  • 举报
回复
举个例子给楼主:
比如假设B端内部网段为192.168.1.0,外部地址为:203.99.3.11 IP为192.168.1.222
在B处防火墙上开设一个VPN地址池为192.168.1.230---240
那么只要在A上建立一个VPN拨号(就在新建电话拨号的地方,选择VPN拨号就可以)
拨号目标地址为203.99.3.11 , VPN拨号成功之后电脑A就可以得到192.168.1.230---240中的人和一个地址(从小到到,如果已经有别的机器拨入这个VPN,那么就会得到之后的一个地址)
此时,从应用层上,电脑A和B已经在同一个网段中了,也就可以直接相互通讯了.
熊孩子开学喽 2006-08-05
  • 打赏
  • 举报
回复
考虑到B端有防火墙,最简单的方法就是建立一个VPN,无论是编程上还是实际操作上都是最简单最常用的方法,甚至不用对TCP编程,只需要按照内部网络拷贝文件的方法就可以进行文件的发送,两台电脑的通讯甚至可以直接用DOS命令: net send来进行.
VPN就专门用来在防火墙上开通道的,为何舍近求远呢?
pigsanddogs 2006-08-04
  • 打赏
  • 举报
回复
如果都在NAT下面, 是不能建立tcp连接的.
nat协议规定了不能建立反响连接. 除非在路由上做了nat port mapping
udp是可以穿透nat的, 但是有个前提, 就是他们通信必须第一次都发给一个server
server变能知道2个client经过nat后映射的port.
然后通告2个client, 对方隐射后的port, ip分别是什么. 既此可通信.
但不是非常稳定. 因为nat有可能会动态的修改udp的隐射后的端口.

楼主的条件1.
无论何时,只要在线,电脑B都能接收到文件并保存到指定文件夹并提示
那么可以肯定. a,b的ip等可能经常会换. 那么不通过第3方, 他们是互相不知道的
又根据条件2
电脑A考虑使用超级终端
超级终端只支持TCP, 所以即便1满足, 还是建立不了tcp连接, 因为nat的关系

那么只能通过第3方转发了.
第3方一定要是个internet上的公网服务器c, 这样a才可以通过超级终端建立连接.
同样, b只要在线, 也必须告诉c的存在. 但b和c的协议却可以用udp
这样可以节省资源
这样
如果b在线,并且在c上注册了的话. 条件1

1: a----->超级中断tcp ----->c
2: 条件1不满足, 告诉a失败. 等会尝试
3: 条件1满足. c向b发送一个请求, 等待文件.
4: a传诵文件, c把文件字节转给b.
5: a发送完毕. c告诉b完毕. b msgbox

这里有个小技巧
考虑到发送效率. 满足下列条件之1才发送
1: 和上次发送间隔达到某个值( 如500ms)
2: buff满 (如1024字节)


monica888 2006-08-04
  • 打赏
  • 举报
回复
用超级终端连服务器 服务器再给B发文件 两台内网电脑不能直接连接 除非有一方在路由器里做了NAT
iland9876543210 2006-08-03
  • 打赏
  • 举报
回复
ding
一笑拔剑 2006-06-30
  • 打赏
  • 举报
回复
可以使用类似灰鸽子的上线通知功能

先将文件放到一个互联网页面中

然后再从页面中读取 这样就可以绕过防火墙了
熊孩子开学喽 2006-06-29
  • 打赏
  • 举报
回复
我觉得应该在B端的防火墙上开一个VPN端口,电脑A拨上B的防火墙之后就会获得一个B端IP段地址,然后就可以象在一个网端一样操作文件了。
zyg0 2006-06-29
  • 打赏
  • 举报
回复
最好说具体点 比如 ip然后 分析下
zyg0 2006-06-29
  • 打赏
  • 举报
回复
如果有代理服务器的话 用udp可以实现 tcp不怎么会用代理
tcp跨越防火墙 用80端口看看
aperyx 2006-06-29
  • 打赏
  • 举报
回复
關注......
PANBing 2006-06-29
  • 打赏
  • 举报
回复
关注!正好想找这方面的资料...
TechnoFantasy 2006-06-28
  • 打赏
  • 举报
回复
在VB版不是原来有一个突破防火墙的网络传输的实现么?LZ找一下。
一笑拔剑 2006-06-28
  • 打赏
  • 举报
回复
可以通过网页 二次
VirtualDesktop 2006-06-28
  • 打赏
  • 举报
回复
用UDP,穿透
VirtualDesktop 2006-06-28
  • 打赏
  • 举报
回复
突破网关和防火墙采用TCP协议发送
用TCP几乎不可能
阿牛138588 2006-06-28
  • 打赏
  • 举报
回复
跨网,我不一定要直接传输吧。
加载更多回复(4)

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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