linux网络编程(3)TCP编程模型与TCP的连接、关闭 忘是亡心i 2022-05-22 03:04 171阅读 0赞 ### TCP编程模型 ### ![20180613165557917][] TCP编程模型 ##### 服务器端调用序列: ##### 1.调用socket函数创建套接字; 2.调用bind函数绑定本地地址和端口号; 3.调用listen启动监听; 4.调用accept从已连接队列中提取客户连接; 5.调用IO函数(read/write)与客户端通信; 6.调用close关闭套接字。 ##### 客户端调用序列: ##### 1.调用socket函数创建套接字; 2.调用connect连接服务器; 3.调用IO函数与服务器通信; 4.调用close关闭套接字。 ##### 系统调用 ##### 1.套接字与地址绑定 #include <sys/socket.h> int bind(int socket, const struct sockadd *addr, socklen_t len); 返回:成功返回0,出错返回-1 2.查找绑定到套接字的地址 #include <sys/socket.h> int getsockname(int sockfd, struct sockaddr* addr, socklen_t *addrlen); 返回:成功返回0,出错返回-1 3.获取对方地址 #include <sys/socket.h> int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen); 返回:成功返回0,出错返回-1 4.建立连接: 服务器端监听客户端连接 #include <sys/types.h> #include <sys/socket.h> int listen(int sockfd, int backlog); 返回:成功返回0,出错返回-1,backlog指定进行客户端连接排队的队列的长度 #include <sys/types.h> #include <sys/socket.h> int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); 客户端连接服务器 #include <sys/types.h> #include <sys/socket.h> int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 返回:成功返回0,出错返回-1 ### TCP的连接、关闭 ### ![70][] TCP的连接、关闭 #### TCP的连接 #### 计算机A要与计算机B建立起TCP连接,首先计算机A发送SYN报文给计算机B,计算机B收到计算机A的请求后,计算机B发送SYN+ACK报文(这里的SYN还是计算机A发送给计算机B的SYN)到计算A,计算机收到计算机B的报文后,再反馈一个ACK给计算机B,这样计算机A与计算机B通过三次握手建立起了TCP连接。 #### TCP的关闭 #### 计算机A与计算机B断开TCP连接的时候,假如是计算机A请求断开连接,则计算机A发送FIN报文给计算机B,计算机B收到来自计算机A的FIN报文后,计算机B反馈ACK给计算机A,这样计算机A与计算机B之间的TCP连接被断开。 [20180613165557917]: /images/20220522/144888d657bd46659e8bc0a013a0c47c.png [70]: /images/20220522/c960db667b314920bfef0c633aeb910f.png
相关 网络编程问题:TCP连接的关闭流程 TCP(传输控制协议)是一种面向连接、可靠的传输层通信协议。在TCP连接的关闭流程中,一般包括以下几个步骤: 1. **挥手**: - 主动方(通常为客户端)发送一个F 旧城等待,/ 2024年09月20日 08:45/ 0 赞/ 2 阅读
相关 Java网络编程:TCP连接的建立与关闭 在Java中,TCP(传输控制协议)是一种面向连接的、可靠的传输层通信协议。TCP连接的建立和关闭过程主要通过Socket类和ServerSocket类来实现。 **TCP连 傷城~/ 2024年09月17日 23:48/ 0 赞/ 13 阅读
相关 Java网络编程:TCP连接关闭问题案例 在Java网络编程中,TCP连接的关闭是一个常见的问题。以下是一个案例分析: **案例背景:** 假设我们有一个简单的客户端和服务端应用。客户端发送消息后,需要等待服务端确认 刺骨的言语ヽ痛彻心扉/ 2024年09月17日 19:39/ 0 赞/ 10 阅读
相关 Java网络编程:TCP连接关闭问题案例 在Java的网络编程中,TCP连接关闭是一个常见的场景。当一方希望结束通信时,通常会经历三次握手的过程,然后关闭连接。 下面是一个简单的案例: ```java import 太过爱你忘了你带给我的痛/ 2024年09月16日 22:24/ 0 赞/ 11 阅读
相关 Java网络编程:TCP连接的建立与关闭问题实例 在Java网络编程中,TCP(Transmission Control Protocol)是一种面向连接的通信协议。以下是关于TCP连接建立、使用和关闭的一些实例: 1. 连 短命女/ 2024年09月12日 02:48/ 0 赞/ 21 阅读
相关 Java网络编程:TCP连接关闭异常问题分析 在Java的网络编程中,TCP(Transmission Control Protocol)连接关闭时可能会出现一些异常。主要涉及到以下几种情况: 1. `SocketExc 布满荆棘的人生/ 2024年09月10日 22:15/ 0 赞/ 29 阅读
相关 linux的tcp/udp网络编程模型 一、概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。 TCP:传输控制协议,一种面向连接的协议,给用户 快来打我*/ 2022年06月09日 04:54/ 0 赞/ 203 阅读
相关 linux网络编程(3)TCP编程模型与TCP的连接、关闭 TCP编程模型 ![20180613165557917][] TCP编程模型 服务器端调用序列: 1.调用socket函数创建套接字; 2.调 忘是亡心i/ 2022年05月22日 03:04/ 0 赞/ 172 阅读
还没有评论,来说两句吧...