Mini-Chat löst BindException aus

Status
Nicht offen für weitere Antworten.

Reality

Top Contributor
Hi,
zuerst rufe ich das Programm mit dem Argument "Hallo \n" auf und dann ohne Argument. Es laufen also 2 Programme gleichzeitig.
Mit Argument wird gesendet; ohne Argument wird empfangen.

Code:
import java.net.*;

class WriteServer {
  public static int serverPort = 666;
  public static int clientPort = 999;
  public static int buffer_size = 1024;
  public static DatagramSocket ds;
  public static byte buffer[] = new byte[buffer_size];

  public static void TheServer() throws Exception{
    int pos = 0;
     while(true){
       int c = System.in.read();

       switch(c){
         case -1:
           System.out.println("Server wird beendet.");
           return;

          case '\r':
            break;

          case '\n':
            ds.send(new DatagramPacket(buffer, pos, InetAddress.getLocalHost(), clientPort));
            pos = 0;
            break;

          default:
            buffer[pos++] = (byte) c;
       }
     }
  }

  public static void TheClient() throws Exception{
    while(true){
      DatagramPacket p = new DatagramPacket(buffer, buffer.length);
      ds.receive(p);
      System.out.println(new String(p.getData(), 0, p.getLength()));
    }
  }

  public static void main(String[] args) throws Exception{
    if(args.length == 1){
      ds = new DatagramSocket(serverPort);
      TheServer();
    }

    else{
      ds = new DatagramSocket(clientPort);
      TheClient();
    }
  }
}

Habe den Code von nem Buch, aber er scheint nicht zu funktionieren:

java.net.BindException: Address already in use: Cannot bind
at java.net.PlainDatagramSocketImpl.bind(Native Method)
at java.net.DatagramSocket.bind(DatagramSocket.java:368)
at java.net.DatagramSocket.<init>(DatagramSocket.java:210)
at java.net.DatagramSocket.<init>(DatagramSocket.java:261)
at java.net.DatagramSocket.<init>(DatagramSocket.java:234)
at WriteServer.main(WriteServer.java:49)
Exception in thread "main"

Habe das ganze local getestet und der Autor meint auch, dass man im Internet sein muss, was ich auch bin.

Liebe Grüße
Reality
 

L-ectron-X

Gesperrter Benutzer
Bin in der Netzwerkprogrammierung nicht so bewandert, kenne nur die Grundlagen.
Demnach interpretiere ich die Fehlermeldung so, dass Dein Computer wahrscheinlich schon den Port, der geöffnet werden soll, mit einer anderen Anwendung belegt hat.
 

Grizzly

Top Contributor
Man sollte prinzipiell keine Ports unter 1024 benutzen, da diese für andere Dienste reserviert sind.

Außerdem kommt der Fehler bei mir meist, wenn ich mehrere Testläufe mache und vergessen habe das alte Programm zu beenden. ;)
 

Reality

Top Contributor
Hi,
auch die Portänderung in 1111 und 1112 hat nicht geholfen. Es kommt die Gleiche Exception.
Vielleicht mache ich bei der Ausführung des Programms etwas falsch...

Liebe Grüße
Reality
 

Grizzly

Top Contributor
Ich hab das mal auf zwei Klassen aufgedrösselt. Im Endeffekt ist es das gleiche, sieht bloss anders aus ;) .
Code:
public class Client {
	public static final int PORT = 3000;
	
	private byte[] buffer = new byte[Server.BUFFER_SIZE]; 
	private DatagramSocket ds = null;
	
	public Client() {
		super();
	}
	
	public void run() throws SocketException, IOException {
		DatagramPacket packet;
		
		this.ds = new DatagramSocket(PORT);
		try {
			while (true) {
				packet = new DatagramPacket(this.buffer, this.buffer.length);
				this.ds.receive(packet);
				System.out.print(new String(packet.getData()));
			}
		} finally {
			this.ds.close();
		}
	}
	
	public static void main(String[] args) {
		Client client = new Client();
		try {
			client.run();
		} catch (Throwable t) {
			t.printStackTrace();
		}
	}
}
Code:
public class Server {
	public static final int PORT = 2000;
	public static final int BUFFER_SIZE = 60;
	
