You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/* Angelehnt an Kurose/Ross Computernetzwerke (bis 5e Java, ab 6e Python) */
package verteiltesysteme.socket.reuse;
import java.net.*;
class UDPServerReuse { public static void main(String args[]) throws Exception { int udpPort = 36037; @SuppressWarnings("resource") DatagramSocket serverSocket = new DatagramSocket(null); // erlaubt das Wiederverwenden des Ports, mehrere Server-Prozesse k�nnen gleichen Port nutzen
serverSocket.setReuseAddress(true); serverSocket.bind(new InetSocketAddress(udpPort)); byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024];
System.out.println("UDP Server started. Waiting for incoming requests... (reuseAddress="+serverSocket.getReuseAddress()+", timeout="+serverSocket.getSoTimeout() +", buffersize="+serverSocket.getReceiveBufferSize()+")"); while (true) { DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket); String sentence = new String(receivePacket.getData(), 0, receivePacket.getLength());
InetAddress IPAddress = receivePacket.getAddress(); int clientSrcPort = receivePacket.getPort();
System.out.println("Received request from client " + IPAddress + ":" + clientSrcPort + " generating response..."); String capitalizedSentence = sentence.toUpperCase(); sendData = capitalizedSentence.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, clientSrcPort); serverSocket.send(sendPacket); } } }
|