Я пытаюсь понять, почему клиентский компонент массива ниже находится за пределами допустимого диапазона. Я знаю, что это происходит, когда элемент массива, который вы пытаетесь получить доступ, не существует, но я новичок в программировании Socket и пытаюсь написать свой первый скрипт UDP, но не знаю, как с этим бороться.UDP-индекс за пределами допустимого диапазона
стороне клиента код вызывает ошибку в аргументах [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 скрипта на одном компьютере, так что это может быть причиной?
ли вы на самом деле передачи каких-либо 'арг []' функционировать 'Main()'? – Alfie
Нет. Я знаю, что для того, чтобы args [0] работал, мне нужно передать что-то в Main(), но я не знаю, в этом случае, что я должен пройти ... Возможно, строка из сценария сервера допускается для отправки на скрипт клиента, но не должен ли клиентский скрипт запускать atleast, чтобы принять строку текста с сервера? –