我的UDPClient程序中的错误

时间:2015-10-22 20:49:11

标签: java cannot-find-symbol

我正在尝试运行一个基本的UDPCLient-Server程序。 当我编译我的UDPClient程序时,它导致下面的错误。 虽然我的服务器编译成功。

有人可以指导出错吗?

ERROR:

UDPClient.java:13: error: cannot find symbol
                                new DatagramPacket(m,m.length(),aHost,serverPort);
                                                      ^
  symbol:   method length()
  location: variable d of type byte[]
1 error

我的代码:

import java.net.*;
import java.io.*;
public class UDPClient{
        public static void main(String args[]){
                // args give message contents and server hostname
                DatagramSocket aSocket = null;
                try {
                        aSocket = new DatagramSocket();
                        byte[] m = args[0].getBytes();
                        InetAddress aHost = InetAddress.getByName(args[1]);
                        int serverPort = 6789;
                        DatagramPacket request =
                                new DatagramPacket(m,m.length(),aHost,serverPort);
                        aSocket.send(request);
                        byte[] buffer = new byte[1000];
                        DatagramPacket reply = new DatagramPacket(buffer,buffer.length);
                        aSocket.receive(reply);
                        System.out.println("Reply: " + new String(reply.getData()));
                }
                catch (SocketException e){
                        System.out.println("Socket: " + e.getMessage());
                }
                catch (IOException e){
                        System.out.println("IO: " + e.getMessage());
                }
                finally { if (aSocket != null) aSocket.close(); }
        }
}

1 个答案:

答案 0 :(得分:1)

Java中数组的长度是而不是通过方法(m.length())检索;它只是一个字段(m.length)。因此,它应该是m.length不是 m.length()