我正在尝试运行一个基本的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(); }
}
}
答案 0 :(得分:1)
Java中数组的长度是而不是通过方法(m.length()
)检索;它只是一个字段(m.length
)。因此,它应该是m.length
,不是 m.length()
。