• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    해결됨

rpc와 소켓(tcp)차이

22.01.24 16:56 작성 조회수 1.04k

1

컴퓨터간 통신에 있어서 소켓을 사용한다고 했는데

이게 rpc 방식하고는 다른건지 

헷갈리는데 정리좀 부탁드립니다. 감사합니다.

답변 2

·

답변을 작성해보세요.

1

신진님의 프로필

신진

질문자

2022.01.24

우와 감자 정말 최고에요 감사합니다

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는 전송계층위에 있는 상위 계층입니다.