黑马程序员技术交流社区

标题: 关于udp传输的程序,接收端没有读出数据,求大神解答啊 [打印本页]

作者: 你好明天    时间: 2015-5-31 07:13
标题: 关于udp传输的程序,接收端没有读出数据,求大神解答啊
package cn.itcast01;
发送端
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
//udp传输,发送端
public class Demo1 {
        public static void main(String[] args) throws IOException {
                // 创建socket对象
                DatagramSocket ds = new DatagramSocket();
                // 打包数据
                String s = "你好,网络编程";
                DatagramPacket dp = new DatagramPacket(s.getBytes(),
                                s.getBytes().length, InetAddress.getByName("192.168.1.106"), 10086);
                //发送数据
                ds.send(dp);
                //释放资源
                ds.close();
        }
}
------------------------------------------------------
package cn.itcast01;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

/*
* 接受数据
*/
public class Demo3 {
        public static void main(String[] args) throws IOException {
                // 创建端口对象
                DatagramSocket ds = new DatagramSocket(10086);
                // 接受数据
                byte[] bys = new byte[1024];
                DatagramPacket dp = new DatagramPacket(bys, bys.length);
                ds.receive(dp);
                // 解析数据
                String ip = dp.getAddress().getHostAddress();
                byte[] bys2 = dp.getData();
                String s = new String (bys2,0,dp.getLength());
                System.out.println(ip+"----"+s);
                ds.close();
        }
}




作者: edithe    时间: 2015-5-31 15:45
下面为什么要再定义一个数组bys2,直接打印bys不就行了?
作者: edithe    时间: 2015-5-31 15:52
我试了一下,是可以的啊,是不是你先开的发送端?
作者: 你好明天    时间: 2015-5-31 19:05
edithe 发表于 2015-5-31 15:52
我试了一下,是可以的啊,是不是你先开的发送端?

正解!我先开的发送端,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2