私はWP7用のアプリケーションを構築しています。そして、私は問題 TCPコネクションsocket.connectAysncのSocketExceptionをキャッチ
コード
namespace TCP
{
public class SocketEventArgsExtension : SocketAysncEventArgs
{
public EventHandler<SocketAysncEventArgs> _onConnectionCompleted;
public OnCompleted(EventHandler<SocketAysncEventArgs> handler)
{
base.completed+=handler;
_onConnectionCompleted=handler;
}
}
}
namespace TCP {
public class TCPSocket: Socket
{
public TCPSocket():base(all arguments)
public bool ConnectAsync(SocketEventArgsExtension socketArgsExtension)
{
try{
if (!base.ConnectAsync(socketArgsExtension))
{
socketArgsExtension.SocketActionIfCompletedSynchronously(socketAsyncEventArgs);
}
}catch(SocketException e)
{
this.ConnectAsync(socketArgsExtension);
}
}
}
}
namespace TCP
{
public class connection
{
public void func()
{
try
{
Socket s= new TCPSocket();
var Socketargs= new SocketEventArgsExtension() {RemoteEndPoint=_hostEntry}; //_hostEntry is DndEndPoint;
socketArgs.Oncompleted((o,e)=>Somecallback(e));
s.connectAsync(SocketArgs);
}catch(Exception e)
{
}
}
}
をetablishingに
を働いている私は存在する。そしてしようとしないサーバアドレスと_hostEntryを供給すると今私の問題がありますデバッグ
例外をスローする
System.IO.FileNotFoundException
詳細
{ "ファイルまたはアセンブリ名 'System.Net.debug.resources、バージョン= 2.0.5.0、文化= EN-US、なPublicKeyToken = 7cec85d7bea7798e'、または1でその依存関係のため、見つかりませんでした。 "}
私は
を続けクリックすると今、再び例外が
System.Net.Sockets.SocketExceptionが メッセージを発生=接続の試みが失敗したために発生しました一定時間後に接続先が正しく応答しなかったか、接続されたホストが応答に失敗したため接続が失敗しました。 System.Net.Sockets.Socket.WSAConnectByNameAsyncRequest.doRequest()で にSystem.Socket.Socket.Socket.AsyncRequest.handleRequest()で System.Socket.Socket.Socket.Socketで を返します。 .SocketAsyncRequestManager.WorkerThread.doWork()at System.Net.Sockets.Socket.SocketAsyncRequestManager.WorkerThread.doWorkI(オブジェクトo) at System.Threading.ThreadPool.WorkItem.WaitCallback_Context(オブジェクトの状態)System.Threading.Timer.ringでSystem.Threading.ThreadPool.WorkItem.doWork(物体O) でSystem.Threading.ExecutionContext.Run(のExecutionContextのExecutionContext、ContextCallbackコールバック、オブジェクト状態) ()で
けれども私はキャッチブロックを通過しない例外をキャッチしています。上記の例外をダイアログボックスに表示します。例外は、エラーの原因を検索した後
continueを押すと、catchブロックに2番目の例外はありませんか? – jgauffin
@jgauffinいいえ – rakesh