Ich habe ein paar Probleme mit meinem Server-Socket. Ich erstelle einen DatagramSocket, um zwischen einem Server und einem Client zu chatten.Java-Socket-Server blockiert
public static void main (String[] args) throws IOException {
byte[] send = new byte[1024];
byte[] receive = new byte[1024];
BufferedReader entree;
DatagramSocket serverSocket = null;
InetAddress ip;
InetAddress ipDest;
int port;
try {
serverSocket = new DatagramSocket(8888);
} catch (SocketException e) {
e.printStackTrace();
}
while (true) {
DatagramPacket recu = new DatagramPacket(receive, receive.length);
serverSocket.receive(recu);
String sentence = new String(recu.getData());
ipDest = recu.getAddress();
port = recu.getPort();
System.out.println("Reçu:"+sentence);
entree = new BufferedReader(new InputStreamReader(System.in));
String chaine = entree.readLine();
send = chaine.getBytes();
DatagramPacket dp = new DatagramPacket(send, send.length, ipDest, port);
serverSocket.send(dp);
send = new byte[1024];
receive = new byte[1024];
}
Aber ich benutze new BufferedReader(new InputStreamReader(System.in))
das nächste Material, Sie bekommen, und es blockiert. Also kann ich nicht empfangen, was vom Kunden kommt und es ausdrucken.
Wie kann ich das arrangieren?
Merci, eo
Sie müssen es auf verschiedene Threads setzen, wenn Sie gleichzeitig "senden und empfangen" können. – Reinard