【linux网络编程】-实战

socket编程接口介绍

服务器需要socket、blind、listen、accept

第一个参数是网络域,也就是网络范围;是ipv4/ipv6

第二个参数是指定类型;比如TCP类型

第三个参数用来制定协议;如果是0就是默认协议;

accept返回值是一个fd,accept正确返回就表示我们已经和前来链接我的客户端建立起一个TCP链接了,以后就要通过这个连接和客户端进行读写操作,读写操作就需要一个fd,这个fd就由accept来返回了!

客户端用socket、connect

这里的第二个参数为服务器的ip地址;

辅助性函数

inet_aton、inet_addr、inet_ntoa//不支持ipv6

inet_ntop、inet_pton//现在推荐使用的;

IPADDR=192.168.1.102 

【linux网络编程】-实战_第1张图片

 第一参数是哪一个网络(ipv4/ipv6),第二个是源,第三个输出性指针参数,

【linux网络编程】-实战_第2张图片

【linux网络编程】-实战_第3张图片

 【linux网络编程】-实战_第4张图片

【linux网络编程】-实战_第5张图片

实践部分

第一步:先写服务器

【linux网络编程】-实战_第6张图片

【linux网络编程】-实战_第7张图片

【linux网络编程】-实战_第8张图片

 socket返回的fd叫做监听fd,是用来监听客户端的,不能用来和任何客户端进行读写,

第二步 再写客户端

【linux网络编程】-实战_第9张图片

【linux网络编程】-实战_第10张图片

第三部分 通信

【linux网络编程】-实战_第11张图片

【linux网络编程】-实战_第12张图片

第四步  自己编写协议

客户端

都是基于上面客户端与服务器正常通信的情况下!

【linux网络编程】-实战_第13张图片

【linux网络编程】-实战_第14张图片

【linux网络编程】-实战_第15张图片

【linux网络编程】-实战_第16张图片

服务器端

【linux网络编程】-实战_第17张图片

【linux网络编程】-实战_第18张图片

你可能感兴趣的:(linux应用编程,linux)