第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > TCP和UDP套接字编程

TCP和UDP套接字编程

时间:2022-01-20 09:40:37

相关推荐

TCP和UDP套接字编程

一、Socket简单介绍

如果要在应用层调用传输层的服务,进行相关程序的设计,就要涉及到套接字编程。套接字也称之为Socket,本质上它就是利用传输层提供的一系列Api来进行网络应用程序的设计。

网络应用程序如果要进行套接字编程,需要明确的创建、使用及释放套接字。

套接字编程是典型的C/S模式。

从下图中可以形象的看到套接字的作用:

(1)套接字是一个主机本地应用程序所创建的,为操作系统所控制的接口。

(2)应用程序通过这个接口,使用传输层提供的服务,跨网络发送/接收消息到/从其它应用进程。

二、用TCP进行套接字编程

套接字编程有面向连接和无连接两种实际上就是TCP套接字编程和UDP套接字编程。

可以使用源端口号来区别客户。

使用TCP进行套接字编程时客户必须初始联系服务器,这时服务器进程必须先运行,创建套接字来迎候客户的初始联系。

那么客户如何初始联系服务器呢?主要有3个步骤:

(1)创建客户本地TCP套接字。

(2)指定服务器进程的IP地址和端口号。

(3)一旦客户创建套接字,客户TCP就发起3次握手并建立与服务器TCP连接。

一旦客户初始联系服务器,服务器TCP为服务器进程创建1个新的套接字与客户通信。这里允许服务器与多个客户通信,而端口号被用来区分客户。

从应用程序的角度来看,TCP为客户和服务器提供了可靠的、顺序的、字节流的传输。

TCP客户/服务器套接字交互流程

流程图如下:

(1)服务器创建一个在端口x上的套接字,然后等待连入请求

(2)在服务器等待连入请求的过程中客户机如果要连接服务器它会创建一个到服务器的IP地址然后和服务器的端口号x相连接的套接字。

(3)使用这个套接字和服务器进行TCP连接建立

(4)连接建立好以后客户机使用套接字向服务器端发送相关请求。

(5)服务器端读到请求以后使用写应答的方式把数据发送给客户机。

(6)客户机读取应答,当所有的读写操作都进行完成以后,客户机关闭套接字。

(7)服务器也关闭套接字

注意:服务器这时关闭的是客户机刚才建立的TCP连接上所对应的套接字,但是监听套接字还在,因为监听套接字要等待下一次的到来。

三、用UDP进行套接字编程

与TCP不同:

(1)当用UDP进行套接字编程时没有初始握手手段;

(2)发送方明确将接收方的IP地址和端口号加入到每个分组。

(3)服务器必须从接收到的分组中析取发送方进程的IP地址、端口号。

这种方式在发送数据时可能被乱序收到或丢失。

从应用程序的角度来看UDP在客户和服务器之间提供一组字节的不可靠传输。

UDP客户/服务器套接字交互流程

流程图如下:

(1)服务器对入栈请求创建套接字,端口是x。

(2)客户机如果要给服务器端发送数据,它也创建一个套接字,这个套接字使用服务器的ip地址和服务器的端口,直接使用这个套接字发送数据包请求。

(3)服务器从服务器套接字中读请求。

(4)服务器收到请求后将应答写到服务器套接字上面,在写应答上面有客户机主机地址和端口号。

(5)客户机从套接字上面读取应答。

(5)这个过程一直进行,客户机如果收发完毕就退出,而服务器又回到前一步继续等待下一个客户机套接字请求的到来。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。