黑马程序员技术交流社区
标题:
程序报错,求解!
[打印本页]
作者:
波涛
时间:
2014-5-27 11:49
标题:
程序报错,求解!
本帖最后由 波涛 于 2014-5-27 12:35 编辑
下面是根据视频讲解中自己写的一个模拟聊天的简易控制台程序,编译时主方法中报“找不到合适的构造器错误”,求大神给予帮助!谢谢!
/*
模拟简易聊天控制台程序
*/
import java.io.*;
import java.net.*;
public class ChatDemo
{
public static void main(String[]args)
{
Send s = new Send();
Recie r = new Recie();
new Thread(s).start();
new Thread(r).start();
}
}
//接收类
class Recie implements Runnable
{
public void run()
{
try
{ //创建接收服务Socket
DatagramSocket dgs = new DatagramSocket(8081);
//定义接收数组,并封装到包
while(true)
{ byte buf[] = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
//调用服务的接收方法,接收数据
dgs.receive(dp);
//将接收到的数据拆包,得到想要的内容
String ip = dp.getAddress().getHostAddress();
String data = new String(dp.getData(),0,dp.getLength());
System.out.println("IP:"+ip+" 消息:"+data);
//关闭资源
//dgs.close();
}
}catch(Exception e){System.out.println(e.toString());}
}
}
//发送类
class Send
{
public void run()
{
//定义服务
DatagramSocket ds = new DatagramSocket();
//接收用户键盘录入,转为字节包装后发送到指定ip和端口上,
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
DatagramPacket dp = null;
while((line=br.readLine())!=null)
{
if("886".equals(line))
break ;
try
{
dp = new DatagramPacket(line.getBytes(),line.length(),InetAddress.getByName("192.168.0.101"),8081);
}
catch (Exception e)
{
System.out.println(e.toString());
}
//调用服务的发送功能,将数据包发送出去
ds.send(dp);
}
}
}
复制代码
作者:
weimoliang
时间:
2014-5-27 12:03
两处错误:
1.Send类没有实现 Runnable 接口
2. DatagramSocket ds = new DatagramSocket() 有异常 没有处理。try...catch 一下。
哥们认真点:handshake,come on!!!:victory:
作者:
波涛
时间:
2014-5-27 12:26
weimoliang 发表于 2014-5-27 12:03
两处错误:
1.Send类没有实现 Runnable 接口
哦,谢谢,疏忽了~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2