해결된 질문
작성
·
1.3K
1
컴퓨터간 통신에 있어서 소켓을 사용한다고 했는데
이게 rpc 방식하고는 다른건지
헷갈리는데 정리좀 부탁드립니다. 감사합니다.
답변 2
1
1
소켓통신은 두 컴퓨터를 파이프로 연결해서 데이터를 주고 받는 통신입니다.
이 말은 결국 RPC도 소켓통신을 통해 이루어진다는 말입니다!
RPC도 결국 소켓을 사용합니다.
RPC는 프로토콜(약속)입니다.
RPC를 사용하는 이유는 소켓통신으로 구현하기 힘든 기능을 수월하게 구현할 수 있도록 해줍니다.
[ClientRpc]
private void RpcChangeColor(int number, Color color)
{
floors[number - 1].SpriteRenderer.color = color;
}
이건 제가 만들었던 게임에서 RPC를 사용한 예시인데요.
한 유저가 바닥의 색을 변경하면 다른 모든 유저의 바닥의 색이 바뀌는 함수입니다.
클라이언트에서는 단지 RpcChangeColor(바닥의 id, 바꿀 색) 을 호출해주기만 하면 됩니다.
하지만 이걸 소켓통신으로 구현하려면 직관적이지 않은 방법으로 구현하게 될겁니다.
이 사진의 TCP/IP모델로 말씀 드리면 소켓통신은 전송계층(TRANSFORM)에, RPC는 어플리케이션계층에 있습니다.
RPC는 전송계층위에 있는 상위 계층입니다.