- - PR -
(ソケット通信で)サーバー側がクライアント側のIPアドレスを取得する方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-06-15 16:56
ソケット通信で、サーバー側(リスナープロセス)がクライアント側のIPアドレスを
取得する・・などという真似は可能なのでしょうか? ヘルプドキュメントと過去ログを見る限りでは クライアントがサーバーのIPアドレスを クライアントが自分自身のIPアドレスを 取得することが出来る、というのは把握できましたが本件だけが未確認の状態です。 どなたかお教えください。お願いします。 | ||||||||
|
投稿日時: 2004-06-15 17:45
Socket#Accept()でクライアントのSocketオブジェクトが取得できます。
次いで、Socket#RemoteEndPointをよぶことで、IPアドレスがわかります。 | ||||||||
|
投稿日時: 2004-06-15 18:41
レスありがとうございます。
非同期サーバーのプログラム例を参考に作っているのですが try { listener.Bind(localEndPoint); listener.Listen(100); while (true) { // Set the event to nonsignaled state. allDone.Reset(); // Start an asynchronous socket to listen for connections. Console.WriteLine("接続待ち状態..."); listener.BeginAccept( new AsyncCallback(AcceptCallback), listener ); // Wait until a connection is made before continuing. allDone.WaitOne(); } } catch (Exception e) { Console.WriteLine(e.ToString()); } この場合、Socket#RemoteEndPointをよぶタイミングはwhileを抜けたとこで良いもので しょうか? | ||||||||
|
投稿日時: 2004-06-15 19:08
接続が確立していれば、いいと思うけど、それ以前に、コールバックルーチンの中で取得しちゃぁだめなの? | ||||||||
|
投稿日時: 2004-06-16 09:06
レスありがとうございます。 試してみますね。 | ||||||||
|
投稿日時: 2004-06-16 13:04
おっしゃるとおり、コールバックルーチン内で取得できました!
ありがとうございました。 |
1