我想创建一个将客户端计算机的完整系统信息发送到服务器计算机的Java应用程序。在下面的程序中,我能够完成任务,但是当遇到空格时消息会被拆分。我尝试删除split方法但它不起作用。
客户端应该以格式化的格式逐行将信息发送到服务器。
P.S-我曾参考Youtube视频教程。
Client.java
str.extract
答案 0 :(得分:0)
如果您想避免在每个空间分成多个数据包,请在遇到某些空格时删除分成数据包的循环:
所以替换:
while (true) {
DatagramPacket request = new DatagramPacket(buffer, buffer.length);
datagramSocket.receive(request);
String [] arrayMsg= (new String(request.getData())).split(" ");
byte [] sendMessage=(arrayMsg[i]+" Server Processed").getBytes();
DatagramPacket reply=new DatagramPacket(sendMessage,sendMessage.length,request.getAddress(),
request.getPort());
datagramSocket.send(reply);
i++;
}
}
由:
DatagramPacket request = new DatagramPacket(buffer, buffer.length);
datagramSocket.receive(request);
byte [] sendMessage = (request.getData() + " Server Processed").getBytes();
DatagramPacket reply = new DatagramPacket(sendMessage,
sendMessage.length, request.getAddress(), request.getPort());
datagramSocket.send(reply);
另一种方法是在行尾分割。
不要忘记使用这样的UDP,你可以:
无序数据包
在拥挤的情况下丢失数据包