socket服务端代码实现

Linux提供的API

1、int socket(int domain,int type,int protocol);

domain通常为AF_INET(IPv4)

type参数指定socket的类型:SOCK_STREAM流式套接字提供可靠的,面向连接的通信流;它使用TCP协议,保证数据传输的正确性和顺序性

SOCK_DGRAM数据报套接字,是无序的,不保证可靠、无差错的。使用的数据报协议是UDP。

SOCK_RAW允许程序使用底层协议,原始套接字允许对底层协议如IP和ICMP进行直接访问主要用于一些协议的开发。 

protocol:可以是0

2、bind()函数:IP号端口号与相应描述符赋值函数

int bind(int sockfd, const struct sockaddr *addr,socklen_ addrlen);

3、IP地址转换API

int inet_aton(const char* straddr,struct in_addr *addrp);

把字符串形式的“192.168.1.123”转为网络能识别的格式

char *inet_nota(struct in_addr inaddr);

把网络格式的IP地址转为字符串形式

4、listen()函数:监听设置函数

int listen(int sockfd,int backlog);

backlog是支持最大的连接数,维护未完成连接队列和已完成连接队列,未完成与已完成要看三次握手的情况

只能用于服务端,客户端没有listen

5、accept()函数

当客户端调用connect的时候,服务器调用accept接收

int accept(int socket,struct socka

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值