由路由器连接的电脑如何socket实现网络通信

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了由路由器连接的电脑如何socket实现网络通信相关的知识,希望对你有一定的参考价值。

我用C#写了个小程序,自己电脑作为服务器,开启端口监听去接受其他客户端程序发送过来的消息,但目前我只实现到局域网内通信,也就是通过IP192.168.0.X加上端口号来建立监听,现在我想不只是局限于局域网通信,可是我通过cmd的IP查询只能看到自己在路由器连接的网络环境中的IP地址(即192.168开头的),我又通过网上查询到自己的IP,但是发现通过这个IP地址上开启端口后,客户端无法、给我发送消息,我就疑惑了,对于路由器连接网络的电脑,需要实现网络通信是不是需要额外的操作?

关键在路由器上!如果想让你的程序从既能从内部局域网访问,也能外部网络访问,那你必须:
1)在路由器增加一个路由项,这个路由项由将外网IP:端口映射到你计算机内网IP:端口
2)你的计算机上仍然使用内网IP:端口
参考技术A 对于 TCP 来说局域网和广域网不是一样嘛。只要给个 IP 地址就行了。至于如何连接到那机器,那是路由器管理与配置的问题,跟我们编程没什么关系。比如你家和公司各有一个路由器,各有一台电脑在对应的路由器后面连接着,那你需要在两台路由器上各创建一个 NAT,比如:家->公司:VNC,公司->家:3389远程桌面,那你在公司的路由器上创建一个 NAT 把 5900 端口转发到公司PC:5900 端口,这样家里就能访问公司PC的 VNC 服务器了,对应地在家的路由器创建 NAT 把 3389 端口转发到家PC:3389 端口上,那从公司就可以直接访问家PC的远程桌面了。这一切都是网络管理路由器的配置工作,跟编程没有关系。

初识计算机网络

互联网的组成
互联网的结构虽然复杂,但是从工作方式上区分,有边缘部分:所有连接在互联网上的客户机组成,用来通信和资源共享。核心部分:由大量网络和连接这些网络的路由器组成。边缘部分的主机叫做端系统,可以是个人电脑、智能手机、摄像头等等。边缘部分利用核心部分提供的服务,使众多主机之间实现通信和共享信息。核心部分要向网络的边缘部分提供联通性,使边缘中的主机能够相互通信。在核心部分中其核心作用的是路由器,是一种专用计算机,是实现分组交换的关键部件,其功能时转发收到的分组。
在整个组成过程中,有几个需要的关键知识点进行讲解:
两台计算机之间的通信是指计算机上进程之间的通信,每个进程使用一个端口,实现的是端口之间的通信。
端系统之间的通信分为两大类:C/S模式和P2P模式。
为了了解分组交换,需要知道电路交换的基本概念。

从通信资源得到分配角度来看,交换是指按照某种方式分配传输线路的资源。在实现电路交换之前,首先要发送请求信息建立连接,这时双方建立了一条专用的物理通道,而且这些资源不能被其他用户占用,此时就可实现信息交互,信息交互结束后,必须要释放连接,归还信道资源。所以,这种必须经过建立连接>通话>释放链接的三步骤的交换方式叫做电路交换。这种通信方式信道资源利用率非常低。之后出现了分组交换技术,其采用存储转发技术。将一个报文划分为几个分组,每个没个人组添加头信息叫做包头,头信息中包含了必要的控制信息,每一个分组添加完头信息后称为包,通过存储转发的技术,实现了分组交换。对于存储转发技术,有一定的历史,因为自古代就有的邮政通信,原理也是从存储转发技术,一个节点的操作员收到报文后根据报文的目的地址,选择下一个转发点进行转发。但是转发的是整个数据信息。但是现在的分组交换,不仅是存储转发,而且是将数据进行分组转发,网络资源利用率高。我们说互联网的核心部分是由是由把许多网络进行互联的路由器组成的。主机处在边缘部分,也就是说,主机是为用户处理信息的,而路由器是用来存储转发分组的,即进行分组交换的·。路由器收到一个分组先暂时存储一下,这个存储是存储在内存上的,因为为了实现高速转发。存储之后,检查首部信息,查找转发表,按照首部的目的地址将报文转发出去。而转发路径是由选择协议决定的。这便是分组交换技术。

(注:分组交换带来的问题:1、分组在各结点存储转发时需要排队,这就会造成一定的时延。2、 分组必须携带的首部(里面有必不可少的控制信息)也造成了一定的开销。)


 

接下来介绍计算机网络的分类

按照网络的作用范围进行分类

  • WAN(Wide Area Network),作用范围有几十公里到几千公里。连接广域网各节点的链路一般都是高速链路。如跨国网络。
  • MAN(Metropolitan Area Network),作用范围5-50KM,用来将多个局域网相连。
  • LAN(Local Area Network),作用范围为1km左右,如校园网。
  • PAN(Personal Area Network),作用范围大概10m左右,入连接到个人电脑的无线电子设备。

(注·:顺便说一下,若距离中央处理机的距离非常近,小于1m,我们通常叫做多处理机处理系统)

按照网络的使用者来分类

  • 公用网,通俗的将就是收费谁都可以用的网络。
  • 专用网,某个部门为了特殊业务要求而建造的网络,如军队、铁路、银行等。

用来把用户接入互联网的网络

  • AN(Access Network),又称为本地接入网、居民接入网。我们说用户必须通过ISP才可以连接到互联网。由于用户家中连接到互联网的技术有许多种,所以出现了多技术连接到互联网的情况,接入网从定义上说既不属于互联网的核心部分也不属于边缘部分,接入网是用户从端系统接到互联网的第一个路由器(也称边缘路由器)之间的一种网络。从作用上看,它是用能够连接互联网的“桥梁”,希望在这里大家还能够主动了解宽带接入技术,因为宽带接入技术有多种,而且很热门。

 

下一节,计算机网络的性能......

以上是关于由路由器连接的电脑如何socket实现网络通信的主要内容,如果未能解决你的问题,请参考以下文章

如何才能远程桌面连接

如何将手机USB网络共享转到路由器上

socket和http协议

如何在openwrt路由中设置usb口为wan口

PAT配置如何配置?

w10系统wifi连接不能自动获得ip