jojo-kahlua
Lt. Junior Grade
- Registriert
- Nov. 2012
- Beiträge
- 274
Hallo Leute,
folgendes: ich will ein einfache EchoServer-Anwendung simulieren.
Dabei scheint es auch zu funktionieren bis zu dem Punkt "Socket client=server.accept();" - ab hier geht nichts mehr weiter. Nun weis ich, dass bei Server.accept() auf die Anmeldung des Clients gewartet wird - nur wie realisiere ich die Anmeldung?!
I-wie hänge ich da gerade bei der weiteren Vorgehensweise..
Server:
Client:
folgendes: ich will ein einfache EchoServer-Anwendung simulieren.
Dabei scheint es auch zu funktionieren bis zu dem Punkt "Socket client=server.accept();" - ab hier geht nichts mehr weiter. Nun weis ich, dass bei Server.accept() auf die Anmeldung des Clients gewartet wird - nur wie realisiere ich die Anmeldung?!
I-wie hänge ich da gerade bei der weiteren Vorgehensweise..
Server:
Code:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package server;
/**
*
*
*/
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Server {
public static void main(String[] args) {
new Server();
}
public Server(){
try {
initServer();
} catch (IOException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void initServer() throws IOException{
ServerSocket server=new ServerSocket(5430);
System.out.println("waiting for connection");
Socket client=server.accept();
System.out.println("connected");
DataOutputStream out = new DataOutputStream(client.getOutputStream());
DataInputStream in = new DataInputStream(client.getInputStream());
String message;
while(client.isConnected()){
try{
message = in.readUTF();
System.out.println("Am Server: " + message);
}
catch(IOException ex){
System.out.println("Connection closed");
break;
}
out.writeUTF(message);
}
server.close();
}
}
Client:
Code:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package server;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
*
*/
public class Client {
public static void main(String[]args){
}
public Client(){
try {
connectToServer();
} catch (IOException ex) {
Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void connectToServer() throws IOException{
Socket socket = new Socket("localhost",5430);
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
DataInputStream in = new DataInputStream(socket.getInputStream());
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
while(true){
System.out.println("Geben sie eine Nachricht ein: ");
String in_string=input.readLine();
if(in_string.equals("1")){
socket.close();
in.close();
out.close();
break;
}
out.writeUTF(in_string);
String s = in.readUTF();
System.out.println("Am Client: " + s);
}
System.out.println("Connection closed");
}
}