本帖最后由 张向辉 于 2013-2-5 12:30 编辑
- import java.net.*;
- import java.io.*;
- class UdpSend2
- {
- public static void main(String[] args) throws Exception
- {
- DatagramSocket ds = new DatagramSocket();
- BufferedReader bfr = new
- BufferedReader(new InputStreamReader(System.in));
- String line = null;
- while((line=bfr.readLine())!=null)
- {
- if("88".equals(line))
- break;
- byte[] buf = line.getBytes();
- DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("localHost"),10000);
- ds.send(dp);
- }
- ds.close();
- }
- }
- class UdpReceive2
- {
- public static void main(String[] args) throws Exception
- {
- DatagramSocket ds = new DatagramSocket(10001);
- while(true)
- {
- byte[] buf = new byte[1024];
- DatagramPacket dp = new DatagramPacket(buf,buf.length);
- ds.receive(dp);
- String ip = dp.getAddress().getHostAddress();
- String data = new String(dp.getData(),0,dp.getLength());
- System.out.println(ip + "::" + data);
- }
- }
- }
复制代码 我们知道端口是对网络应用程序进行的数字标识,上述程序中监听端DatagramSocket ds = new DatagramSocket(10001);所指定的端口为什么必须和
发送端所使用的端口一致才可以监听到数据呢?在监听端使用哪一个端口来监听可以作为广播,监听到发送端所有端口发送的数据
或者说把DatagramSocket ds = new DatagramSocket(10001);如何修改可以监听发送端所有端口发送的数据 |