首页 > 代码库 > 网络通信协议
网络通信协议
java.net.InetAddress IP地址
静态方法:(生成主机对象 BF-20170226IIJX/192.168.91.82)
static InetAddress getLocalHost() 返回本地主机
static InetAddress getByName(String host) 返回指定地址的主机对象 可以传入 IP地址 主机名 域名
非静态方法
String getHostName() 返回主机名
String getHostAddress() 返回主机IP地址
UDP协议
发送端
java.net.DategramSocket (发送时的运行路径)
构造方法
DategramSocket() 发送端对象
方法
void send(DategramPacket p)发送数据包
java.net.DategramPacket (数据包)
构造方法
DategramPacket(byte[] buf, int length, InetAddress address, int port)
数据包封装(数据, 长度, 地址(主机对象), 端口号)
1.准备数据 字节数组
2.创建数据包对象
3.创建发送端对象(发送时的运行路径)
4.调用发送端send(DategramPacket p)发送数据包
5.关闭资源 发送端
接收端
java.net.DategramSocket 接收端
构造方法
DategramSocket(int port) 接收端对象(指定端口接收)
方法
void receive(DategramPacket p)接收数据包
java.net.DategramPacket 数据包
构造方法
DategramPacket(byte[] buf, int length) 接收数据包的对象
1.创建接收端对象
2.创建数据包对象
3.调用数据包对象
4.拆包
DategramPacket
int getLength() 获取长度
InetAddress getAddress() 获取发送端的主机对象
int getPort() 发送端的端口号 操作系统随机分配
5.关闭资源
TCP协议通信
java.net.Socket 客户端对象
构造方法
Socket(InetAddress address, int port) 指定服务器地址和端口号
Socket(String host, int port)
方法
InputStream getInputStream() 获取同路中的字节输入流
OutputStream getOutputStream() 获取同路中的字节输出流
1.创建客户端对象 绑定 服务器地址和端口号
2.获取字节输出流调用getOutputStream
3.输出 数据
4.获取字节输出流 用来接收服务器发送回来的数据
5.接收数据
6.关闭资源
java.net.ServerSocket TCP服务端对象
构造方法
ServerSocket(int port) 绑定端口号
方法
Socket accept() 哪个客户端连接服务器返回哪个客户端的Socket对象
1.创建ServerSocket对象
2.调用accept() 获取发送数据的客户端对象
3.调用客户端对象的getInputStream方法 用来接收客户端发送的数据
4.调用客户端对象的 getOutputStream方法 向客户端写出数据
5.关闭资源
UDP:传送速度快,但是容易丢失数据,只能发送64kb以下的数据
网络通信协议