	private byte[] buffer = new byte[BUFFER_SIZE]; 
	private DatagramSocket ds = null;
	
	public Server() {
		super();
		Arrays.fill(buffer, (byte) 'a');
	}
	
	public void run() throws SocketException, IOException {
		this.ds = new DatagramSocket(PORT);
		BufferedReader reader;
		String command = null;
		DatagramPacket packet;
		
		try {
			while (!"quit".equals(command)) {
				reader = new BufferedReader(new InputStreamReader(System.in));
				command = reader.readLine();
				if ("send".equals(command)) {
					packet = new DatagramPacket(this.buffer, 0, this.buffer.length, InetAddress.getLocalHost(), Client.PORT);
					this.ds.send(packet);
				}
			}
		} finally {
			this.ds.close();
		}
	}
	
	public static void main(String[] args) {
		Server server = new Server();
		try {
			server.run();
		} catch (Throwable t) {
			t.printStackTrace();
		}
	}
}
Und bei mir funkt das wunderbar ???:L . Solange ich nicht mehere Server oder Clients gleichzeitig laufen lasse, treten keine Probleme auf :) .
 

meez

Top Contributor
L-ectron-X hat gesagt.:
Demnach interpretiere ich die Fehlermeldung so, dass Dein Computer wahrscheinlich schon den Port, der geöffnet werden soll, mit einer anderen Anwendung belegt hat.

Zu 99% wahrscheinlich...
 

Reality

Top Contributor
L-ectron-X hat gesagt.:
@Reality: Könnte es sein, dass Dir eine Firewall dazwischen funkt?
Beim ersten Versuch habe ich sie abgeschalten, aber Fehlermeldung kam trotzdem.

@Grizzly: Danke werde ich morgen ausprobieren.

