我正在尝试运行一个基本的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(); }
}
}发布于 2015-10-22 22:53:44
Java中数组的长度是,而不是通过方法(m.length())检索的;它只是一个字段(m.length)。因此,它应该是m.length,而不是m.length()。
https://stackoverflow.com/questions/33290498
复制相似问题