java网络编(UDP)程接收不到问题,请看源码

这是发送端:

package ForNet;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;

public class SendUDP {	
	public static void main(String[] args) throws Exception{
		System.out.println("请输入你要发送的内容:");
		Scanner sc = new Scanner(System.in);
		byte[] b = sc.nextLine().getBytes();
		sc.close();
		InetAddress add = InetAddress.getByName("127.0.0.1");
		DatagramPacket dp = new DatagramPacket(b, b.length, add, 65530);
		DatagramSocket ds = new DatagramSocket();
		ds.send(dp);
		ds.close();
	}
}

这是接收端:

package ForNet;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class ReceiveUDP {
	public static void main(String[] args) throws Exception{
		DatagramSocket ds = new DatagramSocket(65530);
		byte[] b = new byte[1024];
		DatagramPacket dp = new DatagramPacket(b, b.length);
		ds.receive(dp);
		int length = dp.getLength();
		System.out.println(new String(b, 0, length));
		ds.close();
	}
}

实在不知道哪里写错了,就是接受不到自己发的信息……

 

1-1:笔记本上写的能正常运行的TX端:

package Inter;
/*
 *	发送端
 */
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;

public class UDPTest {
	public static void main(String[] args) throws Exception {
		System.out.println("输入你要发送的内容: ");
		Scanner sc = new Scanner(System.in);
		String s = sc.nextLine();
		sc.close();
		byte[] by = s.getBytes();
		InetAddress ip = InetAddress.getByName("127.0.0.1");
		DatagramPacket dpk = new DatagramPacket(by, by.length, ip, 9900);
		DatagramSocket dsk = new DatagramSocket();
		dsk.send(dpk);
		dsk.close();
	}
}

2-2:RX端:

package Inter;
/*
 *	接收端 
 */
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class UDP_RX {
	public static void main(String[] args) throws Exception {
		DatagramSocket ds = new DatagramSocket(9900);
		byte[] by = new byte[1024];
		DatagramPacket dpk = new DatagramPacket(by, by.length);
		ds.receive(dpk);
		int l = dpk.getLength();
		String add = dpk.getAddress().getHostAddress();
		System.out.println(add + "发送的消息:" + new String(by,0,l));
		ds.close();
	}
}

 

你可能感兴趣的:(java)