Jak połaczyc sie do TServerSocket przy pomocy synapse?

0

Witam serdecznie koledzy ;-)

Mam malutki problem - serwer napisany w delphi przy połączeniu w zdarzeniu onConnect wysyła losową liczbę do łączącego się socketa socket.SendText(Random(9999));.
W aplikacji napisanej w delphi prz użyciu TClientSocket, po połączeniu odbieram tę losową liczbę, natomiast w aplikacji napisanej w lazarus(ubuntu) z użyciem synapse nie przychodzi mi żadna wiad ;/

kod w lazarusie wyglada tak:

if button1.tag = 0 then
    begin
      klient1 := TTCPBlockSocket.Create;
      button1.Tag:=2;
      klient1.CreateSocket;
      klient1.Connect('192.168.1.45','123');
      mem1.Lines.add(klient1.RecvString(1000));
      end;         

w memo nic sie nie pojawia tylko pusta linia ;/ dlaczego ? co robie zle, chce po prostu połączyc sie z TserverSocket przy pomocy synapse i uzyskac odpowiedz ktora wysyla...

robie cos zle?

dziekuje za wsparcie ;-)

1

Co do problemu to podaj kod klienta i serwera jeśli masz.
poza tym zobacz sobie dokumentację synapse, tam jest jak działa RecvString.

.

socket.SendText(Random(9999));.

String<>Integer. To nie ma prawa działać.

RecvString nie odbiera po prostu bufora, w dokumentacji masz:

Method waits until data string is received. This string is terminated by CR-LF characters.

Więc musisz dodać CRLF żeby to odebrało+to MUSI być w stringu inaczej albo musisz to konwertować albo będziesz mieć krzaczki...

0

to oczywiste ze SendText jest typu str, po prostu dałem przykald IntToStr() nie bylo w nim konieczne,kompilator by tego nawet nie przyjol.

Dobrze sprawdze z tym #13#10 czy przejdzie, odpisze za niedługo, dzieki za podpowiedz

pomogło :-)
dzięki

0

pomogło
dzięki

Następnym razem nie zapomnij zobaczyć dokumentacji zanim zapytasz: http://synapse.ararat.cz/doc/help/

1 użytkowników online, w tym zalogowanych: 0, gości: 1