我的 UDPClient 程序出错

ERROR in my UDPClient Program

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

谁能指导一下哪里出了问题?

错误:

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(); }
        }
}

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