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?