
No.2ベストアンサー
- 回答日時:
サーバのOSについての記述がないので、unix系とみなして回答します。
APを以下のように修正してください。
accept()したあと、fork()します。
親はaccept()で得たディスクリプタをclose()して再度accept()ループに入ります。
子はbind()で得たディスクリプタをclose()して、あとは1体1の場合と同様に通信を開始し、処理が終了したらexit()します。
fork()によって、接続を待つプロセスと受け付けた接続を処理するプロセスに別れることで、複数の接続を同時に受け入れ可能なサーバAPを作成します。
MTによる方法もありますが、まずはfork()をマスターしてください。
No.1
- 回答日時:
それができないと、”サーバの指定のポートに接続”ってのができなくなるのでは?
httpやftp等のポート指定がなりたたなくなりますよ。
プログラム的には、サーバ側ではマルチスレッドかポーリングで、複数のクライアントからの要求を待つことになります。
この回答への補足
ありがとうございます。
例えば、サーバ日付取得ソケットAPを作成した場合(ポートを5000番)
サーバデータ受信APを作成するとすると、この時のポートは違うポートで行うのですか?
あともう1つ質問なのですが、ftpを使用しないで、
ポートを生成して、ファイルごとsend等のAPIで、
相手に送信できるのですか?
それとも、ファイルオープンして、データを読み込んで、
送信しなければダメですか?
違う質問もしてすみません。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ソケットを用いた1対多通信について1
Java
-
ソケット通信で同時受信の制限?
C言語・C++・C#
-
TCP/IP のパケットの分断と結合について
UNIX・Linux
-
-
4
Winsockで接続待ちタイムアウトを設定する方法
C言語・C++・C#
-
5
ネットワーク切断を検出するには?
C言語・C++・C#
-
6
複数のローカルIPで同じ開放したポートを使いたい。
その他(インターネット接続・インフラ)
-
7
エディットボックスの入力制限について
C言語・C++・C#
-
8
UDP通信する時に、相手にどうやって自分のポート番号を教える?
Java
-
9
ListBoxで改行したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
送信したデータの一部が文字化...
-
closeされたsocketへの動作につ...
-
TCP/IP通信でのコネクシ...
-
JavaによるXMLの送受信
-
VB6‥ソケットについて
-
Socket通信の0バイト受信について
-
Connectエラーが出てしまう・・...
-
Macターミナルで実行中のプログ...
-
家電製品の電力周波数を変える機械
-
タスクマネージャーのプロセス...
-
このレジの並び方は間違ってま...
-
InternetOpenUrlの引数URL文字...
-
実行時のコマンドプロンプトを...
-
ボタンが押された事を検知する...
-
h8マイコンで AD変換ができ...
-
割り込みの衝突
-
64BitOSについて
-
Linuxでスレッド優先度って変え...
-
Access2013からADP廃止
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
UDP通信する時に、相手にどうや...
-
UDP通信におけるbind関数について
-
エクセル VBA でのCOMポート...
-
ソケットのクローズについて
-
ソケットのrecvの戻り値が0
-
VB6のwinsockでconnectできない
-
Socket通信の0バイト受信について
-
recv関数でフリーズしてしまう
-
Winsockで接続待ちタイムアウト...
-
Connectエラーが出てしまう・・...
-
送信したデータの一部が文字化...
-
【ajax】 XMLHttpRequestオブジ...
-
ソケット通信
-
closeされたsocketへの動作につ...
-
wsdlからのサービス化を行い。
-
Cにおける通信プログラミングの...
-
UdpClient 送信元のIPアドレ...
-
非ブロッキングソケットのrecv...
-
ソケットを用いた1対多通信につ...
おすすめ情報