Linux Tcp客户端和服务器端代码实现

本文详细介绍了Linux下TCP协议的实现,涵盖了从socket创建到读写数据的完整流程,包括socket(), bind(), listen(), accept(), connect(), read()和write()函数的解析,并给出了TCP服务器端和客户端的代码示例。" 128767472,16947570,JavaScript与MySQL实现的酒店管理系统设计,"['JavaScript', 'MySQL', '数据库设计', '前后端分离', '酒店管理系统']
摘要由CSDN通过智能技术生成

1、int socket(int domain, int type, int protocol);函数解析


功能:创建socket,也就是创建一个socket描述符
参数:
 domain :使用哪个协议族,一般情况下设为AF_INET(IPv4)
 type: 服务类型,主要有SOCK_STREAM流服务(TCP协议使用),SOCK_DGRAM数据报服务(UDP协议使用)
 protocol:一般设为0
 返回值:返回一个socket的描述符,如果失败返回-1


2、int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 函数解析


功能:把产生的socket套接字和本地的sock地址绑定起来。
参数:
 sockfd:socket函数产生的socket描述符
 addr:本地的socket地址,下面会仔细讲解该结构体。
 addrlen:addr结构体的长度,一般strlen(addr);
返回值:失败返回-1


struct sockaddr_in
{
short int sin_family; /* 地址族 */
unsigned short int sin_port; /* 端口号 */
struct in_addr sin_addr; /* IP地址 */
unsigned char sin_zero[8]; /* 填充0 以保持与struct sockaddr同样大小 */
};

3、int listen(int sockfd, int backlog);函数解析


功能: 当socket创建之后还不能立即被客户端连接,必须设置一个监听队列来等待客户端的连接
参数:
  sockfd 创建的的socket套接字
  backlog: 设置内核监听的最大长度,一般设为1就可以了
返回值:成功返回0,失败返回-1


4、 int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);函数解析

功能: 接收客户端的连接,当没有客户端来接连的时候就阻塞
参数:
  sockfd 创建的的socket套接字
  addr: 用来获取连接的客户端的socket地址
  addrlen : 获得addr的长度
返回值:成功返回0,失败返回-1


5、int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 函数解析


功能: 向服务器端获取连接
参数:
  sockfd 创建的的socket套接字
  addr: 要连接的服务器端主机的socket信息
  addrlen : 获得addr的长度
返回值:成功返回0,失败返回-1


6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dmfrm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值