CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  网络编程

网络的问题,解答有分

楼主22cgreen(飘香女孩)2005-07-02 09:41:24 在 VB / 网络编程 提问

有时我觉得有点想不通,TCP   UDP/IP协议都要通过IP地址和端口来确实信息发给谁和让谁接收,对于有外部IP的计算来说,这没什么不好理解的,问题是很多台计算机共用一个IP,在外网,内网的IP是不能用的,必须用共享的那个IP,那么返回的数据怎么知道这个数据是内网那台机子呢.我想有几种可能性.  
  1.客户端发送信息时通过路由器(IP分享器)把客户的内网IP和端口封装在起来,加上自己的IP和端口,向外发送,也就是说这个包内除了有路由器的IP和端口信息外还有客户计算机的IP和端口信息.但这好象并不合乎TCP/IP协议的标准,因为对于服务器来说,他只能按TCP/IP协标准来解包,那边客户端的信息也只能作为普通数据还不被认为是路由信息.  
  2.路由器在收到客户计算机的包时,把内网的IP去掉,端口换成自己的端口,这个端口在路由器里对应于一人客户端口和IP,这个端口是随机的,在客户有信息包来时就用一个空闭的端口.  
   
  哈哈,我想一定是下面一种了.  
   
  问题是:当两台计算机都在内网,都可以通过IP分享器(路由器)连上INTERNET,说明白一点可以聊QQ.  
  在已知两方的外部IP和内部IP及端口的情况下,怎么样使两台计算机相连啊.怎么编程实现啊. 问题点数:100、回复次数:14Top

1 楼pweixing(幸运星)回复于 2005-07-02 09:56:25 得分 0

这个就是路由器的功能了啊!否则怎么叫路由器呢?  
  路由器的NAT(网络地址转换)功能,使用路由器的这种功能,就能够屏蔽公司内部局域网的网络地址,利用地址转换功统一转换成电信局提供的广域网地址,这样网络上的外部用户就无法了解到公司内部网的网络地址。也就是说你可以利用这个功能进行编程。  
   
  Top

2 楼joke1131(左右逢缘)回复于 2005-07-02 12:05:59 得分 0

提到qq啊,他是基于UDP上的东东   啊,呵呵,楼上哥哥给你解释了路由的功能,换句话说是数据分组哦,它把数据分组发送出去啊,回来的包也会分组回来的,呵呵。Top

3 楼hdhai9451(☆新人类☆)回复于 2005-07-02 13:02:12 得分 0

先up  
   
  再看  
  Top

4 楼Hellohuan(java 好不好???)回复于 2005-07-02 17:39:12 得分 0

UPTop

5 楼22cgreen(飘香女孩)回复于 2005-07-05 09:28:50 得分 0

我晕死,我不是不知道路由怎么工作的,下面才是我的问题,是:  
  题是:当两台计算机都在内网,都可以通过IP分享器(路由器)连上INTERNET,说明白一点可以聊QQ.  
  在已知两方的外部IP和内部IP及端口的情况下,怎么样使两台计算机相连啊.怎么编程实现啊.  
   
  说明一点就是我们只能用对方的外部IP,那怎么通过这个外部IP把数据发到内部的一台机子上.哎,你以为路由器怎么工作的我不懂?  
  Top

6 楼zyg0(影子(被评为本年度最可爱流氓)回复于 2005-07-05 12:24:17 得分 0

已知两方的外部IP和内部IP及端口的情况下我不会  
  关键是采用什么协议,  
  tcp通过服务器中转的好说   不需要任何条件,只需要服务器有固定ip,我有代码  
  udp点对点   知道怎么做,只调试通过小例子(自己写的,可以毁坏在上次硬盘数据丢失),条件,直到外网ip和影射端口,服务器的固定ip不可少,其实网上也有例子vc的  
  tcp的点对点,只是听说,不明白原理和实现,但是高手肯定有,但是用vb的少,公开的更少Top

7 楼flyingZFX(卍 南无阿弥陀佛 卍)回复于 2005-07-05 12:45:41 得分 0

呜啊~~~~Top

8 楼zhujiechang(小朱)回复于 2005-07-05 12:58:45 得分 0

内部的IP仿路由在外网映射个外网IP,其实有些路由也提供将个别机器获得外网IP的功能。  
  Top

9 楼22cgreen(飘香女孩)回复于 2005-07-06 11:13:47 得分 0

我换种说法吧,就象QQ,在客户和服务器通信时一般是UDP,在上线后,和好友通信,就是点对点了,我和好友都在网吧,也就是一个内部网内,但我们可以点对点通信,用的应是TCP/IP协议,我们从QQ服务器上只能得到好友在网吧的服务器的IP和他内部机了IP和端口信息,我们发一个TCP信息过去,显然只有发给对方网吧的服务器,服务器这时怎么知道是请求那台内部机子呢或者是请求自己呢,怎样把这个请求发给内部网的机子,完成TCP连接呢。我想一定要作一些处理。Top

10 楼zyg0(影子(被评为本年度最可爱流氓)回复于 2005-07-06 14:50:35 得分 0

其实你想错了,我理解的是这样  
  QQ,在客户和服务器通信时是tcp   在上线后,和好友通信,就是udp点对点了,我和好友都在网吧,也就是一个内部网内,但我们可以udp点对点通信,用的是udp打洞的技术  
  ,我们从QQ服务器上只能得到好友在网吧的服务器的公网IP和影射端口信息,我们通过打洞技巧,建立一个临时的通道,就可以点对点了,而并不是你说的tcp连接  
  Top

11 楼22cgreen(飘香女孩)回复于 2005-07-06 20:47:31 得分 0

我指的是我们两个在不同的网吧,如果是传文件呢(两方传文件)也是用UDP问。什么叫打洞技巧啊。Top

12 楼zyg0(影子(被评为本年度最可爱流氓)回复于 2005-07-07 08:41:08 得分 0

看这个帖子吧,怎么实现我解释的很详细  
  http://community.csdn.net/Expert/topic/4082/4082775.xml?temp=8.639163E-02Top

13 楼wosirius(神经第六)回复于 2005-07-07 12:33:23 得分 0

其实   TCP或者UDP数据   传输的时候   路由器是透明的    
  我是这么理解的  
  里面不同的包文的报头应该是不一样的   这样才可以分辨Top

14 楼webxxx(sdfajfjdkfjklfjkl)回复于 2005-07-07 20:53:16 得分 0

gzTop

相关问题

  • 网络连接问题!请高手解答!高分回报。
  • 500分求解答
  • 100分求解答!
  • 高分求解答!!!关于网络管理软件的问题!!在线等待!!
  • 解答一定给高分
  • 高分征求解答
  • 简单解答换分
  • 100分寻中文解答
  • 50分解答就送
  • 100分急求解答

关键词

  • tcp/ip
  • 端口
  • 路由器
  • ip
  • 服务器
  • 客户
  • 数据
  • 计算机
  • 通信
  • 协议

得分解答快速导航

  • 帖主:22cgreen

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo