Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Schorsch

Supermoderator

  • »Schorsch« ist der Autor dieses Themas

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

1

07.10.2011, 16:59

Lidgren connection Probleme

Hey,
ich wollte mal wieder ein bisschen mit Netzwerk-Stuff rumspielen. Benutzen wollte ich C# und dazu Lidgren. Habe damit mal vor längerer Zeit ein bisschen rumgefummelt, aber nicht nicht gemacht. Da konnte ich aber wenigstens eine Verbindung erzeugen. Das funktioniert jetzt grad nicht mehr. Ich halte mich an die Tutorials http://code.google.com/p/lidgren-network-gen3/ hier. Das Problem ist, es entsteht keine Verbindung.

C#-Quelltext

1
NetPeerConfiguration config = new NetPeerConfiguration("hennes");config.Port = 1337;config.EnableMessageType(NetIncomingMessageType.DiscoveryResponse);NetClient client = new NetClient(config);//client.DiscoverLocalPeers(1337);client.DiscoverKnownPeer(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1337));



Ich habe es mit DiscoverLocalPeers versucht, was ja wohl einen Broadcast startet und mit DiscoverKnownPeer mit direkter Adressierung.

C#-Quelltext

1
NetIncomingMessage msg;while ((msg = client.ReadMessage()) != null)            {                switch (msg.MessageType)                {                    case NetIncomingMessageType.DiscoveryResponse:                        output += "Fount server at " + msg.SenderEndpoint + " name: " + msg.ReadString();                        server = msg.SenderEndpoint;                        break;



dies ist der Ausschnitt, der auf die Antwort des Servers reagieren sollte.

C#-Quelltext

1
NetPeerConfiguration config = new NetPeerConfiguration("hennes");config.Port = 1337;config.EnableMessageType(NetIncomingMessageType.DiscoveryRequest);NetServer server = new NetServer(config);server.Start();



Hier wird dann der Server gestartet.

C#-Quelltext

1
2
while((msg = server.ReadMessage()) != null)            {                switch(msg.MessageType)                {                    case NetIncomingMessageType.DiscoveryRequest:                        NetOutgoingMessage response = server.CreateMessage();                        response.Write("Bender");
                        server.SendDiscoveryResponse(response, msg.SenderEndpoint);                        break;



Hier wird dann der Request vom Client behandelt.

Das Problem ist, dass wenn ich nun Server und Client starte und im Server bei dem oben gezeigten case-Block einen Breakpoint setze, auch dieser nicht aufgerufen wird. Ich habe mein Programm debugged. Die Funktionen werden alle schön aufgerufen, nur kommt halt nichts beim Server an. Da hier einige Leute sind, die schon Erfahrung mit Lidgren haben, hoffe ich ihr seht vielleicht mehr als ich. Wenn jemand ein gutes und möglichst aktuelles Tutorial kennt dann auch bitte posten. Die meisten Sachen im Netz sind ja mittlerweile stark veraltet.

edit:Habe grad noch mal versucht den Code zu formatieren. Warum nimmt er die Zeilenumbrüche etc raus? Spinne ich jetzt?
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Schorsch

Supermoderator

  • »Schorsch« ist der Autor dieses Themas

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

07.10.2011, 18:10

Habe die Antwort selbst gefunden.

C#-Quelltext

1
client.Start();


Habe ich bei den Samples gesehen;) Sorry für die Überschnelle Frage. Die Frage nach guten aktuellen Tutorials bleibt jedoch bestehen. Aber an sich ist meine Frage erst mal beantwortet.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

DarioFrodo

Treue Seele

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

3

07.10.2011, 18:47

Wenn man mit Netzwerkzeugs rumspielt macht sich Wireshark sehr gut um zu schauen was für Pakete durchs Netz wandern. Dann weiß man schonmal ob der Fehler beim Server oder beim Client liegt.. wenn Pakete versendet werden oder eben nicht.
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

Schorsch

Supermoderator

  • »Schorsch« ist der Autor dieses Themas

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

07.10.2011, 20:23

Kannte ich schon aber trotzdem danke. Hätte ich auch mal benutzen können. Dann hätte ich mein Problem vermutlich schneller gelöst da hast du schon recht;)
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige