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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.io.*;
import java.net.*;
class  Send implements Runnable
{
        private DatagramSocket ds;
        public Send(DatagramSocket ds)
        {
                this.ds = ds;
        }
        public void run()
        {
                try
                {
                        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
                        String line = null;
                        while ((line=bufr.readLine())!=null)
                        {
                                if ("886".equals(line))
                                {
                                        break;
                                }
                                byte[] buf = line.getBytes();
                                DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName(192.168.1.254),10002);
                                ds.send(dp);
                        }
                }
                catch (Exception e)
                {
                        throw new RuntimeException("发送信息失败");
                }
        }
}
class  Rece implements Runnable
{
        private DatagramSocket ds;
        public Rece(DatagramSocket ds)
        {
                this.ds = ds;
        }
        public void run()
        {
                try
                {
                        while (true)
                        {
                                byte[] buf = new byte[1024];
                                DatagramPacket dp = new DatagramPacket(buf,buf.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)
                {
                        System.pout.println("接收失败");
                }
        }
}
class ChatDemo
{
        public static void main(String[] args)
        {
                DatagramSocket sendSocket = new DatagramSocket();
                DatagramSocket receSocket = new DatagramSocket(10002);
                new Thread(new Send(sendSocket)).atart();
                new Thread(new Rece(receSocket)).start();
        }
}
错误提示如下:
:\javalianxi>javac 1605.java
605.java:23: 需要 ')'
                               DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(192.168.1.254),10002);

                                  ^
605.java:23: 需要 ';'
                               DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(192.168.1.254),10002);

                                    ^
605.java:23: 非法的表达式开始
                               DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(192.168.1.254),10002);

                                        ^
605.java:23: 需要 ';'
                               DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(192.168.1.254),10002);

                                         ^
605.java:23: 不是语句
                               DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(192.168.1.254),10002);

                                          ^
605.java:23: 需要 ';'
                               DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(192.168.1.254),10002);

                                               ^
错误

就这么一句代码怎么这么多错误,求解答!

评分

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

查看全部评分

3 个回复

倒序浏览
DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(192.168.1.254),10002);
加粗部分的Ip地址加个引号即可,
这个方法接收的是一个字符串:getByName(String str),
还有你那异常输出语句应该是 System.out.println("接收失败");
而你多加了一个p System.pout.println("接收失败");


评分

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

查看全部评分

回复 使用道具 举报
import java.io.*;
import java.net.*;
class  Send implements Runnable
{
        private DatagramSocket ds;
        public Send(DatagramSocket ds)
        {
                this.ds = ds;
        }
        public void run()
        {
                try
                {
                        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
                        String line = null;
                        while ((line=bufr.readLine())!=null)
                        {
                                if ("886".equals(line))
                                {
                                        break;
                                }
                                
                                byte[] buf = line.getBytes();
                                DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.254"), 10002);
                                ds.send(dp);
                        }
                }
                catch (Exception e)
                {
                        throw new RuntimeException("发送信息失败");
                }
        }
}
class  Rece implements Runnable
{
        private DatagramSocket ds;
        public Rece(DatagramSocket ds)
        {
                this.ds = ds;
        }
        public void run()
        {
                try
                {
                        while (true)
                        {
                                byte[] buf = new byte[1024];
                                DatagramPacket dp = new DatagramPacket(buf,buf.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)
                {
                        System.out.println("接收失败");
                }
        }
}
class ChatDemo
{
        public static void main(String[] args) throws Exception
        {
                DatagramSocket sendSocket = new DatagramSocket();
                DatagramSocket receSocket = new DatagramSocket(10002);
                new Thread(new Send(sendSocket)).start();
                new Thread(new Rece(receSocket)).start();
        }
}

这回差不多咯~

评分

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

查看全部评分

回复 使用道具 举报
代码可以放进代码区,这样阅读起来更方便
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马