所以我在第21行得到一个错误,即if(“client”.CompareTo(args [0])== 0)line>。<不,这不是我的代码,但我想让所有人都努力从中学习。它基本上是C#的游戏客户端和服务器程序,但它也使用.bat?就像我说这不是我的代码所以我不确定为什么需要一个.bat文件,这只是无用的信息,因为我被这个论坛告知添加更多细节lol,我只是想知道如何解决第21行的错误。
public static void Main(String[] args)
{
UDP_helper uh = new UDP_helper();
try
{
//if (!Valid(args))
if ("client".CompareTo(args[0]) == 0) //<--- error is on this line
{
uh.sendToAddr = args[1];
uh.sendToPort = int.Parse(args[2]);
}
else
if ("server".CompareTo(args[0]) == 0)
{
uh.IsServer = true;
uh.listenOnPort = int.Parse(args[1]);
}
else
if ("forward".CompareTo(args[0]) == 0)
{
uh.IsForward = true;
uh.listenOnPort = int.Parse(args[1]);
uh.forwardToAddr = args[2];
uh.forwardToPort = int.Parse(args[3]);
uh.listenWait = 600;
}
else
{
Console.WriteLine("Usage: .exe sends multiple udp messages");
Console.WriteLine("Usage: .exe client sendtoaddr sendtoport");
Console.WriteLine("Usage: .exe server listenport");
Console.WriteLine("Usage: .exe forward listenport forwardtoaddr forwardtoport");
return;
}
Console.WriteLine(args[0]);
uh.Run();
}
catch (Exception e)
{
Console.WriteLine(e);
Console.Read();
}
return;
}
答案 0 :(得分:0)
好像你必须将参数传递给可执行文件。没有检查args.Length,所以当没有参数时,它会抛出异常。尝试使用服务器或客户端参数调用它。
你可以在那里列出可能的参数:
Console.WriteLine("Usage: .exe sends multiple udp messages");
Console.WriteLine("Usage: .exe client sendtoaddr sendtoport");
Console.WriteLine("Usage: .exe server listenport");
Console.WriteLine("Usage: .exe forward listenport forwardtoaddr forwardtoport");