Liebe Grüße
Reality
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
JavaWolf165 Mini-Datenbank durch Link Netzwerkprogrammierung 6
N Eigenen mini webbrowser fernsteuern Netzwerkprogrammierung 1
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
L Chat Fenster Netzwerkprogrammierung 1
J Socket Ein Chat Server Tutorial Netzwerkprogrammierung 8
S Java Chat Server Netzwerkprogrammierung 8
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
P Chat in Java Netzwerkprogrammierung 3
C Java Chat Admin Kenzeichnung Netzwerkprogrammierung 14
D Chat Server/mehre Client Netzwerkprogrammierung 9
Androbin Socket Fehlerhafter Applet-Chat Netzwerkprogrammierung 12
C Microsoft Comic Chat Netzwerkprogrammierung 0
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
O Chat (Server) sendet an verschieden Benutzer. Netzwerkprogrammierung 10
J Chat programmieren Netzwerkprogrammierung 12
L Chat Server programmieren Netzwerkprogrammierung 10
TheJavaKid Webcam-Chat im Applet (ChatRoulette Klon) Netzwerkprogrammierung 10
H Socket Java Chat - Verbindung zum Server fehlgeschlagen. Netzwerkprogrammierung 5
K Socket Chat-GUI eigenes Event nach Empfangen Netzwerkprogrammierung 2
K chat Netzwerkprogrammierung 13
F RMI einfacher Chat - Callbacks(?) funktionieren nicht Netzwerkprogrammierung 7
L Socket Chat funktioniert nicht Netzwerkprogrammierung 2
T Socket Java Chat Netzwerkprogrammierung 2
xDarkSunx Chat JFrame Netzwerkprogrammierung 3
xDarkSunx Hilfe Chat Login Netzwerkprogrammierung 7
E JAVA Chat Netzwerkprogrammierung 19
C Java Chat funktioniert nicht richtig Netzwerkprogrammierung 6
I Chat-Client empfängt nichts vom Server Netzwerkprogrammierung 3
A Socket UDP Chat Verbindungsproblem im WWW (Server sendet ins leere) Netzwerkprogrammierung 11
A Multi-User-Chat Netzwerkprogrammierung 2
M Socket Chat-Client-Problem Netzwerkprogrammierung 8
E Userliste für Chat Applet Netzwerkprogrammierung 4
L Socket Chat Server für mehrere Clients Netzwerkprogrammierung 7
J Framework/ Muster für Chat-ähnliches Programm gesucht Netzwerkprogrammierung 2
AMStyles Client Server basierter Chat Netzwerkprogrammierung 7
M chat als applet umgeschrieben - unbekannter fehler :( Netzwerkprogrammierung 2
P Socket Chat selbst bauen + Multiusereditor Netzwerkprogrammierung 13
T Java Chat über UDP Netzwerkprogrammierung 7
Developer_X Habe fragen zur Chat Programmierung Netzwerkprogrammierung 4
P Java Multiuser Chat hohe Systemauslastung Netzwerkprogrammierung 24
D Hilfe ich komme bei meinem UDP chat Server nicht mehr weiter Netzwerkprogrammierung 9
B Die alte Leier: "Chat" Netzwerkprogrammierung 3
M chat funktioniert nicht (Connection refused: connect) Netzwerkprogrammierung 3
R Java-Chat-Applet funktioniert nur in Eclipse Netzwerkprogrammierung 3
S Client-Server Chat Problem nur im lokalen Netztwerk Netzwerkprogrammierung 23
DamienX Chat Socketserver/Client. wo ist das Problem? Netzwerkprogrammierung 2
J Client-Client-Chat ohne Serverbeteiligung Netzwerkprogrammierung 2
A Wichtig für einen Chat? Netzwerkprogrammierung 4
S Java Applet Chat Grundsatzfrage Netzwerkprogrammierung 6
R Java Chat über Inet connecten Netzwerkprogrammierung 3
F Chat Programm. Verständnisfrage while-Schleife Netzwerkprogrammierung 7
P Probleme bei Chat programm Netzwerkprogrammierung 2
C Voice Chat Netzwerkprogrammierung 3
G FAQ Chat geht nicht ? Netzwerkprogrammierung 4
T Schriftfarbe im Chat ändern Netzwerkprogrammierung 2
G ActionEvent klappt beim Chat nicht Netzwerkprogrammierung 5
J Kleines Problem mit Chat Server Netzwerkprogrammierung 2
T Chat-Client Netzwerkprogrammierung 12
G Chat zwischen applets: möglich? Netzwerkprogrammierung 2
T Chat mit mehreren Clients Netzwerkprogrammierung 3
C Chat , Streamproblem, PumpingException, Danke Netzwerkprogrammierung 2
S RMI Chat Problem, Client bekannt machen Netzwerkprogrammierung 2
V probleme mit dem chat programm Netzwerkprogrammierung 4
K Lokaler Chat Netzwerkprogrammierung 5
S Chat aufs Internet ausweiten Netzwerkprogrammierung 5
J Router behindert Chat Netzwerkprogrammierung 9
S Knuddels Chat System: Bot / Nachrichten verschicken? Netzwerkprogrammierung 6
G Chat - was brauch ich Netzwerkprogrammierung 2
André B. Brauche Hilfe bei Chat Netzwerkprogrammierung 6
K Problem mit "Chat" Netzwerkprogrammierung 2
N Java-Chat (lauffähig) macht Probleme auf der Konsole Netzwerkprogrammierung 6
Paule Acces denied bei Chat Netzwerkprogrammierung 6
B Multi-chat Problem Netzwerkprogrammierung 3
N Java Chat-Problem Netzwerkprogrammierung 4
G Java Chat mit HTML Cleint Netzwerkprogrammierung 3
G Chat Programm - was ist los? Netzwerkprogrammierung 9
A server mit 2 Ports : Mit und ohne SSL Chat system Netzwerkprogrammierung 10
Z chat: wann http und wann sockets verwenden? Netzwerkprogrammierung 11
M Socket Verbindungen für einen Chat Netzwerkprogrammierung 10
F Multiclient Chat Netzwerkprogrammierung 12
K Chat: Nur 1 Verbindung zum Server möglich :( Netzwerkprogrammierung 6
K Chat: Verbindung kommt nicht zu stande Netzwerkprogrammierung 6
S JAV07P SGD client/server chat Netzwerkprogrammierung 4
C IRC CHAT auslesen -> Sockets/input und output Streams Netzwerkprogrammierung 9
S Einfacher Multiuser chat in java Netzwerkprogrammierung 18
D Client Server Problem, Methode readline() löst SocketException "Connection reset" aus Netzwerkprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben