问题1、端口号这个问题有些不懂。希望大神给予指导
视频里说的两个端口要一致,而我接收设置1234,发送端口设置为6789,为什么运行时同样可以收到。(是因为我发送方和接收方只开了一个端口,默认的接收吗?)这个端口的号具体是怎么指导发送和接收对接的呢???
问题2见下面红色区域2
发送端(send)
public class Demo_send {
public static void main(String[] args) throws Exception {
String str = "我爱你,我的家";
DatagramSocket socket = new DatagramSocket(); //创建socket相当于创建码头
DatagramPacket packet = //创建packet相当于创建集装箱
new DatagramPacket(str.getBytes(), str.getBytes().length, InetAddress.getByName("127.0.0.1"), 6789);
socket.send(packet);
socket.close();
}
}
接收端(receive)
public class Demo_Receive {
public static void main(String[] args) throws Exception {
DatagramSocket socket = new DatagramSocket(1234);
//视频里说的两个端口要一致,而我接收设置1234,发送端口设置为6789,为什么同样可以收到。这个端口的号具体是怎么指导发送和接收对接的呢???
DatagramPacket p = new DatagramPacket(new byte[1024], 1024); //相当于创建1024大小的集装箱
socket.receive(p); //接货,接收数据
//这里的接收用P代替,而不是和发送端一样的packet, 因为上面的端口号不是对应的,那么接收端的packet(p)是怎么识别发送端的packet并实现数据对接的呢? (查看了received编码,不过是新手,看的不太明白。也是像上面的默认接收的吗?)
byte[] arr =p.getData();
int len = p.getLength();
System.out.println(new String(arr,0,len));
socket.close();
}
}
|
|