2012-09-18 3 views
0

client-server 응용 프로그램을 만들었지 만 전체 프로세스에 대해 여전히 혼란스러운 점이 있습니다. packets은 무엇입니까? packet을 보내고 message을 보내는 것의 차이점은 무엇입니까 (평소처럼).클라이언트 - 서버 통신을위한 패킷을 구성하는 방법

packets 무엇
  1. :

    그래서, 나는에 대한 좋은 설명을 기대하세요?
  2. 구조화하는 방법은 무엇입니까?
  3. client-server 응용 프로그램에서 통신용으로 사용하는 방법은 무엇입니까?

답변

2

발신자와 상위 수준에서 패킷은 메시지와 동일하므로 패킷이나 메시지를 보냅니다. 수신 측에서는 메시지가 여러 패킷으로 분할 될 수 있습니다. 이 분할은 TCP 연결을 사용하는 것이 가장 일반적이며 완전한 메시지를 수신하기 위해 두 개 이상의 수신 호출 (각 "패킷"반환)을해야 할 수도 있습니다.

더 낮은 수준에서 단일 TCP 또는 UDP 메시지 (데이터 앞에 TCP/IP 헤더가 있음)를 패킷이라고도 할 수 있습니다. 그리고 심지어 더 낮은 레벨에서 이더넷 프레임은 패킷이라고도 할 수 있습니다.

더 많은 것을 혼동하기 위해, TCP 연결은 메시지의 실제 개념이 없습니다. 단지 바이트 스트림입니다. 메시지는 TCP 위에 인공적인 개념 일뿐입니다. UDP는 다른 메시지입니다.

요약하면 보내거나받는 데이터를 참조 할 때 "메시지"라는 용어를 계속 사용하는 것이 가장 간단합니다.

+0

하지만 당신은 클라이언트에서 서버로 메시지를 제대로 보내는 방법을 알고 서버에서받은 메시지를 알고 싶습니다. –

+0

패킷 ID 및 패킷 유형을 사용하는 방법을 보내주는 방법의 예를 들어주세요. 서버로부터받은 패킷을 클라이언트에서 수신합니다. –

+1

@DanialEugen 그냥 보내주세요! 보내는 메시지, 보낼 때, 메시지를 형식화하는 방법 및 한 메시지와 다른 메시지의 차이점은 전적으로 사용자에게 달려 있습니다. 일부 프로토콜은 HTTP와 같은 상태 비 저장이며 메시지 순서에 신경 쓰지 않고 엄격하게 요청/응답합니다. 그리고 당신이 주문에 대해 걱정한다면 TCP를 사용하십시오. 그 프로토콜은 "메시지"가 당신이 보낸 순서대로 도착한다는 것을 보장합니다. 이 용어는 애플리케이션 수준에서는 중요하지 않지만 "메시지"라는 용어가 가장 많이 사용됩니다. –

관련 문제