AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit ICS und Broadcasting
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit ICS und Broadcasting

Ein Thema von Blackice · begonnen am 26. Jan 2005 · letzter Beitrag vom 27. Jan 2005
 
Blackice

Registriert seit: 16. Jan 2005
3 Beiträge
 
#1

Problem mit ICS und Broadcasting

  Alt 26. Jan 2005, 21:52
Nabend,

ich hab vor einen Session Manager für ein selbstgeschriebenes Netzwerkspiel zu schreiben. Man soll in der Servervariante also einen Server erstellen können, den die Clients dann per Broadcast finden können. Einmal gefunden, werden die Adressen ausgetauscht und in einem Memo angezeigt.

Ich hab diesbezüglich einen Beitrag hier im forum gefunden, der mir vorerst weitergeholen hatte, aber nun bin ich doch wieder ratlos. Ich habe sowohl für die Server- als auch für die Clientvariante je zwei WSockets verwendet. Immer einen als Server und einen als Client.

Das Ganze sieht dann so aus:

Clientseite:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  with sesserver do begin
   Proto := 'udp';
   Addr := '0.0.0.0';
   Port := '6001';
   LocalPort := '0';
   Listen;
  end;
  with sesclient do begin
   Proto := 'udp';
   Addr := edit1.text //Broadcast Adresse eingeben (etwa: 192.168.6.255)
   Port := '6001';
   LocalPort := '0';
   Connect;
  end;
  sesclient.SendStr(GetMyIp + '_Server?');
end;

procedure TForm2.sesserverDataAvailable(Sender: TObject; ErrCode: Word);
var incoming, msg, ip : string;
    position : integer;
begin
     incoming := sesserver.ReceiveStr;
     position := pos('_',incoming);
     msg := copy(incoming, position, 7);
     ip := copy(incoming, 1, position);
     if msg = 'Server!then
        memo1.Lines.add(ip + msg);
end;
Serverseite:
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
begin
  with sesserver do begin
   Proto := 'udp';
   Addr := '0.0.0.0';
   Port := '6001';
   LocalPort := '0';
   Listen;
  end;

procedure TForm3.sesserverDataAvailable(Sender: TObject; ErrCode: Word);
var incoming, msg, ip : string;
    position : integer;
begin
     incoming := sesserver.ReceiveStr;
     position := pos('_',incoming);
     msg := copy(incoming, position, 7);
     ip := copy(incoming, 1, position);
     if msg = 'Server?then
      begin
       with sesclient do begin
        Proto := 'udp';
        Addr := ip;
        Port := '6001';
        LocalPort := '0';
        Connect;
       end;
       sesclient.SendStr(GetMyIp + '_Server!');
      end;
      sesclient.close;
end;

end;
Tja das Problem ist nun, dass offenbar nichts beim Server ankommt, da eine Testausgabe von "msg" nichts ergibt.
Bin etwas ratlos. Mach ich was falsch? Gibts irgendwo ne Doku zu den ICS Kompos? Hab keine gefunden.

Achso noch zur Information: Ich habe bei allen 4 WSockets Multithreaded und Linemode auf True gesetzt. Weiß aber auch hier nicht wirklich, was das bewirkt, habe es nur in einem Beispiel gesehen, wo es damit funktionierte.

Gruß
Blackice
There are only 10 types of people in the world, those who understand binary and those who don't.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz