我想弄清楚为什么下面的数组的客户端组件超出范围。我知道这发生在你尝试访问的数组元素不存在但我是Socket编程的新手,并试图编写我的第一个UDP脚本,但不知道如何处理它。UDP指数超出范围
客户端代码导致错误的ARGS [0]:
class EmployeeUDPClient{
public static void Main(string[] args){
UdpClient udpc = new UdpClient(args[0],2055); //Line causing error
IPEndPoint ep = null;
while(true){
Console.Write("Name: ");
string name = Console.ReadLine();
if(name == "") break;
byte[] sdata = Encoding.ASCII.GetBytes(name);
udpc.Send(sdata,sdata.Length);
byte[] rdata = udpc.Receive(ref ep);
string job = Encoding.ASCII.GetString(rdata);
Console.WriteLine(job);
}
}
}
这是一个运行良好的服务器端代码:
class EmployeeUDPServer{
public static void Main(){
UdpClient udpc = new UdpClient(2055);
Console.WriteLine("Server started, servicing on port 2055");
IPEndPoint ep = null;
while(true){
byte[] rdata = udpc.Receive(ref ep);
string name = Encoding.ASCII.GetString(rdata);
string job = ConfigurationSettings.AppSettings[name];
if(job == null) job = "No such employee";
byte[] sdata = Encoding.ASCII.GetBytes(job);
udpc.Send(sdata,sdata.Length,ep);
}
}
}
有什么想法,为什么我得到这个错误?我在同一台计算机上运行2个脚本,这可能是原因吗?
你实际上传递任何'ARGS []'运作'主()'? – Alfie
不,我知道为了使args [0]工作,我必须传递一些信息给Main(),但在这种情况下,我不知道我想传递什么...也许服务器脚本中的字符串是假设的发送到客户端脚本,但不应该运行客户端脚本至少接受来自服务器的文本字符串? –