黑马程序员技术交流社区
标题:
java基础23天,模拟UDP聊天,在本人机子上为什么不能运行?
[打印本页]
作者:
新航向
时间:
2014-9-7 23:22
标题:
java基础23天,模拟UDP聊天,在本人机子上为什么不能运行?
本帖最后由 新航向 于 2014-9-8 08:47 编辑
以下代码比本上和视频里的一样,在本人机子上为什么会出错?(即输入内容后就卡住,也不打印地址和内容)请大神们帮忙看看,谢谢!
import java.io.*;
import java.net.*;
class Send implements Runnable
{
private DatagramSocket ds;
Send(DatagramSocket ds)
{
this.ds = ds;
}
public void run()
{
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while ((line=br.readLine())!=null)
{
if(!line.equals("886"))
break;
byte[] buff = line.getBytes();
DatagramPacket dp = new DatagramPacket(buff,buff.length,InetAddress.getLocalHost(),54321);
ds.send(dp);
}
ds.close();
}
catch (Exception e)
{
throw new RuntimeException("传输失败");
}
}
}
class Receive implements Runnable
{
private DatagramSocket ds;
Receive(DatagramSocket ds)
{
this.ds = ds;
}
public void run()
{
try
{
while (true)
{
byte[] buff = new byte[1024];
DatagramPacket dp = new DatagramPacket(buff,buff.length);
ds.receive(dp);
String ip = dp.getAddress().getHostAddress();
String data = new String(dp.getData(),0,dp.getLength());
System.out.println(ip+"::"+data);
}
}
catch (Exception e)
{
throw new RuntimeException();
}
}
}
class ChatDemo
{
public static void main(String[] args) throws Exception
{
DatagramSocket sendSocket = new DatagramSocket();
DatagramSocket receiveSocket = new DatagramSocket(54321);
new Thread(new Send(sendSocket)).start();
new Thread(new Receive(receiveSocket)).start();
}
}
复制代码
1.png
(30.41 KB, 下载次数: 27)
下载附件
2014-9-7 23:18 上传
作者:
不服™け你咬我
时间:
2014-9-7 23:36
明天帮你看看,,现在的机子没环境
作者:
新航向
时间:
2014-9-8 08:48
不服™け你咬我 发表于 2014-9-7 23:36
明天帮你看看,,现在的机子没环境
问题已经找到,if判断语句反了
还是多谢你了!
作者:
卖艺人
时间:
2014-9-8 10:57
好厉害啊,学习一下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2