电子说
一、介绍
比如2个安卓手机需要通讯,就必须获得对方的IP地址和端口号
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])是将字符串转换为整型数据。
运行结果:
上:客户端 下:服务器
五、
在上述客户端与服务器之间的聊天
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !