1. Socket简介2. Socket分类
2.1. 有连接的客户/服务器时序图2.2. 无连接的客户/服务器时序图 3. Socket常用函数
3.1. socket()函数3.2. bind()函数3.3. listen()和connect()函数3.4. accept()函数3.5. read()、write()等3.6. close()操作 4. Linux的阻塞和非阻塞IO5. Java Socket API
5.1. 示例5.2. TCP套接字
5.2.1. ServerSocket类5.2.2. Socket类 5.3. 套接字传输数据
5.3.1. 写入数据5.3.2. 写出数据 6. TCP套接字编程示例
6.1. Java示例 7. UDP
7.1. DatagramSocket类7.2. DatagramPacket类7.3. UDP套接字编程示例7.4. Java示例 1. Socket简介
- 不在一个主机上,通过socket来满足需求,封装不同网络主机的请求
- 处理不同的细节存在一定的难度,Socket我们可以屏蔽一些底层设计。
- 流套接字:可靠数据报套接字:广播、简单原始套接字:保证IP完整性
- 客户端一般是发起方
- 动作一致
- 这里的函数使用C作为演示。
- 协议簇:指定具体的协议socket类型:protocol协议:具体用什么协议type和protocol是必须对应的返回一个描述符(在协议空间,但没有绑定IP地址)
- 空指针作为返回的协议地址(因为不知道是谁来进行请求的)
- 文件描述符fd:是进程中文件的唯一索引套接字默认是阻塞模式,我在写别人不能写(修改阻塞态)
- count个字节的数据返回值:
- >00-1:错误码进入errno
- nread表示不是很重要的错误返回读了多少bufp:下次开始读是从哪里开始读
- 使用read调用来读取指定长度的数据(非阻塞模式)
- Socket和ServerSocket
- 主动连接;Socket
- Java进行了比较好的封装
- 数据报最大1024字节



