Hilfe ich komme bei meinem UDP chat Server nicht mehr weiter

Status
Nicht offen für weitere Antworten.

daggett

Mitglied
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!!!!!!!!

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);

 }

}
[/b]
 
T

tuxedo

Gast
Vielleicht sagst du uns erst detailiert woran es scheitert?
So spontan ist da nix falsches zu erkennen ..

- Alex
 

daggett

Mitglied
hmmm ja also bei meinem eclipse merkert er mir das immer rot an und ich hab da keine ahnung warum.
es müsste eigentlich alles stimmen bis auf meine send methode naja hoffe ich.
also die eclipse fehlermeldung ist:"DatgramPacket cannot be resolved to a type"
ich weiß nicht ob dir das was helfen kann
 

daggett

Mitglied
SRY war die falsche Fehlermeldung!
jetzt die richtige:"The constructor DatagramPacket(Object, InetAddress, int) is undefined"
sry nochmal ;)
 

daggett

Mitglied
hmmm ich hab jetzt nochmal mit meinem Prof gesprochen und er hat gesagt das man in "DatagramPacket kein objekt reinnehmen darf" stimmt das auch??
und wenn ja kann mir einer irgendeine andere Idee vorschlagen wie man das machen kann??
 

HoaX

Top Contributor
Das Selbe sagte ich doch auch schon. Du übergibst als ersten Parameter eine Variable vom Typ Object was nicht geht, der erste Parameter muss ein byte[] sein.
Schau doch mal im Ursprungsprogramm nach wies da gemacht wurde, über TCP kannst du auch nicht einfach n Object senden...
Ansonsten nimm z.B. einen ObjectOutputStream + ByteArrayOutputStream, mit denen kannst du dein Objekt in ein byte[] umwandeln. Auf der gegenseite dann das Selbe mittels der entsprechenden InputStreams.
 
T

tuxedo

Gast
Allerdings sollte man sich im klaren sein dass UDP Pakete verloren gehen können und nicht unbedingt in der Reihenfolge ankommen in der man sie abgeschickt hat...

D.h. ich würde da die Objektserialisierung und die damit verbundene Fragmentierung der Daten (je nach Größe des Objekts) versuchen zu vermeiden.

- Alex
 

HoaX

Top Contributor
da geb ich dir vollkommen recht, aber wenn man sich die reelle lebenserwartung von so einem chat sieht ist dass ehr unter den tisch fallen zu lassen ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Objekt mit RSA und AES verschlüsseln und entschlüsseln HILFE Netzwerkprogrammierung 4
T Brauche Hilfe beim GET-String für HttpURLConnection Netzwerkprogrammierung 4
platofan23 Socket Hilfe mit Socket Thread und ArrayList Netzwerkprogrammierung 6
V Kann man mit Hilfe eines Java-Programms den Zugriff auf bestimmte Internetseiten verhinden? Netzwerkprogrammierung 3
C JSON, API ... Anfänger braucht eure Hilfe Netzwerkprogrammierung 10
KingSquizzi3 Website parsen mit Hilfe von jsoup funktioniert nicht Netzwerkprogrammierung 3
J Hilfe beim programmiern einer App zur Anmeldung im Wlan-Netzwerk Netzwerkprogrammierung 0
B JKS erstellen bitte um hilfe Netzwerkprogrammierung 1
R Hilfe bei FTP Netzwerkprogrammierung 7
D HTTP Bräuchte hilfe mit Http Requests Netzwerkprogrammierung 6
R Benötige Hilfe bei Routereinstellungen Netzwerkprogrammierung 7
E RMI RMI - Brauche Hilfe? Netzwerkprogrammierung 7
xDarkSunx Hilfe Chat Login Netzwerkprogrammierung 7
K Datenübertragung UDP Hilfe ????? Netzwerkprogrammierung 5
H Hilfe bei multiplen Clients Netzwerkprogrammierung 7
N Client - Server kurze Hilfe bitte Netzwerkprogrammierung 2
T IP Adresse mit Hilfe der MAC Adresse ermitteln Netzwerkprogrammierung 3
D Hilfe, meine HttpURLConnection hängt manchmal. Netzwerkprogrammierung 9
eQui Hilfe bei Chatprogramm Netzwerkprogrammierung 3
J Brauche hilfe bei Projekt: Netzwerk Chatprogramm Netzwerkprogrammierung 12
TRunKX Hilfe beim senden und empfangen Netzwerkprogrammierung 2
André B. Brauche Hilfe bei Chat Netzwerkprogrammierung 6
D Netzwerk Game, bitte hilfe. Netzwerkprogrammierung 2
N JMS Newbie braucht hilfe Netzwerkprogrammierung 6
S Noob braucht dringend hilfe bei ftp-client Netzwerkprogrammierung 2
A Wie komme ich an Jersey bzw. die libs dazu? Netzwerkprogrammierung 3
G HTTP Client :: Komme nicht über den Proxy Netzwerkprogrammierung 7
O HTTP Wer hilft mit meinem UTF-8 http Request ? Netzwerkprogrammierung 1
E Kurze Textnachrichten über einen Server von meinem Handy auf den Computer laden. Netzwerkprogrammierung 9
U Allgemeiner Ratschlag zu meinem Programmunterfangen mit zentraler Datenbank Netzwerkprogrammierung 12
S Commons Net 2.0 und FTP in meinem Programm Netzwerkprogrammierung 4
S Mit meinem Prog zu ICQ connecten Netzwerkprogrammierung 10
N was fehlt jetzt noch bei meinem Server? Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben