当前位置: 代码迷 >> J2SE >> java udp连接,该怎么解决
  详细解决方案

java udp连接,该怎么解决

热度:77   发布时间:2016-04-24 01:08:29.0
java udp连接
Java code
package UdpDemo;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.net.UnknownHostException;public class UdpDemo {    /**     * @param args     */    public static void main(String[] args) {        try {            DatagramSocket ds=new DatagramSocket();            byte[] buf="this is demo".getBytes();            try {                                DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),10000);                try {                    System.out.println("开始发送....");                    ds.send(dp);                } catch (IOException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }System.out.println("关闭资源");                ds.close();            } catch (UnknownHostException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        } catch (SocketException e) {                // TODO Auto-generated catch block            e.printStackTrace();        }    }}

Java code
package UdpDemo;import java.net.DatagramPacket;import java.net.DatagramSocket;    public class UpRece{        public static void main(String[] args) throws Exception{            // 创建端点            DatagramSocket ds=new DatagramSocket(10000);            //定义数据包 存储数据           byte[] buffer=new byte[1024];           DatagramPacket dp=new DatagramPacket(buffer, buffer.length);           System.out.println("开始接收");           ds.receive(dp);           System.out.println("开始分类获取");           String ip=dp.getAddress().getHostAddress();           String Data=new String(dp.getData(),0,    dp.getLength());            int port=dp.getPort();           System.out.println(ip+":"+Data+"::"+port);           ds.close();                    }            }
我怎么接受不到任何信息,是Ip的问题吗?

------解决方案--------------------
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1")
这段代码的目标地址不对,广播的目标地址应该是 255.255.255.255或192.168.1.255(192.168.1 网段 内),你把127.0.0.1改成255.255.255.255应该就可以了
------解决方案--------------------
楼主,你的程序是可以接受到信息的,我测了下没有问题,你看到的是服务器端的结果,应该切换到客户端看结果,eclipse控制台那边有个小电视,你切换看看,应该就ok了。
------解决方案--------------------
我也测试了,木有问题
  相关解决方案