public void RecievingClients(object obj)
{
//TcpListener tp = (TcpListener)obj;
while (true)
{
Socket s;
s = TcpLogin.AcceptSocket();
s.ToString();
NetworkStream ns = new NetworkStream(s);
StreamReader sr = new StreamReader(ns);
StreamWriter sw = new StreamWriter(ns);
string _LPInfo;
_LPInfo = sr.ReadLine();
if (_LPInfo.Substring(0, 12) == "&*@[email protected]*&")
{
bool flag;
string _LP = _LPInfo.Substring(12);
string[] _LPSep;
_LPSep =_LP.Split('$');
flag = _DBObj.Login(_LPSep[0],_LPSep[1]);
if (flag == true)
{
string ip = LocalIPAddress();
sw.WriteLine("&@*IP*@&"+ip+":6090&" + _LPSep[0]);
sw.Flush();
}
else
{
sw.WriteLine("Login Failed");
sw.Flush();
}
}
else if (_LPInfo.Substring(0, 12) == "&*@[email protected]*&")
{
bool flag;
string _LP = _LPInfo.Substring(12);
string[] _LPSep;
_LPSep = _LP.Split('$');
string _SignUpQuery = "INSERT INTO SIGNUP_TABLE (USERNAME,PSWRD) Values('"+_LPSep[0]+ "','" +_LPSep[1] +"');";
flag = _DBObj.QueryHandler(_SignUpQuery);
if (flag == true)
{
sw.WriteLine("SignUp Successsfully");
sw.Flush();
}
else
{
sw.WriteLine("SignUp Failed");
sw.Flush();
}
}
Это мой проект в колледже. это simole chat messenger, когда я запускаю весь этот код, но я получил исключение, если это условие используется. если (_LPInfo.Substring (0, 12) == "& @ Loginn @ & ") здесь itcome " Необработанное исключение типа 'System.ArgumentOutOfRangeException' произошло в mscorlib.dllИсключение возникает Аргументы в моем проекте C#
Дополнительная информация: Индекс и длина должны относиться к местоположению внутри строки. "
Что значение '_LPInfo', когда исключение бросается? Я бы предположил, что не 12 символов. –
'LPInfo' составляет менее 12 символов, поэтому' _LPInfo.Substring (0, 12) 'генерирует исключение. Измените на 'if (_LPInfo.Length> = 12 && _LPInfo.Substring (0, 12) ==" & @ Loginn @ & ")'. –