현재 17 바이트 일 때마다 데이터를 수신하고 있습니다. 그러나 17 바이트와 10 바이트의 두 가지 유형의 데이터가 있습니다. 두 가지 유형의 데이터가있을 때 어떻게 처리 할 수 있습니까?TCP 클라이언트 데이터 수신
byte[] message = new byte[17];
int bytesRead;
while (true)
{
bytesRead = 0;
try
{
//blocks until a client sends a message
bytesRead = clientStream.Read(message, 0, 17);
}
catch
{
//a socket error has occured
break;
}
if (bytesRead == 0)
{
//the client has disconnected from the server
break;
}
비슷한 질문이 있지만 C 언어로되어있어 이해할 수 없습니다. 친절하게 도와주세요.
메시지 프레이밍을 제공하려면 응용 프로그램 프로토콜이 필요합니다. 이제 17 바이트 메시지를 받았다고 가정하고 있지만 10 바이트 메시지와 다음 메시지의 처음 7 바이트를 읽을 수 있습니다. 우리는 당신을 위해 이것을 대답 할 수 없습니다. – CodeCaster
데이터 유형을 18 및 11 바이트로 지정할 수 있습니다. 첫 번째 바이트는 신원 확인 자입니다. 1 바이트를 읽은 다음, 메시지 유형을 테스트하여 10 또는 17 바이트를 읽어야하는지 확인합니다. 그런 다음 데이터 바이트를 읽습니다. – Holger
@ 코드 캐스터 감사합니다. 당신의 제안을 시도 할 것입니다. – active92