毕业论文

打赏
当前位置: 毕业论文 > 计算机论文 >

C#移动无人指挥车系统设计(4)

时间:2025-05-20 22:11来源:99826
2.1 C#语言基础 C#语言是建立在.Net Framework上面的面向对象、面向组件的语言。微软发布的高级编程语言之一。C#直接与组件对象模型COM集成。简单来说,该

2.1  C#语言基础

C#语言是建立在.Net Framework上面的面向对象、面向组件的语言。微软发布的高级编程语言之一。C#直接与组件对象模型COM集成。简单来说,该语言编程结构有类、接口、结构和委托还有常用的变量类型如int型、long型和float型等。其具有Delphi的优点,如可以很快速的开发窗口程序,只要在工具栏里选取需要的工具并定义工具栏里的控件属性和方法就可以组装一个程序了,这并不需要程序员去编写大量的代码。C#生成的工程文件名为.sln。很多其他编程语言所具有的优点,C#全部都有并且还综合了这些优点形成了自己独特的风格。选择C#构建出在.net框架上运行的的软件可以使程序员在较短的时间里开发出具有友好界面、功能强大和稳定性能高的应用程序。

2.2  Socket编程

TCP和UDP是工作在传输层的协议。这两种协议都提供了端到端的网络通信服务,也就是为计算机上的进程间的通信提供服务。TCP英文翻译是传输控制协议,TCP可提供面向连接的可靠的数据传输服务,是建立在三次握手协议的基础上面向连接的传输层协议。

传输层介于应用层和网络层之间[18],传输层协议实现了进程间的逻辑通信。众所周知,IP地址是用于区分不同的计算机,而每台计算机中都安装了许多不同的程序,这些程序就相当于是一个个进程,为了标识这些程序,TCP给每个进程都唯一分配了一个编号,就是端口号,即每个进程都有唯一的端口号进行通信。不同的通信协议,端口号是不一样的,也就是TCP和UDP都有各自的端口号[19]。这些的端口号地址都是0~65535。所以在计算机上的一个进程的地址就是由主机地址,端口号和传输层协议组成。因此可以注意到进程间的通信是对等的,也就是采用了TCP的协议的进程只能和采用TCP协议的进程通信,用了UDP的进程只和用UDP的进程通信。不可以混用。由于0~1024的端口号是保留端口号,即这些端口已经被分配给固定程序进程了,一般被服务程序进程占用。常用的都是1024以后的端口号。这些端口号被称为临时端口号。在客户端服务器软件模式中,一般情况下,服务器上的应用程序进程使用的是保留端口号也就是小于1024的端口号,比如使用应用层中的DNS协议的程序进程使用的端口号是53,使用FTP应用层协议的程序进程使用的端口号是21。而客户端上的进程使用的是1024以后的端口号,而这些端口号是被随机分配给客户端进程的。

TCP是可靠的网络传输协议,所以在每次传输数据前都要进行握手协议以确认双方环境是否可以开始传输数据。首先需要建立连接的客户端程序进程会向服务器端程序进程发送一个连接请求报文段请求服务器端程序进程建立连接,该报文它的SYN标志设置为1,表示建立连接。这里可以设置SEQ=200表示客户端的初始报文序号,其需要服务器端程序进程的确认回复。接着服务器端程序进程收到客户端程序进程发送回来的连接请求报文后,要向客户端程序进程发送确认连接报文。该确认连接报文中的SYN也是被设置为1,表示确认连接,ACK被设置成1表示服务器端程序进程收到了客户端程序进程发来的连接请求报文,服务器端程序进程这里可设置SEQ=400表示服务器端程序进程的初始报文序号,其需要得到客户端程序进程的确认回复,ack=201表示服务器端程序进程对客户端程序进程初始报文序号SEQ=200的确认回复。最后一步是客户端程序进程收到了服务器端程序进程的确认连接报文,客户端程序进程也要返回建立连接成功的报文段给服务器端程序进程。该报文的ACK标志值被设置为1,ack=401表示客户端程序进程对服务器端程序进程初始报文序号SEQ=400的确认回复。至此客户端程序进程与服务器端程序进程已通过三次握手协议成功建立了TCP连接,这两者可以开始传输数据了。图2.1为TCP的三次握手协议,客户端与服务器通过设置TCP报文中的SYN关键字和SEQ、ACK序列号进行握手连接测试,最终客户端与服务器端连接成功。 C#移动无人指挥车系统设计(4):http://www.chuibin.com/jisuanji/lunwen_205560.html

------分隔线----------------------------
推荐内容