[WinSock] Wysyłanie długich łańcuchów znaków
Ostatnio zmodyfikowano 2011-11-07 06:06
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? |
|
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. |
|
DejaVu |
» 2011-11-06 16:15:28 inputBuffer może jest za mały.... |
|
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... |
|
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). |
|
malan |
» 2011-11-06 20:58:21 Może ta wiadomość leci w kilku pakietach, a Ty odbierasz tylko jeden? |
|
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 :) |
|
« 1 » |