2.网络概念-scoket

1 OSI七层网络模型

计算机之间的通信也要遵循不同层次的协议,来实现计算机的通信。
-应用层,表示层,会话层/传输层/网络层/数据链路层,物理层
-TCP/IP网络模型-应用层,传输层,网络层,网络接入层

传输层-TCP/UDP
屏幕快照

TCP可以保证数据的正确性,效率比UDP低,UDP校验和可以省略-UDP无法保证数据的正确性

1.1 传输协议

TCP 需要三次握手来连接数据传输服务
UDP不保证可靠,无连接的数据传输服务

2.1 Socket

http协议的底层是Socket ,Socket-套接字,纯c,通过io传输,网络通信是socket之间通信。
语句:运输层和应用层的过度
特性: 跨平台
过程:
1.创建Socket
2.连接到服务器
3.发送数据/接收数据
4.关闭连接


屏幕快照 2017-12-19 15.19.44.png

2.2socket通信过程

2.2.1.头文件声明

#import <sys/socket.h>
#import<netinet/in.h>
#import<arpa/inet.h>

2.2.2.socket函数实现
参数:domain: AF_INET AF_INET6 AF_LOCAL
type: 流失TCP-SOCK_STREAM 数据报UDP-SOCK_DGRAM
protocol: IPPROTO_TCP、IPPROTO_UDP...
return: 失败-1


屏幕快照 2017-12-19 16.02.40.png

2.2.3.connect函数实现
参数1, 套接字描述服
2,指向数据结构socketaddr的指针-端口和ip地址
3,sockeaddr通过sizeof获取
网络字节用大尾顺序-htons


屏幕快照 2017-12-19 16.03.20.png

2.2.4 mac 开模拟器
nc -lk 12345
nc -> Netcat

3 发送数据给服务器

屏幕快照 2017-12-19 16.20.59.png

4 接收服务器的数据

屏幕快照 2017-12-19 16.34.42.png

5.关闭连接

close(clientSocket);

--

推荐阅读更多精彩内容