Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[WinSock] Wysyłanie długich łańcuchów znaków

Ostatnio zmodyfikowano 2011-11-07 06:06
Autor Wiadomość
FucktheSystem
Temat założony przez niniejszego użytkownika
[WinSock] Wysyłanie długich łańcuchów znaków
» 2011-11-06 14:09:30
Witam piszę program typu klient - server i mam drobny problem mam np.

[Klient]

//KOD
string wiadomosc = "foobarlalalalaal";
ret = send(Client, wiadomosc.c_str(), wiadomosc.size()+1, 0);
//KOD
[Server]

//KOD
recv(context->sock, inputBuffer, 512, 0);
inputString = inputBuffer;
cout << inputString;
//KOD

Chociaż powinno czytać do 512 znaków, to czyta tylko do 8, WTF?
P-43419
Drraven
» 2011-11-06 15:30:46
JEdyne co mi przychodzi do głowy to to:
512/8/ = 64; 64 / 8 = 8; Ale to pewnie nie to. Chyba, że długość musi być tak zapisywana..
32 bity = 4 znaki;
512 / 32 = 16
a 16 / 2 = 8 :)

Pewnie to i tak jest źle. To tylko zbiory liczb które przyszły mi do głowy z 512 i 8.
P-43424
DejaVu
» 2011-11-06 16:15:28
inputBuffer może jest za mały....
P-43430
FucktheSystem
Temat założony przez niniejszego użytkownika
» 2011-11-06 17:25:00
Poszerzyłem tablicę, limit w recv i nadal to samo...
P-43440
DejaVu
» 2011-11-06 20:33:07
Najwyraźiej masz błąd w innym fragmencie kodu bądź źle wywołujesz funkcję send/recv (nie chce mi się patrzeć w dokumentację by zweryfikować to).
P-43507
malan
» 2011-11-06 20:58:21
Może ta wiadomość leci w kilku pakietach, a Ty odbierasz tylko jeden?
P-43508
Drraven
» 2011-11-07 06:06:43
#ja obstawiałem, że ma tego while tam czy for'a :)

Generialnie powinno się pobierać aż do znaku konca '\0', ale wtedy można przeprowadzić tak jak wysyła się tekst bez tego znaku :) Zajrzyj do dokumentacji co i jak :)
P-43521
« 1 »
  Strona 1 z 1