Visto che sono stato poco chiaro ora mi spiego questo è il codice del client realizzato da me
codice:
import java.io.*;
import java.net.*;
public class UDPClient {
static final int PORT= 2200;
static final int bufLen = 512;
static final PrintStream dspl = System.out;
public static void main(String[] argv){
try {
InetAddress serverAddress = InetAddress.getLocalHost();
DatagramSocket UDPsocket = new DatagramSocket();
BufferedReader uin = new BufferedReader(
new InputStreamReader(System.in));
byte[] outBuffer;
byte[] inBuffer = new byte[bufLen];
DatagramPacket outDatagram;
DatagramPacket inDatagram = new DatagramPacket(inBuffer,inBuffer.length);
String cmd;
int cnt = 0;
do {
cmd = cnt+" <"+uin.readLine()+">";
cnt++;
outBuffer = cmd.getBytes();
outDatagram = new DatagramPacket(outBuffer,outBuffer.length,
serverAddress,PORT);
dspl.println(new String(outDatagram.getData()));
UDPsocket.send(outDatagram);
try {
inDatagram.setLength(inBuffer.length);
UDPsocket.receive(inDatagram);
dspl.println("ack: "+
new String(inDatagram.getData(),0,inDatagram.getLength()));
}
catch(InterruptedIOException e) {
dspl.println("Timeout attesa ack!");
}
} while(!cmd.endsWith("<quit>")); /* fine interazione */
}
catch(IOException e) {
e.printStackTrace();
}
}
}
import java.io.*;
import java.net.*;
import java.util.Date;
public class UDPServer {
static final int PORT= 2200;
static final int bufLen = 512;
static final PrintStream dspl = System.out;
public static void main(String[] argv){
try {
DatagramSocket UDPsocket = new DatagramSocket(PORT);
String localAddress = InetAddress.getLocalHost().getHostName().trim();
int localPort = UDPsocket.getLocalPort();
dspl.println(localAddress+"["+localPort+"] LISTEN");
byte[] outBuffer;
byte[] inBuffer = new byte[bufLen];
DatagramPacket outDatagram;
DatagramPacket inDatagram = new DatagramPacket(inBuffer,inBuffer.length);
String data;
do {
inDatagram.setLength(inBuffer.length);
UDPsocket.receive(inDatagram);
InetAddress destAddress = inDatagram.getAddress();
String destHost = destAddress.getHostName().trim();
int destPort = inDatagram.getPort();
dspl.print("> "+destHost+"["+destPort+"] : ");
data = new String(inDatagram.getData(),0,inDatagram.getLength());
dspl.println(data);
String ack = new Date().toString() + " rcv: " +data;
outBuffer = ack.getBytes();
outDatagram = new DatagramPacket(outBuffer,outBuffer.length,
destAddress,destPort);
UDPsocket.send(outDatagram);
} while(!data.endsWith("<quit>"));
}
catch(IOException e) {
e.printStackTrace();
}
}
}
ma non riesco a farli comunicare il server sta in ascolto alla porta ma il client non comunica.
l'errore che mi da netbeans è
Cannot assign requested address: Datagram send failed
Spero di essere stato chiaro. client e server girano sullo stesso pc