인프런 커뮤니티 질문&답변

신진님의 프로필 이미지
신진

작성한 질문수

그림으로 쉽게 배우는 운영체제

프로세스 간 통신

rpc와 소켓(tcp)차이

해결된 질문

작성

·

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

신진님의 프로필 이미지
신진

작성한 질문수

질문하기