SOCKETの値について – プログラミング – Home

通知
すべてクリア

[解決済] SOCKETの値について


TERA
 TERA
(@TERA)
ゲスト
結合: 18年前
投稿: 24
Topic starter  

開発環境 WindowsXP  VC2005 SDK C言語

WinSockをつかったプログラムを作っています。
socket()を呼び出すとSOKET型の値が返ってきますが、
これはどんな場合でもプログラム内でただ1つのユニークな値なのでしょうか?

例えば、1つのパソコンで同じクライアントソフトを10個起動して、
サーバーに接続した場合、サーバー側のプログラムでは、
必ずクライアントソフト10個すべてにユニークな値が割り当てられるんでしょうか。

また、クライアントソフトとサーバーソフトを作ってるんですが、
クライアントがサーバーに接続したときに作成されるSOKETの値には
だいたい3700~3800あたりの値が入っています。
作成されるソケット数には上限があるんでしょうか?

宜しくお願いいたします。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> 例えば、1つのパソコンで同じクライアントソフトを10個起動して、
> サーバーに接続した場合、サーバー側のプログラムでは、
> 必ずクライアントソフト10個すべてにユニークな値が割り当てられるんでしょうか。

サーバがacceptした時点で通信用のsocketがひとつ新たに生成されます。

> また、クライアントソフトとサーバーソフトを作ってるんですが、
> クライアントがサーバーに接続したときに作成されるSOKETの値には
> だいたい3700~3800あたりの値が入っています。
> 作成されるソケット数には上限があるんでしょうか?

まさか無限なはずがない。


返信引用
TERA
 TERA
(@TERA)
ゲスト
結合: 18年前
投稿: 24
Topic starter  

επιστημηさん

いつもありがとうございます。
socketが生成されるのはaccept()を呼び出した時点だったんですね。
試したところ、10個すべて同じでした。

> まさか無限なはずがない。

そうですよね。でも上限はいったい何個なんでしょう?
socketの値をしらべると必ず3600代、3700代、3800代の値のどれかが返ってくるんです
が、じゃあつまり最低3600~最高3899の299個しかソケットが作れないんでしょうか・・。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

参考になりますか?
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/advanced.html#maxsockets


返信引用
TERA
 TERA
(@TERA)
ゲスト
結合: 18年前
投稿: 24
Topic starter  

dairygoodsさん

参考になるサイトを教えていただいて、
ありがとうございました。
要するに、1つのスレッドでは64個のソケットが限界のようですね。
それ以上の場合はスレッドを増やす必要があるようです。

επιστημηさん、dairygoodsさん どうもありがとうございました。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

> 要するに、1つのスレッドでは64個のソケットが限界のようですね。

必ずしもそうではないです。
WSAEventSelect や select を使う場合は制限があると書いてあります。


返信引用
TERA
 TERA
(@TERA)
ゲスト
結合: 18年前
投稿: 24
Topic starter  

dairygoods

あ、そうですね。了解しました。
ご親切にありがとうございます。


返信引用
TERA
 TERA
(@TERA)
ゲスト
結合: 18年前
投稿: 24
Topic starter  

すみません。「さん」が抜けました・・


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました