网络编程
1.什么是网络编程
在网络通信协议下,不同计算机上运行的程序,可以进行数据传输
2.网络通信的两大模式(C/S和B/S)
-
客户端服务器模式(C/S)
优点:
界面炫酷,可以使用本地的内存和显卡,
降低服务器的负担
功能强大
缺点:
占客户端资源
扩展,升级不方便.
-
浏览器服务器模式(B/S)
优点:
分布式能力强,维护升级方便
缺点:
服务器压力大
3.网络编程三要素
DOS常用命令
ipconfig(查看本机ip)
ping IP地址:检查网络是否连通
-
IP地址
设备在网络中的地址,是唯一的标识
IPv4用4字节数据保存ip
Ipv6用16字节数据保存ip
InetAdress
1.InetAdress类表示ip地址
2.常用方法
static inetAddress getByName(String host)用来获取指定ip地址的对象
getHostName()获取ip地址的主机名
getHostAddress()获取ip地址的字符串形式
-
端口
应用程序在设备中的唯一标识
端口号
用两个字节表示(0-65535)
普通的应用程序需要使用1024以上的端口号
如果端口号被两个程序使用用,会导致端口冲突
-
协议
定义通讯的规则(udp,tcp)
udp协议
特点:
1.面向无连接(不安全,效率高)
2.打包数据发送
场景:视频会议,语音会议
构造方法
DatagramSocket()
DatagramPacket(byte[] buf,int len,InetAddress add,int port)创建数据包,并指明长度和发送到的主机地址和端口
常用方法
send(DatagramPacket p)发送数据包
close()关闭Socket
receive(DatagramPacket p)接收数据包
运作流程:
发送端:
-
创建发送端的Socket对象(DatagramSocket)
-
创建数据,并把数据打包
-
调用DatagramSocket对象的方法发送数据(send)
-
关闭发送端
接收端:
-
创建接收端的Socket对象(DatagramSocket)
-
创建一个数据包,用于接收数据(只用指明长度)
-
调用DatagramSocket对象的方法接收数据(receive)
-
解析数据包,并把数据在控制台显示
-
关闭接收端
相关方法
byte[] getData()返回数据缓冲区
int getLength()返回数据长度
tcp协议
特点:
1.面向连接(安全)
2.形成数据传输通道
3.发送大量数据
场景:传输文件
tpc协议的三次握手和4次挥手
用来确保连接安全
三次握手:
-
第一次握手,客户端向服务器端发出连接请求,等待服务器确认
-
第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求
-
第三次握手,客户端再次向服务器端发送确认信息,确认连接
四次挥手:
- 第一次挥手,客户端向服务端发出取消连接请求
- 第二次挥手,服务端向客户端回应一个响应,表示收到
- 第三次挥手,服务端向客户端发出确认取消信息
- 第四次挥手,客户端向服务端发送确认信息
构造方法:
Socket(InetAddress address,int port)创建socket并指明ip(InetAdress)和端口号
Socket(String host, int port)创建socket并指明ip(字符串)和端口号
常用方法:
InputStream getInputStream()创建一个输入流
OutputStream getOutputStream()创建一个输出流
运作流程:
客户端:
- 创建客户端socket对象与指定服务端连接
- 获取输出流,写数据,刷新
- 释放资源
服务端:
- 创建服务端Serversocket对象指定端口号
- 监听客户端连接,返回一个socket对象
- 获取输出流,写数据,显示到控制台
- 释放资源
标签:ip,编程,网络,服务端,创建,数据包,端口号,客户端 From: https://www.cnblogs.com/zlsame/p/17249496.html