以下の配列のクライアント コンポーネントが範囲外である理由を突き止めようとしています。アクセスしようとしている配列の要素が存在しない場合にこれが発生することはわかっていますが、ソケットプログラミングは初めてで、最初の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 つのスクリプトを実行していますが、それが原因でしょうか?