プロが教えるわが家の防犯対策術!

Windows2000クライアントが複数あり、サーバソケット用APを作成したのですが、1対1では確認できたのですが、
n対1は、手法が変わるのですか?

疑問:
PCとサーバ間でのソケット通信にて、相互に同じポートでなければいけないので、複数のPCからサーバソケット用AP
で決めたポートに繋げに行くことが可能なのですか?

A 回答 (2件)

サーバのOSについての記述がないので、unix系とみなして回答します。


APを以下のように修正してください。

accept()したあと、fork()します。

親はaccept()で得たディスクリプタをclose()して再度accept()ループに入ります。

子はbind()で得たディスクリプタをclose()して、あとは1体1の場合と同様に通信を開始し、処理が終了したらexit()します。

fork()によって、接続を待つプロセスと受け付けた接続を処理するプロセスに別れることで、複数の接続を同時に受け入れ可能なサーバAPを作成します。

MTによる方法もありますが、まずはfork()をマスターしてください。
    • good
    • 1
この回答へのお礼

ありがとうございます。やってみます。

お礼日時:2003/09/11 21:38

それができないと、”サーバの指定のポートに接続”ってのができなくなるのでは?


httpやftp等のポート指定がなりたたなくなりますよ。

プログラム的には、サーバ側ではマルチスレッドかポーリングで、複数のクライアントからの要求を待つことになります。

この回答への補足

ありがとうございます。

例えば、サーバ日付取得ソケットAPを作成した場合(ポートを5000番)
サーバデータ受信APを作成するとすると、この時のポートは違うポートで行うのですか?

あともう1つ質問なのですが、ftpを使用しないで、
ポートを生成して、ファイルごとsend等のAPIで、
相手に送信できるのですか?
それとも、ファイルオープンして、データを読み込んで、
送信しなければダメですか?

違う質問もしてすみません。。。

補足日時:2003/09/11 18:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています