Http 端口号 80 FTP 端口号 21
InetAddress类
InetAddress address = InetAddress.getLocalHost();
address.getHostName() 获取主机名
address.getHostAddress() 获取IP地址
InetAddress.getByName("1.1.1.10"); 根据ip地址获取InetAddress实例
InetAddress.getByName("laurenyang") 根据主机名获取InetAddress实例
TCP
服务端:
ServerSocket serverSocket = new ServerSocket(8888);//创建服务端socket并设置端口号。
InputStream is = socket.getInputStream();//字节输入流
InputStreamReader isr = new InputStreamReader(is)//将字节流转化为字符流
BufferedReader br = new BufferedReader(isr)//为输入流添加缓存
客户端:
Socket socket = new Socket("localhost",8888);//创建客户端socket实例 并设置Ip地址 和 端口号
OutputStream os = socket.getOutputStream();//创建输出流 PrintWriter pw = new PrintWriter(os);//将输出流包装为打印流
pw.write("用户名:admin;密码:1p234");
pw.flush();//刷新缓存
UDP
服务端:
DatagramSocket socket=new DatagramSocket(8800);//UDP协议的Socket 创建DatagramSocket实例,并设置端口号
byte[] data =new byte[1024];//接收数据 存入字节数组中 设置大小
DatagramPacket packet=new DatagramPacket(data, data.length);//
创建DatagramPacket实例 并设置接收的数据和数据大小
socket.receive(packet);//接收数据,从绑定接收数据 Socket 到接收缓冲区中。
String info=new String(data, 0, packet.getLength());//把字节转化为字符串数组 设置 数据 和长度
System.out.println(info);//在控制台输出数据
客户端
InetAddress address=InetAddress.getByName("localhost");//获取IP地址
int port=8800;//设置端口号
byte[] data="用户名:admin;密码:123".getBytes();//设置要发送的数据
DatagramPacket packet=new DatagramPacket(data, data.length, address, port);//创建DatagramPacket数据报实例 并设置 发送的数据 数据长度 IP地址 和端口号
DatagramSocket socket=new DatagramSocket();
socket.send(packet);//相应客户端 将要发送的数据报发送给客户端