einfache Socket-Programmierung

girl2005

Erfahrenes Mitglied
Hallo,

kann mir vielleicht jemand helfen?
Ich versuche die Socket-Programmierung zu verstehen.
Dafür schreibe ich ein client und ein Server.
der Client gibt in ein textArea was ein..und das soll auf der Konsole angezeigt werden. das funktionniert nicht.

das sind die beide Klassen.

Code:
import java.net.*;
import java.io.*;
 
 public class SimpleEchoServer 
{
 	
 	 
  public static void main(String[] args)
   {
     try {
       System.out.println("Warte auf Verbindung auf Port 7...");
       ServerSocket echod = new ServerSocket(7);
       Socket socket = echod.accept();
       System.out.println("Verbindung hergestellt");     
       InputStream in = socket.getInputStream();
       OutputStream out = socket.getOutputStream();
     
      
       int c;
       while ((c = in.read()) != -1) {
         out.write((char)c);
         System.out.print((char)c);
       }
       
       System.out.println("Verbindung beenden");
       socket.close();
       echod.close();
     } 
     catch (IOException e) {
       System.err.println(e.toString());
       System.exit(1);
     }
  }
  
  
 }



Code:
import java.awt.BorderLayout;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JFrame;
import javax.swing.JTextArea;



public class SimpleEchoClient extends JFrame  {
	
	JTextArea area = new JTextArea();
	
	public SimpleEchoClient() throws UnknownHostException, IOException{
		
		Socket soc = new Socket("localhost",7);
		getContentPane().setLayout(new BorderLayout());
		getContentPane().add(area);
		
		
		
	}
	
	public static void main(String[] args) throws UnknownHostException, IOException{
		
		SimpleEchoClient beispiel = new SimpleEchoClient();

		beispiel.setLocation(100, 100);
		beispiel.setSize(600,600);
		beispiel.setVisible(true);
	}

}]

.
 
Hallo,

es funktioniert deshalb nicht, weil du nur an die Hälfte gedacht hast. Du hast im Client lediglich das Socket erstellt und die TextArea hinzugefügt, gesendet wird da noch nichts. Was dir fehlt ist ein Listener (z.B. ein KeyListener) für die TextArea, in dem der eingegebene Text an den OutputStream des Sockets gesendet wird.
 
Zurück