2017-03-21 1 views
0

Using TCP에 대한 설명서를 읽고 간단한 TCP가 서버에서 데이터를 수신하는 방법을 알기 위해 노력하고 있습니다. 서버가 연결된 모든 클라이언트에게 데이터 스트림을 보냅니다.Akka IO TCP 수신 데이터

case Received(data) => // do some with data, where data: ByteString 

그래서 data 것입니다. 바이트의 데이터 크기는 얼마입니까? 클라이언트가 지속적으로 데이터를 수신하고 있음을 의미합니다. 얼마나 많은 바이트가 포함되어 있습니까? data? 구성은 어디에 있습니까?

답변

2

어디서나 구성되지 않습니다. 이미 구현되지 않았다면 어떤 데이터를 제공하기로 결정한 시점에 구현해야한다는 것을 이미 알게되었습니다.

  1. 우리가 어떤 마지막 통지에서 데이터를 저장 한 경우, 저장된 데이터의 마지막에 새로운 데이터를 추가 : 다음과 같이

    이러한 통지를 처리하는 일반적인 방법입니다.

  2. 구현중인 프로토콜에 따라 전체 메시지가없는 경우 다음 알림을 위해 나머지 데이터를 저장하고 알림을 다시 보내고 중지하십시오.

  3. 메시지를 처리하십시오.

  4. 남은 데이터가 없다면 (즉, 정확히 하나의 응용 프로그램 메시지가 있고 더 많은 바이트가 아닌) 버퍼가 비어 있고 알림을 다시 받고 중지됩니다.

  5. 남은 데이터로 2 단계로 이동하십시오.