一、介绍


socket套接字:分为TCP和UDP
TCP:面向连接,可靠,(类似于双方打电话),适用于数据量小而且需要准确传输
UDP:面向报文,不可靠,(类似于双方发短信),适用于数据量大且不需要准确传输


进程间通信是基于Linux内核的,不适用于两台手机之间的通信。
字节序:
小端:将低序字节存储在起始地址
大端:将高序字节存储在起始地址


电脑是小端字节序,网络字节序是大端字节序。
二、socket服务器与客户端
客户端获取服务器的端口号和IP地址:


socket的具体工作流程:










atoi()函数
atoi():int atoi(const char *str );
功能:把字符串转换成整型数。

实现例程:
一、linux下客户端连接服务器,成功后,主机(客户端)telnet远程登录虚拟机(服务器):
①:

创建套接字,确定好连接协议(IPV4),type种类选择为流式套接字,基于TCP协议。
②:

确定好服务器的IP地址以及端口号
其中htons是将端口号转换成网络能识别的格式;inet_aton是将IP地址转化成网络识别的IP地址。
③:

监听是否有客户端连接。
④:

允许客户端的接入。
最后while(1);等待客户端的接入。
二、获取客户端的IP地址:

在上一个工程代码的结构上,增加accept具体监听对象,以及读取IP地址。
三、客户端与服务器数据传输的实现:
客户端先写入再读取:

服务器端先读取再写入:

最后运行服务器与客户端的代码会得到:

四、端口经常被占用,做成main函数传参配置文件

在上述例子中编写传参参数:
c_addr.sin_port=htons(atoi(argv[2]));
inet_aton(argv[1],&c_addr.sin_addr);
其中atoi(argv[2])是将字符串转换为整型数据。
运行结果:
上:客户端 下:服务器
五、
在上述客户端与服务器之间的聊天
审核编辑 黄宇
-
Linux
+关注
关注
88文章
11628浏览量
217976 -
服务器
+关注
关注
13文章
10094浏览量
90883 -
网络编程
+关注
关注
0文章
72浏览量
10874
发布评论请先 登录
Linux驱动开发的必备知识
Linux 编程语言盘点:从内核到AI的全栈选择
爱立信率先完成5G可编程网络技术演示
Linux网络性能调优方案
Linux系统中网络配置详解
Linux网络管理的关键技术和最佳实践
手把手教你如何调优Linux网络参数
在Linux中,用新设置对CY7C65215重新编程后,如何启用新设置?
Linux常用命令大全
Linux主要的性能有哪些?

Linux网络编程
评论