私は一連のメッセージを受信しているコードのこのビットを持っている:ソケットは、メッセージのみのC#の一部を受け取る
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]*/);
}
私がいる問題は、私は、すべてのユーザー名unkwntechを提出する場合にそれを表示し得ることですunkwnt、そして2番目の値はそこに到達することは決してありません。データを送信する アプリは次のようになります。
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();
}
「メッセージ」機能の定義を表示できますか?アプリケーションをデバッグしましたか?データが失われるのはいつですか? –