TCP协议
接收端:
package com.tcp;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStream;
public class MyReceive {
public static void main(String[] args) throws Exception { //TCP协议
//接收端
//1创建接收端对象
ServerSocket serverSocket = new ServerSocket(9532);
//2获取套接字对象
Socket accept=serverSocket.accept();
//3获取输入流
InputStream inputStream=accept.getInputStream();
//4读数据
//准备一个字节数组
byte[] bb=new byte[1024];
inputStream.read(bb);
//5查看接收数据
String result=new String(bb);
System.out.println("接收到的数据是 "+result);
//6关闭资源
inputStream.close();
accept.close();
serverSocket.close();
}
}
发送端:
package com.tcp;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class MySend {
public static void main(String[] args) throws Exception { //TCP
//发送端
//1创建socket对象,指定ip和端口
InetAddress byName=InetAddress.getByName("127.0.0.1");
Socket socket = new Socket(byName,9532);
//2得到输出流
OutputStream outputStream = socket.getOutputStream();
//3发送数据
//准备数据
String data="中秋月饼";
outputStream.write(data.getBytes());
//4关闭资源
outputStream.close();
socket.close();
System.out.println("数据发送完毕!!!");
}
}
UDP协议
接收端:
package com.zy.receive;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class MyReceive {
public static void main(String[] args) throws Exception { //UDP协议
//接收端
//1创建港口,指定港口号
DatagramSocket datagramSocket=new DatagramSocket(9999);
//2创建字节数组接收数据,及创建集装箱
byte[] bb=new byte[1024];
DatagramPacket datagramPacket = new DatagramPacket(bb,bb.length);
//3接收货物
datagramSocket.receive(datagramPacket); //线程阻塞
//4验证货物
String result = new String(bb);
System.out.println("日本港口收到的货物是:"+result);
//5关闭港口
datagramSocket.close();
}
}
发送端:
package com.zy.receive;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class MySend {
@SuppressWarnings("resource")
public static void main(String[] args) throws Exception { //UDP协议
//发货
//1备货【用字符串数据模拟货物】
String data="晶晶食用油好用";
//2准备集装箱
//将字符串转换成字节数组
byte[] bytes=data.getBytes();
//得到ip地址
InetAddress byName=InetAddress.getByName("192.168.113.92");
DatagramPacket datagramPacket =
new DatagramPacket(bytes,bytes.length,byName,9999 );
//3创建港口
DatagramSocket datagramSocket = new DatagramSocket();
//4发货
datagramSocket.send(datagramPacket);
//5关闭港口
datagramSocket.close();
System.out.println("货物发送完毕!!!");
}
}