AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Seltsames Problem mit TNMUdp (FastNet)

Ein Thema von Urba · begonnen am 2. Jan 2003 · letzter Beitrag vom 5. Jan 2003
Antwort Antwort
Urba

Registriert seit: 8. Dez 2002
Ort: Ketsch
120 Beiträge
 
Delphi 6 Personal
 
#1

Seltsames Problem mit TNMUdp (FastNet)

  Alt 2. Jan 2003, 22:41
Hallo Leute,

Eigentlich wollte ich nur Nachrichten zwischen 2 Programmen austauschen, wobei das eine einen festen Port belegt und das andere darauf zugreift. Also ich habe 2 Programme mit jeweils einer TNMUdp-Komponente und einem Label. Hinzu verwende ich folgenden Code :

Programm 1 (nicht feste IP) - Wenn der Button geklickt wird, dann wird der Text gesendet.

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  TmpStr: String;
  buffer:array[0..25]of Char;
  I:Integer;
Begin
  Client.ReportLevel := Status_Basic;
  Client.RemoteHost := '192.168.0.3';
  Client.RemotePort := 1024; // fester Port des anderen Programms

  TmpStr := 'Hallo';
  for I:= 1 to Length(TMPStr) do buffer[i-1]:=tmpstr[i];
  Client.SendBuffer(buffer,Length(TmpStr));
end;

procedure TForm1.ClientDataReceived(Sender: TComponent;
  NumberBytes: Integer; FromIP: String; Port: Integer);
var Buffer : array [0..3000] of Char;
    I     : Integer;
begin
  for I := 0 to High(Buffer) do Buffer[I] := Chr(0);
  Client.ReadBuffer(Buffer,NumberBytes);

  Label1.Caption := '';
  for I := 0 to High(Buffer) do Label1.Caption := Label1.Caption + Buffer[I];
end;
Programm2 (mit festem Port)

Code:
procedure TForm1.internDataReceived(Sender: TComponent;
  NumberBytes: Integer; FromIP: String; Port: Integer);
var I  : Integer;
begin
  Form1.Caption := '';
  Form1.Caption := 'Message kam von : ' + Client_IP + ':' + IntToStr(Client_Port);

  for I := 0 to High(Buf) do Buf := Chr(0);
  intern.ReadBuffer(Buf,NumberBytes);

  Label1.Caption := '';
  Label1.Caption := 'String von Client : ';
  for I := 0 to High(Buf) do Label1.Caption := Label1.Caption + Buf[I];

  intern.ReportLevel := Status_Basic;
  intern.RemoteHost := Client_IP;
  intern.RemotePort := Client_Port;

  intern.SendBuffer(Buf,Length(Buf));
end;
Kann mir jemand sagen wieso bei Programm nur ein leerer String ankommt? Es komm nämlich eine solcher leerer String an, aber eben ohne Inhalt. Kann den Code mal jemand testen und mir vielleicht Bescheid sagen? Danke

Urba
Es gibt keine blöden Fragen, nur blöde Antworten
  Mit Zitat antworten Zitat
Urba

Registriert seit: 8. Dez 2002
Ort: Ketsch
120 Beiträge
 
Delphi 6 Personal
 
#2
  Alt 5. Jan 2003, 01:28
kann mir denn wirklich niemand helfen?
Es gibt keine blöden Fragen, nur blöde Antworten
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 5. Jan 2003, 04:44
Moin Urba,

ich hab's mal eben bei mir ausprobiert.
Klappt allerbest

Bist Du sicher, dass die IP und/oder Portangabe richtig ist?

Hast Du auch bei der Kompo intern den Local Port auf 1024 stehen, nicht den Remoteport?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
MadMason

Registriert seit: 9. Nov 2002
Ort: Altenburg
126 Beiträge
 
Delphi 2005 Architect
 
#4
  Alt 5. Jan 2003, 09:47
willst du nur text verschiecken??

wenn ja würde ich dir vorschlagen einen Stream zu senden.
das hab ich schon mehrmals ausprobiert und klappt ausgezeichnet.

kann dir dabei helfen
Einstein ist tot
Newton ist tot
und mir ist auch schon ganz schlecht
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz