Problem mit dem Java-Socket-Protokoll: Server reagiert nicht auf den Client
In den bereitgestellten Codeausschnitten stoßen Sie auf ein Problem, bei dem der Server nicht reagiert auf die Anfragen des Kunden reagieren. Um dieses Problem zu lösen, müssen Sie die Feinheiten des Java-Socket-Protokolls verstehen.
Problem:
Der angegebene Code versucht, eine Client-Server-Kommunikation herzustellen, wohin der Client sendet eine Nachricht an den Server. Beim Empfang der Nachricht druckt der Server sie jedoch weder aus noch antwortet sie darauf.
Lösung:
Der Schlüssel zur Lösung dieses Problems liegt darin, sicherzustellen, dass Nachrichten, die über gesendet werden Der Socket-Stream entspricht den Formatierungsrichtlinien des Protokolls. Damit der Server die Nachricht in diesem Fall korrekt verarbeiten kann, erwartet er am Ende jeder Nachricht einen Wagenrücklauf (r) gefolgt von einem Zeilenvorschub (n).
Implementierung:
Um das Problem zu beheben, ändern Sie den Client-Code wie folgt:
string = "end"; out.write(string + "\r\n"); // Add "\r\n" to the string out.flush();
Ändern Sie auf ähnliche Weise die folgende Änderung, damit der Server eine ordnungsgemäße Antwort sendet:
out.write("to end" + "\r\n"); // Add "\r\n" to the string out.flush(); out.close();
Durch die Einbeziehung dieser Anpassungen entsprechen sowohl die Client- als auch die Servernachrichten den Formatierungsanforderungen des Protokolls, sodass der Server die Anforderungen des Clients erfolgreich empfangen, verarbeiten und beantworten kann.
Das obige ist der detaillierte Inhalt vonWarum antwortet mein Java-Server nicht auf die Anfragen meines Clients?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!