Wysyłanie (Send) w WinSock

0

Mam pytanie, w zasadzie mały problem.
Jak mam serwer i klienta, to wiem jak wysłać char jakis, cos w tym stylu:

send( master, sendbuf, strlen( sendbuf ), 0 );

Jednak teraz pojawia sie pytanie, jak wysłać double lub int?

0
send( master,(char*)&Wysylany_Int,sizeof(Wysylany_Int),0);
0
send( master,(char*)&n,strlen(n),0);

Jeśli mam takie coś gdzie n to int=1 na przykład, to mi wywala bład ze argument int jest niekompatybilny z const char * :/

0

Czyli cos takiego rozumiem:

send( master,(char*)&n,sizeof(n),0);

I później na serwerze, żeby mieć int to muszę coś takiego?

recv( s , (char*)&n, MAXRECV, 0);

?

0

Mam problem, nie wiem od czego zalezy ale, kiedy wysyłam z clienta do server i mam:
client:

send( master,(char*)&xk,sizeof(xk),0);

server:

valread = recv(s,(char *)&nr,sizeof(buffer),0);

Jednak jak chce wyslac pozniej wynik obliczony z tego nr z powrotem do clienta i mam:
server:

 send(s, (char*)&wynik, sizeof(wynik), 0);

client:

bytesRecv = recv(master,(char*)&nr,sizeof(nr),0);

To jak wyświetlam nr to mi wywala 0 lub jakąś duża liczbę, a nie to co powinno :/ Gdy pominołem obliczenia na serverze i wysłać chce tylko jakiegoś prostego int to przy wysłaniu pisze jest liczba jest, ale przy recv błąd i nie wiem co źle jest.

0

Sprawdź ile bajtów odczytałeś bytesRecv oraz poczytaj o tej fladze którą bezmyślne ustawiasz na 0.

0

Ok już działa, jak mam:
server:

send(s, (char*)&koniec, sizeof(int), 0);

client:

bytesRecv = recv(master,(char*)&nr,sizeof(int),0);

Jednak, jak przesłać jak mam double? jak zmienie sizeof(nr) zeby double przeslac, to jakas inna liczbe pokazuje :/

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