0
Мой код выглядит следующим образом. Все работает так, как я этого хочу, но когда мои сообщения получаются, у них много коробок на конце, что-то вроде этого «Сообщение: привет» ▀▀▀▀▀▀▀ «Как я могу сделать так, чтобы получилось и напечатано только« Сообщение: привет »? Я очень благодарен за любую помощь.Сообщение, отправленное в UDP-датаграмме, не дезинфицировано?
import java.io.*;
import java.net.*;
public class UDPChat {
public static void main(String args[]) throws Exception {
new UDPChat();
}
public UDPChat() {
try {
runChat();
} catch (Exception e) {
}}
public void runChat() throws InterruptedException {
Sender sender = new Sender();
Receiver receiver = new Receiver();
sender.start();
receiver.start();
sender.join();
receiver.join();
}
class Receiver extends Thread {
public void run() {
try {
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
while (true) {
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData());
System.out.println("Message: " + sentence);
}
} catch (IOException e) {
}
}
}
class Sender extends Thread {
public void run() {
try {
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("localhost");
byte[] sendData = new byte[1024];
while (true) {
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
String message = inFromUser.readLine();
sendData = message.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
clientSocket.send(sendPacket);
}
} catch (IOException e) {
}
}
}
}
Отлично, это именно то, что я искал! Спасибо за помощь! – Auborey
@Auborey - Пожалуйста, примите ответ, если он сработает для вас. Узнайте, как принять ответ ---> http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –