网络编程
网络通信的两个要素 通信双方的地址:ip和端口号
网络通信协议:OSI参考模型(太理想化)和TCP/IP协议(事实上的国际标准)
向下数据封装,向上数据拆封
ip地址 InetAddress
java中使用getByName方法来获取地址
本地回环地址hostAddress:127.0.0.1
host文件地址 c:\windows\system32\drivers\etc\hosts
端口号
端口标识正在计算机上运行的进程
-
不同的进程由不同的端口号,用来区分软件
-
被规定一个16位的整数0~65535
-
TCP和UDP各有65535个端口,单个协议下端口不能冲突
-
端口分类
-
公认端口 0~1023 被预先定义的服务器通信占用端口
- http 80
- https 443
- ftp 21
- telent 23
-
注册端口:1024~49151 分配给用户进程或应用程序
- tomcat 8080
- mysql 3306
- Oracle 1521
-
动态私有端口 49152~65535
- QQ 8998
- msn 7898
netstat -ano #查看所有端口 netstat -ano|findstr "6732" #查看指定端口 tasklist|findstr "6732" #查看指定进程 # 使用任务管理器查看PID
-
端口号和IP地址的结合 得出一个网络套接字
网络通信协议
-
定义:计算机网络中实现通信必须有一些约定,即通信协议,对速率,传输代码,代码结构,传输控制步骤, 出错控制等制定标准。
-
问题
涉及内容过多 源地址和目标地址 加密解密 压缩解压缩 差错控制 流量控制 路由控制
-
通信协议分层思想
TCP/IP协议簇
TCP/UDP协议的对比
例子对比 打电话和发短信
- TCP协议
- 必须创建TCP链接 形成传输数据通道
- 三次握手 点对点通信
- 两个应用进程
- 传输完毕 释放已经建立的链接
三次握手:1.客户端向服务端发送一个尝试建立连接的请求,2.收到后服务端向客户端发送一个准备好接收连接的响应,3.客户端收到这个响应后与服务端建立连接
四次挥手:1.在服务端数据传输完毕,想要断开连接,但是不清楚服务端有没有接收完数据,所以先告诉服务端我的数据传输完成了。2.服务端接收到客户端的信息,由于数据还未传输完成,向客户端响应不要断开连接。3.服务端的数据接受完毕,对客户端发送响应,你可以断开连接了。4.客户端受到消息后,连接断开
UDP网络编程
URL编程
传输协议://主机名:端口号/文件名 #片段名?参数列表