0
서버에서 클라이언트로 개체를 보내려고합니다. UDP를 통해. C++에서. 간단히 클라이언트에 대한 참조를 보내고이 주소를 참조하도록 클라이언트에 포인터를 만들려고했습니다. 내가 뭘하려에 대한 코드는 다음과 같습니다개체 전송 TCP/UDP를 사용하는 클라이언트/서버
데이터 :
class data
{
private:
int number;
public:
data(int number) {
this->number = number;
}
void print() {
cout<<"number : "<<number;
}
};
서버 :
data *obj;
if (recvfrom(conn_sock, obj, sizeof(data), 0, (struct sockaddr*)&client_addr, &slen) == -1)
cout<<"ERROR: recvfrom()";
else cout<<"SUCCESS: recvfrom()";
cout<<"\nRECEIVED from Client : ";
obj->print();
클라이언트 :
data *obj = new data(11);
if(sendto(conn_sock, &obj, sizeof(data), 0, (struct sockaddr*)&serv_addr, addr_len) == -1)
cout<<"ERROR: Problem sending data";
else cout<<"SUCCESS: sending object";
네트워크를 통해 개체에 대한 참조를 보낼 수는 없습니다. 클라이언트가 다른 컴퓨터에 있으면 서버 컴퓨터의 메모리에 액세스 할 수 없으며 개체에 액세스 할 수 없습니다. 객체 내부의 정보를 바이트로 나누고, 보내고, 클라이언트에서 파싱하고, 파싱 된 정보에서 객체를 생성하는 것이 좋습니다. – snixtho
네, 맞습니다. 나는 그 것을 고려하지 않았다. 클라이언트와 서버가 같은 컴퓨터에 있었기 때문에 내가이 방법으로 그렇게했습니다. 이제 문제가 생겼어. 감사. – user2831683