Datei von Port A an Port B senden

callas

Grünschnabel
Hallo,

ich schreibe gerade eine kleine Anwendung mit der ich auf einem bestimmten Port lausche, bis etwas an diesen Port geschickt wird.
Da ich aber die ganze Zeit an diesem Port lausche, ist es nicht möglich etwas über/an diesen Port zu senden, da dann immer die Fehlermeldung kommt :" java.net.BindException: Address already in use: JVM_Bind"

Kann ich irgendwie einstellen, dass ich von einem anderen Port an den zu lauschendem Port sende ?

Ich erstelle mir beide Verbindungen so :

Code:
ServerSocket serverSocket = new ServerSocket(665);
            Socket socket = serverSocket.accept();
 
Hi

du sendest schon an socket, nicht serverSocket?
Das sollte normalerweise trotz laufendem ServerSocket gehen.

Bitte mehr Code.
 
Den Code lade ich morgen früh hoch. Komme da heute nicht mehr ran ..

so, also der Code ist folgender:

Das sind übrigens zwei unterschiedliche Java Projekte die ich da ausführe....
Das eine für den Provider und das andere für den Listener

Der Provider :

Code:
ServerSocket serverSocket = new ServerSocket(this.port);
                Socket socket = serverSocket.accept();

 
                byte[] buffer = new byte[16384];
                InputStream inputStream = new FileInputStream(this.file);
                OutputStream outputStream = socket.getOutputStream();
                int len = 0;
                while ((len = inputStream.read(buffer)) > 0) {
                    outputStream.write(buffer, 0, len);
                }
 
   
                inputStream.close();
                outputStream.close();
                socket.close();


Der Listener:

Code:
try {
                ServerSocket serverSocket = new ServerSocket(this.port);
                Socket socket = serverSocket.accept();
         
                InputStream stream = socket.getInputStream();
               
                ........


                socket.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

ok, ich habs selber hinbekommen jetzt.
habe im Provider nur mit Socket gearbeitet jetzt:

Socket socket = new Socket("localhost", 665);


Danke trotzdem für deine ersten Bemühungen :)
 
Das muss ja so sein.
Es gibt prinzipiell immer genau einen ServerSocket,
zu dem sich beliebig viele Sockets verbinden können.
Der Serverscket sucht sich einen Port aus,
und die anderen müssen diesen wissen, um sich verbinden zu können.
Es kann (am gleichen Computer) aber immer nur einen ServerSocket pro Port geben.

PS: Bitte zukünftige Themen selbst als Erledigt markieren.
 
Alles klar, danke für die Erklärung.

Das mit dem "Erledigt" wusste ich nicht, aber wird nächstes mal gemacht !
 

Neue Beiträge

Zurück