Wysłanie własnego rekordu przez TClientSocket

Wysłanie własnego rekordu przez TClientSocket
MikiKam
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 75
0

Witam!

Nie mogłem nigdzie znaleźć informacji na ten temat więc zwracam się po pomoc do Was.
Chciałem wysłać swój rekord do jakiegś serwera, ale niestety nie wiem jak to zrobić... Próbowałem z SendBuf(var Buf; Count: Integer) ale nie wiem po co to Count.

Proszę o pomoc!
Pozdrawiam!

  • Rejestracja: dni
  • Ostatnio: dni
0

Count określa ile bajtów wysyłasz, użyteczne gdy chcesz wysłać część, jeśli wysyłasz rekord to SizeOf powinien zwrócić Ci ilość bajtów w nim

MikiKam
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 75
0

Próbowałem z SizeOf i niestety nie działa :( Serwer otrzymóje pusty rekord. A może ja mam problem z odebraniem tego rekordu? Hmmm...

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 501
0

Serwer otrzymóje... Mniejsza z tym, pokaż kod wysyłania i odbioru, może coś się znajdzie, na sucho nie widzę błędu.

MikiKam
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 75
0

Wysyłam na serwerze (zdarzenie onClientConnect):

Kopiuj
socket.SendBuf(msg,SizeOf(msg));

Odbieram w kliencie (zdarzenie onRead):

Kopiuj
  socket.ReceiveBuf(msg,socket.ReceiveLength);
// Próbowałem też:
  socket.ReceiveBuf(msg,SizeOf(msg));

Już sam nie wiem...

  • Rejestracja: dni
  • Ostatnio: dni
0

przetestuj poza zdarzeniami =]

może w jednym oknie daj na raz klienta i servera i przetestuj sobie

Button1 -> ClientConnect
Button2 -> ClientSend
Button3 -> ServerSend
Button4 -> ClientRead

bo coś mi zalatuje że w dziwnym miejscu sczytywanie masz

MikiKam
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 75
0

Serwer dostaje dane od klienta a klient od serwera już nie...
A dane zczytuję w odpowiednim miejscu :)

MikiKam
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 75
0

Dziekuje wszystkim! Rozwiązałem problem.
Okazało się, że w moim rekordzie była zmienna typu String! Zmieniałem na ShortString i działa.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.