0
chatroom 응용 프로그램을 만들고 서버와 클라이언트 간의 통신을 위해 TCP 패킷을 보냅니다.C# - 한 번에 두 개의 TCP 패킷을 수신하는 것으로 보입니까?
나는 다음과 같은 코드를 가지고 : 클라이언트가이를 읽을 때 그러나
string returnMessage = "[EVT]USERSUCCESS";
bytes = Encoding.ASCII.GetBytes(returnMessage);
info.WriteToStream(bytes);
foreach (ConnectionInfo con in connections)
{
info.WriteToStream(bytes);
bytes = Encoding.ASCII.GetBytes("[EVT]USERJOIN;" + username);
con.WriteToStream(bytes);
}
를, 응답은 다음과 같습니다
- [EVT] USERSUCCESS [EVT] USERJOIN는,
마치 한 번에 두 패킷을 받고있는 것 같습니다.?
static void ServerListener()
{
while (true)
{
byte[] bytes = new byte[1024];
int numBytes = stream.Read(bytes, 0, bytes.Length);
string message = Encoding.ASCII.GetString(bytes, 0, numBytes);
if (HandleResponse(message) && !WindowHasFocus())
{
player.Play();
}
}
}
별도의 스레드로 실행됩니다 :
이
내가 수신을 위해 가지고있는 코드입니다. HandleResponse()가 완전히 작동합니다.미리 감사드립니다.
그래서 각 패킷의 끝에 널 바이트를 추가하는 것은 클라이언트를 야기 당신의 "패킷"에 체크하여 자신의 오류를 추가 할 수 있습니다 각각 하나씩 읽으시겠습니까? – Sulphate
아니요. 서버 코드를 패킷으로 분할하여 작성해야합니다. – Catprog
어떻게하면됩니까? 나는 이것에 아주 새롭다. – Sulphate