我的 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()
。
我正在尝试 运行 一个基本的 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()
。