Ich versuche, ein kleines Beispiel mit Java-Sockets zu machen. Aber ich kann es nicht funktionieren lassen. Der Server erhält die Petition des Clients korrekt. Aber das Problem kommt, wenn ich versuche, den String "Hallo" an den Server zu senden.Verbindung zwischen Java-Socket-Server und Socket-Client
Wie ich debuggte, ist der InputStream im Server null, so dass nichts gedruckt wird. Ich denke, dass das Problem in dem PrinterWriter sein muss, vielleicht soll ich eine andere Klasse verwenden, i mit anderen Klassen wie BufferedWriter versucht, aber ich konnte es nicht
hier ist mein Code funktioniert
Server
public class ServidorFechaHora {
static final int port = 5000;
static String line;
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
ServerSocket ss = new ServerSocket(port);
while (true) {
/* accept nos devuelve el Socket conectado a un nuevo cliente.
Si no hay un nuevo cliente, se bloquea hasta que haya un
nuevo cliente.
*/
Socket soc = ss.accept();
System.out.println("Cliente conectado");
// Obtenemos el flujo de entrada del socket
InputStream is = (InputStream) soc.getInputStream();
//Función que llevaría a cabo el envío y recepción de los datos.
processClient(is);
}
}
private static void processClient(InputStream is) throws IOException {
// TODO Auto-generated method stub
BufferedReader bis = new BufferedReader(new InputStreamReader(is));
while ((line = bis.readLine()) != null){
System.out.println(line);
}
bis.close();
}
}
Client
public class ClienteFechaHora {
public static void main(String[] args) throws IOException, InterruptedException {
Socket client = null;
PrintWriter output = null;
//BufferedOutputStream out = null;
DateFormat hourdateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
try {
client = new Socket("127.0.0.1", port);
output = new PrintWriter(client.getOutputStream(), false);
while (true) {
System.out.println("Enviando datos...");
output.write("hello");
output.flush();
Thread.currentThread().sleep(2000);
//System.out.println("Fecha y hora: " + hourdateFormat);
}
}
catch (IOException e) {
System.out.println(e);
}
output.close();
client.close();
}
}
Vielen Dank im Voraus!
Ich habe gerade überprüft den Server mit meinem zu ändern Dummy-Client und funktioniert gut –
Der Eingabestream auf dem Server ist nie null. Unklar, was du verlangst. – EJP
EJP Wie gesagt, ich versuche, die Zeichenfolge "Hallo" vom Client an den Server zu senden und es in der Servermethode "ProcessClient" anzuzeigen. Ich denke, es ist klar, was ich versuche, nur die Beschreibung oder den Code zu lesen. Bitte lesen Sie das nächste Mal genauer, anstatt mir negative Punkte zu geben. :) – Javi