- PR -

サーバープログラムの任意IPアドレス起動

1
投稿者投稿内容
ShuU
常連さん
会議室デビュー日: 2006/09/29
投稿数: 21
投稿日時: 2006-10-16 17:09
度々お世話になっております。

VC++2005を使用して、WIN32アプリケーションを作成しています。
Winsock2.0を使用して、TCP/IP通信を行うサーバーを作成します。

対象:NIC2枚挿しにより2つのIPアドレスを持つコンピュータ
課題:任意のIPアドレスとポートで、クライアントアプリからの接続を待つ
問題:任意のIPアドレスが指定できない

IPアドレス"192.168.10.12"と"192.168.10.13"を使用しています。
このコンピュータでサーバーアプリを起動すると、"13"の方がサーバーとなります。
(クライアントアプリから"12"への接続は失敗します)


サーバー起動時に指定するのが以下のように、ポート番号のみであるため、
どちらのIPアドレスを使用するのかを指定できていません。

// sockaddr_in構造体作成
struct sockaddr_in addr;
(中略)
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = INADDR_ANY;
addr.sin_port = htons(intPortNo);


何か、IPアドレスを指定してサーバーを起動する方法をご教授ください。

以上、宜しくお願い致します。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-10-16 17:26
引用:

ShuUさんの書き込み (2006-10-16 17:09) より:
addr.sin_addr.s_addr = INADDR_ANY;


この行でIPアドレスを指定しています。
「INADDR_ANY」は「どれでも」を意味します。

引用:

ShuUさんの書き込み (2006-10-16 17:09) より:
(クライアントアプリから"12"への接続は失敗します)


「INADDR_ANY」を指定した場合、"192.168.10.12"と"192.168.10.13"の両方が使われるはずです。接続失敗するのは別の要因ではないでしょうか?
ShuU
常連さん
会議室デビュー日: 2006/09/29
投稿数: 21
投稿日時: 2006-10-16 17:40
早速のご返信有難う御座います

引用:

甕星さんの書き込み (2006-10-16 17:26) より:
引用:

ShuUさんの書き込み (2006-10-16 17:09) より:
addr.sin_addr.s_addr = INADDR_ANY;


この行でIPアドレスを指定しています。
「INADDR_ANY」は「どれでも」を意味します。

引用:

ShuUさんの書き込み (2006-10-16 17:09) より:
(クライアントアプリから"12"への接続は失敗します)


「INADDR_ANY」を指定した場合、"192.168.10.12"と"192.168.10.13"の両方が使われるはずです。接続失敗するのは別の要因ではないでしょうか?



まさに、その通りでした(汗
睡眠時間2時間のせいで、脳みそにガタが来たようです。

原因は"断線"というお粗末なもので、解決しました(トホホ

以上、お騒がせしました。
1

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