tcpip设置

tcpip设置,第1张

TCP/IP是计算机网络中的两个常用协议,一般无需用户自行设置。
TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:
应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、SerialLine等)来传送数据
NTP:做网络时钟(时间来源于互联网,本地不用RTC)
RTP、RTSP:视频监控常用的协议
SNMP:简单网络管理协议(集中式管理)
目的地址与源地址都是MAC(物理地址);
数据字段长度: 数据的类型(比如0x0800:表示帧里面的“数据”字段是一个IP包)
数据:这里面存放具体的数据包。
IP协议层:IP协议主要目的是为数据的输入、输出网络提供基本算法,为高层协议提供无连接的传送服务。
IP协议层的功能:数据传送、寻址、路由选择、数据报文的分段。
TCP协议:TCP协议是重要的传输层协议,它的目的是为网络上的各节点提供可靠的数据交换。它提供数据端口编号的译码,以识别主机的应用程序,完成数据的可靠传送。
UDP协议:传送层协议,它是无连接不可靠的传送。当接收数据时它并不向发送方提供确认信息,它不提供输入包的顺序,如果出现丢失包或重份包的情况,也不会向发送方发出差错报文,它的执行速度比TCP快,执行时具有较低的开销。
在实际的网络设计中,服务器必须要实现1对多的功能模型;这里就可分为两种服务器:循环服务器与并发服务器。
上面介绍的TCP、UDP通信模型都是循环服务器,TCP的循环服务器与UDP的循环服务器又不同;TCP循环服务器一次只能处理一个客户端的请求。所以一个客户端占住服务器不放,其他的客户端就没法访问服务器,所以在服务器端TCP服务器很少使用循环模式。但是UDP的循环服务器与TCP循环服务器不一样,因为UDP不需要建立连接(TCP建立连接后完全占用服务器),所以UDP的循环服务器直接可以服务多个客户端。
并发服务器:TCP需要使用并发服务器模型才能服务多个客户端。
并发服务器的设计思路是每个客户端的请求并不由服务器直接处理,而是由服务器创建一个子进程来处理。

服务器 *** 作流程

客户端 *** 作:

服务器 *** 作:

客户端 *** 作:

既有基于TCP的RTP,也有基于UDP的RTP,但抓包发现,VLC的RTP是基于UDP的。
*** 作模式与UDP一致。

VLC的>服务器(TCP/IP)编程实例
现在大多数语言都支持客户-服务器模式(C/S)编程,其中VB给我们提供了很好的客户-服务器编程方式。下面我们用VB来实现TCP/IP网络编程。
TCP/IP协议是Internet最重要的协议。VB提供了WinSock控件,用于在TCP/IP的基础上进行网络通信。当两个应用程序使用Socket进行网络通信时,其中一个必须创建Socket服务器侦听,而另一个必须创建Socket客户去连接服务器。这样两个程序就可以进行通信了。
①创建服务器
首先创建一个服务端口号。并开始侦听是否有客户请求连接。
建立一窗体,并向其增加一个Winsock控件(可在工程菜单中的部件项来添加此控件)
添加两文本框Text1,Text2,和一按钮Command1
Private Sub Form_Load()
SockServerLocalPort = 2000 ′服务器端口号,最好大于1000
SockServerListen ′开始侦听
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockServerClose
End Sub
Private Sub SockServer_Close()
SockServerClose
End Sub
Private Sub SockServer_ConnectionRequest(ByVal requestID As Long)
SockServerClose
SockServerAccept requestID ′表示客户请求连接的ID号
End Sub
′当客户向服务器发送数据到达后,产生DataArrival事件,在事件中接收数据,GetData方法接收数据。
Private Sub SockServer_Data
Arrival(ByVal bytesTotal As Long)
Dim s As String
SockServerGetData s
Text1Text = s
End Sub
当需要向客户发送数据时,只需调用SendData方法。
Private Sub Command1_Click()
SockServer SendData Text2Text
End Sub
②创建客户
要创建客户连接服务器,首先设置服务器主机名,如IP地址、域名或计算机名,然后设置服务器端口,最后连接服务器。
建立一窗体,并向其增加一个Winsock控件(可在工程菜单中的部件项来添加此控件),取名为:SockC1。添加两文本框Text1,Text2,和一按钮Command1
Private Sub Form_Load()
SockClRemoteHost =′127001″
′表示服务器主机名
SockClRemotePort = 2000
  ′表示服务器端口名
SockClConnect
′连接到服务器
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockClClose
End Sub
Private Sub SockCl_Close()
SockClClose
End Sub
Private Sub SockCl_DataArrival(ByVal bytesTotal As Long)
Dim s As String
SockClGetData s ′接收数据到文本框中
Text1Text = s
End Sub
Private Sub Command1_Click()
SockClSendData Text2Text ′向服务器发送数据
End Sub
③进行通信
把这两个窗体分别编译成两个EXE文件,服务器Serverexe和客户Clientexe程序,并把它们分别安装在服务器端和客户端,这样就可以实现两者通信了。
-


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13479003.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-15
下一篇 2023-08-15

发表评论

登录后才能评论

评论列表(0条)

保存