-
Notifications
You must be signed in to change notification settings - Fork 0
/
net编程
102 lines (93 loc) · 3.61 KB
/
net编程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# 网络编程
- 网络:
- 网络协议:一套规则
- 网络模型
- 七层模型
- 物理层
- 数据链路层
- 网络层
- 传输层
- 会话层
- 表示层
- 应用层
- 四层模型-实际应用
- 链路层
- 网络
- 传输层
- 应用层
- 每一层都有相应的协议负责交换信息或者协同工作
- TCP/IP 协议组
- IP地址:负责在网络上唯一定位的一个机器
- IP地址分ABCDE五类
- 是由四个数字段组成,每个数字段的取值是0-255
- 192.168.xxx.xxx:局域网IP
- 127.0.0.1: 本机
- IPv4,IPv6
- 端口
- 范围:0-65535
- 知名端口:系统占用的0-1023
- 非知名端口:软件可以使用的端口1024-65535
# TCP/UDP协议
- UDP:非安全性的不面向链接的传输
- 安全性差
- 大小限制64kb
- 没有顺序
- 速度快
- TCP
- 基于链接的通信
- Socket编程
- socket:是一个网络通信的端点,能实现不同主机的进程通信,网络大多基于Socket通信
- 通过IP+端口定位对方并发送消息的通信机制
- 分为UDP和TCP
- 客户端Client:发起访问的一方
- 服务端Server:接受访问的一方
- UDP编程
- Server端流程:
1. 建立socket,socket是负责具体通信的一个实例
2. 绑定,为创建的socket指派固定的端口和ip地址
3. 接受对方发送内容
4. 给对方发送反馈,此步骤为非必须步骤
- Client端流程
1. 建立socket通信
2. 发送内容到指定服务器
3. 接受服务器给定的反馈内容
- 服务器案例v01
- 客户端案例v02
- 服务器程序要永久运行,一般使用死循环
- TCP编程
- 面向链接的传输,即每次传输之前都要先建立一个链接
- 客户端和服务器端两个程序需要编写
- server端的编写流程
1. 建立socket负责具体通信,这个socket其实只负责接受对方的请求,
2. 绑定端口和地址
3. 监听接入的访问socket
4. 接受访问的socket,可以理解接受访问即建立了一个通信的链接通信
5. 接受对方的发送内容,利用接收到的socket接受内容
6. 如果有必要,给对方发送反馈信息
7. 关闭链接通路
- Client端流程
1. 建立通信socket
2. 链接对方,请求跟对方建立通路
3. 发送内容到对方服务器
4. 接受对方的反馈
5. 关闭链路通道
- server端案例v03
- 客户端案例v04
# FTP编程
- FTP:文件传输协议
- 用途:定制一些特殊的上传下载文件的服务
- 用户类型:登陆FTP服务器必须有一个账号
- Real账户:注册用户
- Guest账户:可能临时对某一类人的行为进行授权
- Anonymous账户:匿名账户,允许任何人
- FTP工作流程
1. 客户端链接远程主机上的FTP服务器
2. 客户端输入用户名和密码
3. 客户端和服务器进行各种文件传输和信息查询操作
4. 客户端从远程FTP服务器退出,结束传输
- FTP文件表示
- 分三段表示FTP服务器上的文件
- HOST:主机地址,类似于ftp.mozilla.org,已ftp开头
- DIR:目录,表示文件所在的本地的路径,例如pub/android/focus/
- File:文件名称,例如Klar-1.apk
- 如果想完整精确的表示ftp上某一个文件,需要上述三部分组合在一起