Delphi-PRAXiS
Seite 2 von 4     12 34   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TcpServer ----> TcpClient senden und empfangen (https://www.delphipraxis.net/82849-tcpserver-tcpclient-senden-und-empfangen.html)

jokerfacehro 21. Dez 2006 08:07

Re: TcpServer ----> TcpClient senden und empfangen
 
ich seh schon du hast ahnung ^^
das mit dem MyReceive klappt wunderbar, allerdings kann ich mit ReceiveLn leichter die bebfehle
herausfiltern ^^, da ich ja nicht nur text zum anzeigen senden will ;)

ich habe irgendwie noch nicht den wurm raus mit dem send vom server zum client, ich habe
beim OnAccept einfach mal zum schluss ClientSocket.SendLn('hallo'); reingeschrieben,
doch das OnReceive Event beim client wird nicht ausgelöst :/

jokerfacehro 21. Dez 2006 08:11

Re: TcpServer ----> TcpClient senden und empfangen
 
geil find ich auch, wenn ma im OnAccept des Servers vor dem ReceivLn also dem lesen der gesendeten Client Daten, SendLn macht sind die ganzen daten vom Client futsch xD

Edit: bzw. er liest unendlich viel leigt am endzeichen ^^

jokerfacehro 21. Dez 2006 09:04

Re: TcpServer ----> TcpClient senden und empfangen
 
hallo,
ich bin mit dem senden vom server zum client kein stück weiter.
irgendwie habe ich es vorhin einmal hingekriegt, dass das Onreceive Event vom Client ausgelöst wird.
doch ich kriege es nicht mehr hin.

ich sende vom client aus text per SendLn an den Server und warte danach perWaitForData(5000) auf Daten vom Server bevor ich die verbindung schließe.
Das OnAccept Event des Servers wird dann aufgerufen und ich führe darin bloß ClientSocket.SendLn('hallo'); aus.
und das ergebnis: Onreceive wird nicht ausgelöst im client argh :D

was mache ich flasch???? wenn ich was falsch mache :mrgreen:

Aenogym 21. Dez 2006 09:09

Re: TcpServer ----> TcpClient senden und empfangen
 
also ich sitz grad auf arbeit und kann daher leider nicht mal eben nachvollziehen ;)
prinzipiell solltest du alles richtig machen. am besten nochmal in der delphihilfe nachlesen und einfach ein bisschen rumprobieren :thumb:

aeno

jokerfacehro 21. Dez 2006 09:14

Re: TcpServer ----> TcpClient senden und empfangen
 
ich lasse das ganze per localhost auf einem rechner laufen, kann es sein dass es daran liegt ?

der client selbst hat die netzwerk ip-adresse: 10.10.10.34
der server hat 127.0.0.1

ich verbinde vom client natürlich zu 127.0.0.1 funktioniert auch,
kann es sein, dass der server nicht an die 10.10.10.34 senden kann?

ich hab das problem wenn ich dem server über IdIPWatch seine Ipadresse zuweise hat er natürlich 10.10.10.34, und vom client aus kann ich dann nicht auf 10.10.10.34 connecten.

keine ahnung warum


Edit: ich sollte das ganze mal mit 2 rechnern testen :mrgreen:

Aenogym 21. Dez 2006 09:18

Re: TcpServer ----> TcpClient senden und empfangen
 
also mit 127.0.0.1 sollte es keine probleme geben. habe ich damals auch erfolgreich auf einem rechner laufen gelassen :)

jokerfacehro 21. Dez 2006 09:21

Re: TcpServer ----> TcpClient senden und empfangen
 
hmmm ich werde wohl noch einige tage brauchen
:mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:

jokerfacehro 21. Dez 2006 09:29

Re: TcpServer ----> TcpClient senden und empfangen
 
wenn du lust hast, kannst du mir ja ein funktionierendes beispiel schicken :mrgreen:

PS: ich liebe Mr. Green :mrgreen: ^^

achja und James Thurbers Fabeln sind echt geil, besonders die eine moral:
Early to rise and early to bed makes a male healthy, wealthy and dead xD

jokerfacehro 21. Dez 2006 10:57

Re: TcpServer ----> TcpClient senden und empfangen
 
das ist ziemlich komisch:

wenn ich deine methode zum empfangen vom daten vom client nehme ohne was anderes in OnAccept etwa so
Delphi-Quellcode:
procedure TForm1.MyReceive(Sender: TObject; Buf: PChar; var DataLen: Integer);
begin
Memo1.Lines.Add(Buf);
end;

procedure TForm1.TcpServer1Accept(Sender: TObject;
  ClientSocket: TCustomIpClient);
var s:string;
    i:integer;
    aa:boolean;
begin
Memo2.Lines.Add(ClientSocket.LocalHostAddr);
ClientSocket.OnReceive:=MyReceive;
end;
ausführe wird MyReceive garnicht ausgeführt :/

so klappt es:
Delphi-Quellcode:
procedure TForm1.MyReceive(Sender: TObject; Buf: PChar; var DataLen: Integer);
begin
Memo1.Lines.Add(Buf);
end;

procedure TForm1.TcpServer1Accept(Sender: TObject;
  ClientSocket: TCustomIpClient);
var s:string;
    i:integer;
    aa:boolean;
begin
Memo2.Lines.Add(ClientSocket.LocalHostAddr);
ClientSocket.OnReceive:=MyReceive;
ClientSocket.ReceiveLn; ///////die wichtige zeile
end;
ich versteh' das nicht ganz ^^

am besten wäre wirklich ein beispiel ;)

jokerfacehro 21. Dez 2006 20:00

Re: TcpServer ----> TcpClient senden und empfangen
 
hmmm, ich habe weitergeforscht und sehe, dass es nur noch ein kleiner sprung ist :D :D :D

Es ist möglich ohne Timervom Client zu empfangen, ich muss bloß das OnReceive event im Client ausgelöst kriegen, wie hab ich das vorhin bloß hingekriegt argh ^^

ich hätte so gern ein beispiel, ich habe im 666diablo-forum genau den
richtigen beitrag gefunden, allerdings wurde kein code gepostet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 Uhr.
Seite 2 von 4     12 34   

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