c++ - Sending object of a class from client to server using serialization -
i have 2 classes client.cpp , server.cpp using tcp sockets , message sent client side server. in client have class employee having different values follows:
class employee{ int emp_id; char emp_name; float emp_weight; }; i have made object of employee as:
employee *ptr=new employee(); ptr->emp_id=10; ptr->emp_weight=50.2; memcpy(ptr->emp_name,"message",7); now passing info client as:
send(socket_connection,(char*)&ptr,sizeof(ptr),null); on server side recieving as:
char *server_buffer=new char[256]; recv(socket_connection,server_buffer,sizeof(employee),null); employee *pointer=(employee*) server_buffer; char b[256]; memcpy(b,pointer->emp_name,sizeof(pointer->emp_name)); cout << "got info "<< pointer->emp_name << "\n"; cout << "got info "<< ptr->emp_id << "\n"; cout << "got info "<< ptr->emp_weight << "\n"; my question is:
why getting garbage values in output , how resolve ?
kindly help me understand this.i doing activity understanding regarding serialization , deserialization.
your employee class has 1 character emp_name member. cannot fit string "message" 1 character. attempting re-create excess characters memory of emp_weight, creating garbage. prepare declaring
char emp_name[128]; on receive size mandatory check homecoming value recv. may less bytes expect, , when happens must phone call recv 1 time again more bytes.
c++ sockets serialization client-server deserialization
No comments:
Post a Comment