0
私はこのプログラムを使用してIPアドレスの範囲をソケット化すると、メッセージなしでいつも単独で閉じます。プログラムは終了します。この問題を解決するにはどうすればよいですか? (コンソールプロジェクトです)C#socket program auto close
public static void Main(string[] args)
{
Task[] tasks = new Task[200];
for (int i = 0; i < 200; i++)
{
tasks[i] = Task.Factory.StartNew(() => RunningThread());
}
Task.WaitAll(tasks);
Console.WriteLine("finish...");
Console.ReadKey();
//.....
}
public bool SocketIP(string ip, int port)
{
AutoResetEvent arEvent = new AutoResetEvent(false);
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
if (socket != null)
{
socket.Bind(new IPEndPoint(IPAddress.Any, 0));
socket.BeginConnect(new IPEndPoint(IPAddress.Parse(ip), port), CallBack, new ArrayList() { socket, arEvent});
arEvent.WaitOne(WaitTime);
if (Rv)
socket.Shutdown(SocketShutdown.Both);
socket.Close();
socket = null;
}
return Rv;
}
void CallBack(IAsyncResult ar)
{
ArrayList list = (ArrayList)ar.AsyncState;
Socket socket = (Socket)list[0];
AutoResetEvent arevent = (AutoResetEvent)list[1];
if (ar.IsCompleted && socket.Connected)
Rv = true;
arevent.Set();
}
、私はit.Butにそれをデバッグ誰を取得しないようにしてくださいキャッチを書き留めあるuseful.Tryキャッチは、任意の例外をキャッチすることはできません。これはExキャッチ例外に属していませんか? –
エラーが検出されたかどうかを確認します。 –
エラーを検出しません。 –