- PR -

(ソケット通信で)サーバー側がクライアント側のIPアドレスを取得する方法

1
投稿者投稿内容
隣の古柴
ベテラン
会議室デビュー日: 2004/06/04
投稿数: 94
投稿日時: 2004-06-15 16:56
ソケット通信で、サーバー側(リスナープロセス)がクライアント側のIPアドレスを
取得する・・などという真似は可能なのでしょうか?

ヘルプドキュメントと過去ログを見る限りでは
 クライアントがサーバーのIPアドレスを
 クライアントが自分自身のIPアドレスを

取得することが出来る、というのは把握できましたが本件だけが未確認の状態です。
どなたかお教えください。お願いします。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-06-15 17:45
Socket#Accept()でクライアントのSocketオブジェクトが取得できます。
次いで、Socket#RemoteEndPointをよぶことで、IPアドレスがわかります。
隣の古柴
ベテラン
会議室デビュー日: 2004/06/04
投稿数: 94
投稿日時: 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を抜けたとこで良いもので
しょうか?


かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-06-15 19:08
引用:

この場合、Socket#RemoteEndPointをよぶタイミングはwhileを抜けたとこで良いもので
しょうか?


接続が確立していれば、いいと思うけど、それ以前に、コールバックルーチンの中で取得しちゃぁだめなの?
隣の古柴
ベテラン
会議室デビュー日: 2004/06/04
投稿数: 94
投稿日時: 2004-06-16 09:06
引用:

かずくんさんの書き込み (2004-06-15 19:08) より:
引用:

この場合、Socket#RemoteEndPointをよぶタイミングはwhileを抜けたとこで良いもので
しょうか?


接続が確立していれば、いいと思うけど、それ以前に、コールバックルーチンの中で取得しちゃぁだめなの?




レスありがとうございます。
試してみますね。
隣の古柴
ベテラン
会議室デビュー日: 2004/06/04
投稿数: 94
投稿日時: 2004-06-16 13:04
おっしゃるとおり、コールバックルーチン内で取得できました!
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)