Hi, ich hab anscheinend n Problem bei der Erstellung eines DatagrammSockets.
Diese Klasse kapselt die Datagram-Sockets und stellt eine etwas komfortablere Schnittstelle zur Verfuegung :
Der Server:
Exception:
Hab verschiedenste Ports ausprobiert, merkert immer
Diese Klasse kapselt die Datagram-Sockets und stellt eine etwas komfortablere Schnittstelle zur Verfuegung :
Java:
public class UdpSocket
{
private static Log log = LogFactory.getLog(UdpSocket.class);
private DatagramSocket socket;
private InetAddress remoteAddress;
private int remotePort;
// Anzahl Wiederholungen beim Empfangen eines UDP-Paketes
private static int numberOfRetries = 3;
/**
* Konstruktor
* @param port UDP-Port, der lokal fuer das Datagramm-Socket verwendet werden soll
*/
public UdpSocket() throws SocketException {
socket = new DatagramSocket(50000);
try {
log.debug("Groesse des Empfangspuffers des Datagram-Sockets: " + socket.getReceiveBufferSize() + " Byte");
log.debug("Groesse des Sendepuffers des Datagram-Sockets: " + socket.getSendBufferSize() + " Byte");
} catch (SocketException e){
log.debug("Socketfehler: " + e);
}
}
...
Der Server:
Java:
.....
public static void main (String args[]) throws SocketException
{
PropertyConfigurator.configureAndWatch("log4j.server.properties", 60 * 1000);
while (true) {
try {
UdpSocket socket = new UdpSocket();
EchoPDU echo;
echo = (EchoPDU) socket.receive(10);
long startTime = System.nanoTime();
connections.put(echo.getClientName(),socket);
echo.setServerTime(System.nanoTime() - startTime);
socket.send(socket.getRemoteAddress(), 500000, echo);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Exception:
Code:
java.net.BindException: Address already in use: Cannot bind
at java.net.DualStackPlainDatagramSocketImpl.socketBind(Native Method)
at java.net.DualStackPlainDatagramSocketImpl.bind0(Unknown Source)
at java.net.AbstractPlainDatagramSocketImpl.bind(Unknown Source)
at java.net.DatagramSocket.bind(Unknown Source)
at java.net.DatagramSocket.<init>(Unknown Source)
at java.net.DatagramSocket.<init>(Unknown Source)
at java.net.DatagramSocket.<init>(Unknown Source)
at edu.hm.dako.EchoApplication.UDPSingleThreaded.UdpSocket.<init>(UdpSocket.java:57) //er meckert ueber -> socket = new DatagramSocket(44432);
at edu.hm.dako.EchoApplication.UDPSingleThreaded.UDPSingleThreadedEchoServer.main(UDPSingleThreadedEchoServer.java:66)
Hab verschiedenste Ports ausprobiert, merkert immer