黑马程序员技术交流社区
标题:
关于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