DatagramPacket XXX = new DatagramPacket(定义的byte数组,定义长度, IP, 端口);
输出(发船)
(用轮船来装(调用)).send(b);
释放资源(轮船走了(关闭Socket)所有资源就已经停掉,包括流,不用刻意去关)
接收流程:
创建Socket接收数据 (端口地址必须跟传输端口匹配)
DatagramSocket ds = new DatagramSocket(8888);
创建空包,空字节数组准备接受数据
byte [] arr = new byte[1024];
DatagramPacket dp = new DatagramPacket(arr,arr.length);
(字节数组,字节数组长度)
接受数据
ds.receive(dp);
处理数据
InetAddress ad = dp.getAddress();
byte [] arr1 = dp.getData();
int len = dp.getLength();
String ss = new String(arr1,0,len);
System.out.println(InetAddress.getLocalHost()+"发来信息"+ss);
TCP传输接收流程(复习IO流): 传输流程(客户端):
创建发送端Socket
Socket s = new Socket(InetAddress.getLocalHost(),9999);
(要传输的Ip地址(这里写的是自己电脑IP),端口)
获取连接,输出数据
OutputStream os = s.getOutputStream();
(IO字节输出流)
创建数据
String a = "hello word";
看流向(字符,字节流进行包装)(这里是字节流)定义字节数组(定义集装箱)
byte[] b = a.getBytes();
写入数据(装箱)
os.write(b);
释放资源
接收流程(服务端):
创建接收端Socket对象:
ServerSocket ss = new ServerSocket(端口)
监听(等待客户来咨询):
Socket s = ss.accepet();
获取输入流对象(IO流 可选择不同流种)
InputStream os = s.getInputStream();
获取数据(根据流种选择接受类型)
byte [] bys = new byte[1024];
int len ;
len = os.read(bys);
String s1 = new String(bys,0,len);
InetAddress ia = s.getInetAddress();