Linux套接字基础编程

所谓套接字,其实就是通信端点的抽象。

而套接字编程,就是解决服务器端跟客户端之间的通信问题。

先说服务器端,简单的概括,分为四步:

1.创建套接字

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

socket函数的第1个参数表示的是通信域,详情见下表

套接字域描述
域名(宏)域的作用
AF_INET表示使用IPv4协议
AF_INET6表示使用IPv6协议
AF_UNIX表示用于非网络环境的进程通信
AF_UNSPIC未制定域
第2个参数表示套接字的类型,第3个参数表示协议类型

2.将套接字跟客户端地址绑定

int bind(int sockfd, const struct sockaddr *addr, socklen_t len);

这里特别说明一下,第2个参数在实际编程中使用struct sockaddr_int *addr。因此,在第二个地址结构参数的时候需要做一个强制类型转换。

struct sockaddr_in *addr;

/* 设置地址结构 */
addr = (struct sockaddr_in*)malloc(sizeof(struct sockaddr_in));
addr->sin_family = AF_INET;
addr->sin_port = 1024;

/* 32位的IP地址,即192.168.11.6,注意应使用网络字节序进行赋值 */
addr->sin_addr = 0x60ba80c;

bind(fd,(struct sockaddr_in)addr, sizeof(struct sockaddr_in));/* 绑定地址 */

3.监听客户端的连接请求

int listen(int sockfd, int backlog);

listen函数的第1个参数用来进行连接请求监听的套接字描述符,第2个参数表示最多可以排队等待连接的请求数量。

4.接受连接请求

int accept(int sockfd, struct sockaddr *addr, socklen_t len);

accept函数的第1个参数是一个创建的套接字描述符,第2个参数是客户端的地址,第3个参数表示取得的客户端地址的大小。


现在说说客户端的实现,就只有两步:

1.第1步其实跟服务器端一样,创建一个套接字。

2.请求连接

int connect(int sockfd, const struct sockaddr *addr, socklen_t len);

想必参数都不用解释了吧。


今天不想码代码了,下次再附上一段示例代码吧。今天就写到这里了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值