Server connection
Hej jeg har scriptet:public void cmdcsconnect(string sn, string cmd)
{
if (cIni.Readini(sn, "status").ToLower() == "online")
{
try
{
string cip = cIni.Readini(sn, "ip");
int cport = Convert.ToInt32(cIni.Readini(sn, "port"));
string crcon = cIni.Readini(sn, "rcon");
Console.WriteLine("1");
UdpClient server = new UdpClient(cip, cport);
Console.WriteLine("2");
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
Console.WriteLine("3");
byte[] data = new byte[1024];
string challenge;
string stringData;
data = Encoding.Default.GetBytes("ÿÿÿÿchallenge rcon");
server.Send(data, data.Length);
Console.WriteLine("4");
data = server.Receive(ref sender);
int i;
for (i = 0; i < data.Length; i++) { if (data[i] == 0) { data[i] = 254; } }
stringData = System.Text.Encoding.Default.GetString(data, 0, data.Length);
string[] ch = gettok(stringData, 3, 32).Split();
Console.WriteLine("5");
challenge = "ÿÿÿÿrcon " + ch[0] + " \"" + csrcon + "\" ";
data = Encoding.Default.GetBytes(challenge + " " + cmd);
Console.WriteLine("6");
server.Send(data, data.Length);
server.Close();
}
catch
{
cIni.Writeini(sn, "status", "offline");
}
}
}
Scriptet i sig selv funger helt fint. Jeg har nogen CS servere som jeg har købt online, hvor jeg så bruge dette script til at sende commands med. Men problemmet er at hvis serveren bliver lukket fra producentens hjemmeside, så går scriptet istå. Jeg prøvede at sætte "console.writeline();" ind for at se hvor den gik i stå, og det gør den ved nummer 4. Så tænkte jeg, kan jo smide en try { } rundt om og catch hvis den slår fejl. men det funger heller ikke. scriptet går bare helt istå ved
"data = server.Receive(ref sender);"
Hvordan kan jeg fixe dette problem?
