Ich habe dieses Stück Code, der eine Reihe von Nachrichten empfängt:Sockel nur ein Teil der Nachricht C# Empfang
byte[] buffer = new byte[10240];
//...
sock.Receive(buffer);
string response = message(buffer);
Console.WriteLine("Message Recieved");
if (!verifyUser(response, sock))
Console.WriteLine("User Invalid");
//...
static private bool verifyUser(string userString, Socket sock)
{
string[] userData = userString.Split(' ');
int i = 0;
while (true)
{
if (userData[0].ToUpper() != "USER")
{
byte[] buffer = message("WHO");
sock.Send(buffer);
userData = userString.Split(' ');
i++;
if (i > 4)
{
return false;
}
continue;
}
else
break;
}
Console.WriteLine("Connection recieved from " + userData[1] + " with hash of "/* + userData[2]*/);
}
Das Problem, das ich habe, ist, dass, wenn ich den Benutzernamen Unkwntech alle tragen vor, dass es angezeigt wird unkwnt, und der zweite Wert scheint nie da zu sein. der App, die das Senden von Daten wie folgt aussieht:
static void Main(string[] args)
{
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
EndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 200);
sock.Connect(remoteEP);
byte[] buffer = Encoding.ASCII.GetBytes("USER unkwntech a3f5h4a35sfg");//Made up hash
sock.Send(buffer);
sock.Receive(buffer);
Console.WriteLine(Encoding.ASCII.GetString(buffer));
Console.ReadLine();
}
Können Sie die Definition der "Nachrichten" -Funktion anzeigen? Haben Sie die Anwendung getestet? Wann sind Daten verloren? –