私は自分のプロジェクトにVS2012を使用しています。サーバーがターゲットマシンにメッセージを送信できない場合にソケット例外を処理していますが、メッセージを送信できない場合に発生します(すでにtrycatchに入れています)デバッガーはcatchブロックで中断し、送信せずにエラーを言います親キャッチ ブロックに転送します。私が何か間違ったことをした場合は、教えてください。
private void sendMessageToTarget(string Message, IPAddress targetAddress, int port)
{
TcpClient client = new TcpClient();
IPEndPoint server = new IPEndPoint(targetAddress, OUT_MESSAGE_PORT);
Thread senderThread = new Thread(new ThreadStart(delegate()
{
try
{
client.Connect(server);
MemoryStream memstream = new MemoryStream();
NetworkStream netstream = client.GetStream();
byte[] sentString = Encoding.ASCII.GetBytes(Message);
netstream.Write(sentString, 0, sentString.Length);
memstream.Close();
netstream.Close();
client.Close();
}
catch (SocketException ex)
{
throw;
}
}));
senderThread.Start();
} // Sending Message Method
上記は、ターゲットにメッセージを送信するための私のコードです
try
{
sendMessageToTarget("CONN_CHECKER", target, OUT_MESSAGE_PORT);
}
catch (Exception se)
{
ConnectedUsers.Remove(target.ToString());
UpdateConnectedUserToTeacher();
if (NeedFollowStudents.Contains(target.ToString()))
{
NeedFollowStudents.Remove(target.ToString());
}
UserLostConnection(this, new EventArgs());
}
そして、これはアクションを実行したい別の関数のメソッドです。