网络编程定义:
借助计算机网络,实现程序之间的信息或者数据传输
计算机网络:
利用通信设备或者线路,把不同区域的计算机连接起来
最终实现数据传输
java语言支持网络编程,将网络中的一些实现细节封装起来,对外提供一些类,程序员使用这些类进行编程即可。
网络编程核心:
1.如何找到计算机网络中的某台主机或程序(ip和端口)
2.如何可靠高效的进行数据传输(协议)
网络模型:
OSI 7层模型
TCP/Ip模型 协议进行控制,ip定位
ip是计算机的地址
192.168.124.88 局域网地址
本机回环地址
端口号:
计算机程序的一个整数编号
有的程序启动时计算机自动分配,有的设置为固定编号
但是端口号不能重复。自己定义最好从1024开始
通信协议:
在传输数据时对如何传输进行控制,例如传输的内容,速率,出现问题之后如何解决
传输控制协议TCP(transmisssion Control Protocol)
TCP协议:
在发送数据前,建立tcp协议,检测网络是否通畅
三次握手机制:
传输数据可靠
服务器连接不通会报错
在数据传输完毕之后会断开连接,采用四次挥手机制
特点:
数据传输可靠,但是效率较低
三次挥手机制简单理解:
1.客户端给服务器发送一个请求连接的消息
2.服务器接收消息之后给客户端作出回应,确认服务器收到了客户端的消息
3.客户端给服务器再次做出一个回应
如此,客户端与服务器都确定双方可以接收到双方的消息
四次挥手机制简单理解:
1.客户端给服务器发送一个断开连接的请求
2.服务器给客户端做出回应,确认收到并且传输数据
3.服务器给客户端发送断开连接的请求
4.客户端做出回应,确认断开连接。
用户数据报协议UDP(User Datagram Protocol)
UDP协议:
将数据源,数据,目标地址封装成一个个数据包/报,然后发送
发送成功与否不知道
特点:
不可靠,不建立连接,效率高