linux做服务器和客户端,Linux 搭建服务器和客户端 所用的函数

/**

*功能:创建套接字同时指定协议和类型

*#include

*family(协议簇): AF_INET(IPv4协议)    AF_INET6(IPv6协议)

*type(套接字类型):SOCK_STREAM(流式套接字)      TCP通信使用

SOCK_DGRAM(数据报套接字)    UDP通信使用

SOCK_RAW(原始套接字)

*protocol:如果套接字类型不是原始套接字,那么这个参数就为0.

* 返回值:成功:非负套接字文件描述符

失败:-1

*int socket(int family,int type,int protocol);

*/

/**

*功能:将保存在相应地址结构中的地址信息与套接字进行绑定。主要是服务器端套接字需要绑定,客户端套               接字一般不需要绑定,内核会自动分配地址给套接字

*sockfd:socket()函数成功返回的文件描述符

*my_addr:绑定存放地址信息的结构体

*addrelen:存地址信息结构体的大小

*返回值:成功:0

失败:-1

*int bind(int sockfd,struct sockaddr *my_addr,int addrlen);

*/

struct sockaddr{

unsigned short sa_family;  //协议簇  AF_XXX

char sa_data[14];     //14字节的协议地址

};

struct sockaddr_in{

short int sin_family;      //协议簇

unsigned short int sin_port;  //端口号  短整型 占2字节  16位

struct in_addr sin_addr;   // IP地址   占4字节  32位

unsigned char sin_zero[8]; //填充0,占8字节  保持struct sockaddr和struct sockaddr_in结构体大小相同

};

struct in_addr{

unsigned long s_addr;  //32位ip地址

};

通常用struct sockaddr_in来保存某个网络地址,在使用时强转成struct sockaddr类型的指针。

/**

*#include

*功能:客户端向服务器建立连接

*int connect(int sockfd,struct sockaddr *serv_addr,int addrlen);

*返回值:成功:0

失败:-1

*/

/**

*功能:将套接字设置成监听模式(被动模式),准备接收客户端的请求。

*backlog:请求队列中允许的最大请求数,大多数系统默认值为5.

*int listen(int sockfd,int backlog);

*返回值:成功:0

失败:-1

*/

/**

*功能:等待并接受客户端的连接请求。建立好连接后,该函数返回一个新的已连接的套接字

*int accept(int sockfd,struct serveraddr *addr,socklen_t *addrlen);

*返回值:成功:建立好连接的套接字描述符

失败:-1

*/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值