socket 编程TCP,UDP建立连接过程详解

1,TCP是面向连接的协议,建立的过程使用三次握手协议,大概过程是客户机发送数据请求给服务机,告诉服务机,我有数据需要发送,服务机收到请求,发送一个确认请求回复,告诉客户机你发的请求我已经收到,客户机收到该请求也向服务机发送一个确认请求回复,告诉服务机我收到了。具体的socket编程流程如下所示:

服务器端:

socket()       建立socket连接,生成一个socket文件描述符,此时未分配ip和端口号

bind()          服务器端绑定需要监听的ip和端口号

listen()        对服务器绑定的ip和端口进行监听,看是否有客户端的请求

accept()      客户端发送connect请求,请求连接,服务器accept接受客户端连接请求,此时又分配ip和端口号用于客户端和服务器进行通信,之前分配的主要用于监听

rec()            接收客户端发送的需要处理的数据

send()        数据处理完返回给客户端进行显示处理等操作

close()       数据传输完成,关闭socket连接

客户端:

socket()      建立socket连接,生成一个socket文件描述符,此时未分配ip和端口号

connect()    当客户端有连接请求时,发送connect给服务器请求建立连接

send()         连接建立发送数据

rec()             接收服务器处理完成的数据

close()         数据传输完成,关闭socket连接

以上是TCP基于连接的三次握手协议流程,接下来介绍基于无连接的UDP协议

2,UDP是与TCP面向连接的协议相对应,他是基于无连接的协议,需要发送数据时,不需要先建立连接,而是直接把数据报发送过去

具体的socket编程流程如下:

服务器端:

socket()

bind()

recvfrom()

sendto()

close()

客户端:

socket()

bind()

sendto()

recvfrom()

close()

 

 

 

你可能感兴趣的:(socket 编程TCP,UDP建立连接过程详解)