A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 波涛 中级黑马   /  2014-5-27 11:49  /  1431 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 波涛 于 2014-5-27 12:35 编辑

下面是根据视频讲解中自己写的一个模拟聊天的简易控制台程序,编译时主方法中报“找不到合适的构造器错误”,求大神给予帮助!谢谢!
  1. /*
  2. 模拟简易聊天控制台程序
  3. */
  4. import java.io.*;
  5. import java.net.*;
  6. public class ChatDemo
  7. {
  8.         public static void main(String[]args)
  9.         {
  10.            Send s = new Send();
  11.            Recie r = new Recie();
  12.             new Thread(s).start();
  13.                 new Thread(r).start();
  14.         }
  15. }

  16. //接收类
  17. class Recie implements Runnable
  18. {
  19.         public void run()
  20.         {
  21.                 try
  22.                 {        //创建接收服务Socket
  23.                         DatagramSocket dgs = new DatagramSocket(8081);
  24.                         //定义接收数组,并封装到包
  25.                 while(true)
  26.                 {   byte buf[] = new byte[1024];
  27.                         DatagramPacket dp = new DatagramPacket(buf,buf.length);
  28.                         //调用服务的接收方法,接收数据
  29.                         dgs.receive(dp);
  30.                         //将接收到的数据拆包,得到想要的内容
  31.                         String ip = dp.getAddress().getHostAddress();
  32.                         String data = new String(dp.getData(),0,dp.getLength());
  33.                         System.out.println("IP:"+ip+" 消息:"+data);
  34.                 //关闭资源
  35.                 //dgs.close();
  36.                 }
  37.                 }catch(Exception e){System.out.println(e.toString());}
  38.         }
  39. }
  40. //发送类
  41. class Send
  42. {
  43.         public void run()
  44.         {
  45.                     //定义服务
  46.                     DatagramSocket ds = new DatagramSocket();
  47.                
  48.                     //接收用户键盘录入,转为字节包装后发送到指定ip和端口上,     
  49.                     BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  50.                         String line = null;
  51.                         DatagramPacket dp = null;
  52.                         
  53.                         while((line=br.readLine())!=null)
  54.                         {
  55.                            if("886".equals(line))
  56.                                    break ;
  57.                            try
  58.                            {
  59.                                 dp = new DatagramPacket(line.getBytes(),line.length(),InetAddress.getByName("192.168.0.101"),8081);
  60.                            }
  61.                            catch (Exception e)
  62.                            {
  63.                                    System.out.println(e.toString());
  64.                            }
  65.                         
  66.                            //调用服务的发送功能,将数据包发送出去
  67.                            ds.send(dp);
  68.              }               
  69.         }
  70. }
复制代码



2 个回复

倒序浏览
两处错误:

1.Send类没有实现 Runnable 接口

2. DatagramSocket ds = new DatagramSocket() 有异常 没有处理。try...catch 一下。

哥们认真点:handshake,come on!!!:victory:

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报
weimoliang 发表于 2014-5-27 12:03
两处错误:

1.Send类没有实现 Runnable 接口

哦,谢谢,疏忽了~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马