hallo erstmal.
ich habe bei euch verdammt viele posts zu dem thema gefunden aber konnte mir wirklich helfen.
wir müssen für die FH einen Chat von TCP auf UDP umschreiben und ich habe da jetzt irgedwie ein Problem ich kriege meine send methode einfach nicht hin. aber ich weiß auch nicht mehr was ich machen soll.
ich hab mir einfach gedacht ich poste das mal ihr müsst mir aber verzeihen ich bin in der hinsicht ein wirklicher anfänger deshalb werde ich wahrscheinlich verdammt viele Fehler drin haben.
:roll:
Vielleicht ist jemand so nett und kann mir erklären was ich falsch gemacht habe bei bedarf poste ich auch noch die zugehörigen dinge noch.
ICH BRAUCHE WIRKLICH EURE HILFE!!!!!!!!
[/b]
ich habe bei euch verdammt viele posts zu dem thema gefunden aber konnte mir wirklich helfen.
wir müssen für die FH einen Chat von TCP auf UDP umschreiben und ich habe da jetzt irgedwie ein Problem ich kriege meine send methode einfach nicht hin. aber ich weiß auch nicht mehr was ich machen soll.
ich hab mir einfach gedacht ich poste das mal ihr müsst mir aber verzeihen ich bin in der hinsicht ein wirklicher anfänger deshalb werde ich wahrscheinlich verdammt viele Fehler drin haben.
:roll:
Vielleicht ist jemand so nett und kann mir erklären was ich falsch gemacht habe bei bedarf poste ich auch noch die zugehörigen dinge noch.
ICH BRAUCHE WIRKLICH EURE HILFE!!!!!!!!
Code:
import java.net.*;
import java.io.*;
import server.ChatEventManager;
import server.Query;
import server.ChatEvent;
public class udpserver{
protected static DatagramSocket socket;
private static DatagramSocket serverSocket;
private static ChatEventManager manager;
private static Socket incoming;
public void Echo (int port) throws IOException
{
socket = new DatagramSocket (port);
}
protected static DatagramPacket receive() throws IOException
{
byte buffer[] = new byte[65535];
DatagramPacket packet = new DatagramPacket (buffer, buffer.length);
socket.receive(packet);
return packet;
}
public static void main(String args[]) {
try {
serverSocket = new DatagramSocket(8205);
System.out.println("ServerCommunicator waiting for clients...");
manager = new ChatEventManager();
while (true) {
ServerCommunicator communicator = new ServerCommunicator(incoming);
// Starten des ServerCommunicator Threads:
communicator.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void ServerCommunicator(DatagramSocket incoming) {
this.serverSocket = incoming;
}
/**
* run Methode zum starten des Threads.
*
*/
public void run(byte data[], int length) {
boolean finished = false;
while (!finished) {
DatagramPacket packet = new DatagramPacket(data, data.length);
try {
serverSocket.receive(packet);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
// Adresse des Absenders für Antwort ermitteln :
InetAddress target = packet.getAddress();
int port = packet.getPort();
switch (Query.getQuery()) {
case Query.LOGIN:
manager.login(Query.getName());
send(new Query(Query.CONFIRM, null, null), target, port);
break;
case Query.MESSAGE:
manager.tell(Query.getName(), Query.getMessage());
send(new Query(Query.CONFIRM, null, null), target, port);
break;
case Query.LOGOUT:
manager.logout(Query.getName());
send(new Query(Query.CONFIRM, null, null), target, port);
break;
case Query.POLLING:
ChatEvent evt = manager.poll(Query.getName());
if (evt != null && evt.getCommand() == ChatEvent.LOGOUT)
finished = true;
send(evt, target, port);
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
} // run
/**
* Sendet die Antwort an den Client
*
* @param object
* Das Antwortobjekt
* @param target
* Der Zielhost
* @param port
* Zielport
* @throws IOException
*/
public void send(Object query, InetAddress target, int port )
throws IOException {
DatagramPacket sendPacket = new DatagramPacket(query, target,
port);
serverSocket.send(sendPacket);
}
}