1 AIS 数据接收程序 唐存宝 交通信息工程及控制 200377603250 一 设计目的: 实现 AIS 经由网络传输的数据接收,并显示在 MFC 的控件内;同时,为了模仿 AIS 数据发送的方式,简单设计了 AIS 发送数据的客户端。 二 设计意义: 显示解码前的 AIS 信息,对 AIS 信息解码,AIS 数据库编程打下根基。可以对这些数据进行数理统计,发现其规律,从而更好掌握 AIS 水域交通流状况。 三 基础简介 (1) 网络编程基础知识 1 通信协议:TCP/UDP/IP 协议,一般称为 TCP/IP 协议。 UDP 是用户数据报协议,该协议通信时并不建立可靠的连接,所以不能保证数据能否达到,也不知道在什么时间到达,也不能保证数据完整性(即在传输过程中有可能丢失数据);在接收方,数据有可能次序改变,也有可能重复收到一条数据。 TCP 是传输控制协议,这是网络应用程序首要的协议。它是一个大块数据无差错输送的协议,即使传输的数据报是以错误的次序到达的,TCP 协议却能使数据报按发送的次序重新组合。它包括了 HTTP,FTP 这两种协议。TCP 协议建立了一个在两台计算机之间全双工、点对点的连接。这种连接的每一个端上的程序都使用它自己的端口。IP 地址和端口号组合称为一个套接字。总之, TCP 协议在通信双方间建立了一条可靠,无数据差错,无数据重复的连接。当然,这不需要我们来完成,由计算机自己来完成。 UDP 和 TCP 协议相比,UDP 通信会比 TCP 通信快些,因为 UDP 通信双方不需要建立连接;而 TCP 需要建立可靠的连接,因此在一个庞大的聊天室中用UDP 协议也未尝不可。但是,对于不容许丢失的数据、非常重要的数据,一般采用 TCP 协议。 2 套接字 IP 地和端口号组合成一个套接字。好比用固定电话通信一样,要想打电话,你必须有电话机(相当于你有 IP),有个电话机,但你还不知道跟哪一部电话通讯,好了,电话号码就指明了我们通讯的电话,也就相当于端口指明了要和我们通信的应用程序。否则,一台电脑上的那么多网络应用程序,谁知道哪一个程序会负责数据的收发工作?电话机和端口就组成了的套接字。 好了,有了电话机,应使它处于正常工作状态,也就是侦听状态,以便别人打来电话时,我们能接收。在服务器应用程序上应有一套接字处于侦听状态,以使客户机一有数据请求便能侦听到。基于 TCP 的流式套接字,不仅要有侦听套接字,而且有连接(通讯)套接字以保证可靠连接。当然,基于 UDP 的,就...