ソケットサーバの同時接続について – プログラミング – Home

ソケットサーバの同時接続について
 
通知
すべてクリア

ソケットサーバの同時接続について


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

こんにちは

今、ある運用の監視システムの設計をしています。

1)サーバ Widnows 2003 Server
2)CPU 64bit
3)メモリー 8GB
4)監視端末 約1000台

端末からは
1)起動時に起動通知をサーバに投げる
2)障害発生時に障害コードをサーバに投げる
3)復旧時に復旧通知をサーバに投げる
4)終了時に終了通知をサーバに投げる
5)サーバから端末へ定期的に死活監視を行う。

ソケット通信での実装を想定していますが、
このような場合、
起動時にconnectして終了時にcloseするような設計をすべきでしょうか?
それとも毎回の通知においてConnect、Closeを行うべきでしょうか?

そもそも1000台の接続をサーバで張ることが出来るのか?
という課題もあります。

よろしくお願いします。


引用解決済
トピックタグ
takuman
 takuman
(@takuman)
ゲスト
結合: 18年前
投稿: 4
Topic starter  

補足ですが、
ソケットはTCPソケットを想定しています。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> 起動時にconnectして終了時にcloseするような設計をすべきでしょうか?
> それとも毎回の通知においてConnect、Closeを行うべきでしょうか?

case-by-case.
とはいえ1000本のsocketを始終繋ぎっぱてのも問題。

# connectせずに「UDPで投げっぱなし」という選択はアリですか?
# 確実に相手に届く保証はありませんけど。


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

ありがとうございます。

もともとudpがいいのでは?と考えていましたが
重要な通知もありますので、
tcpで行わざるを得ません。

1000本のソケットつなぎっぱは問題ですよねえ。
やはり・・・

基本は端末からは
1)サーバへconnect
2)サーバへwrite
3)サーバへClose
って動きになるのでしょうか?

大半の通知は端末側は通知した後のサーバの処理結果を知らなくてもいいです。
一部だけ、知らないといけない通知もありますが、
それは
1)サーバへconnect
2)サーバへwrite
3)サーバへselect
4) サーバよりread
5)サーバへClose
って動きになるのでしょうか?

サーバはマルチスレッドを想定していますが
子プロセスとマルチスレッドは同義語ですか?


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

手順はそんなところでしょうね。

> サーバはマルチスレッドを想定していますが
> 子プロセスとマルチスレッドは同義語ですか?

違います。
プロセスは実行モジュール(exe)が別。
スレッドはサーバ内の1関数です。


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

ありがとうございます。

さて、ソケットサーバが一つ端末からの接続で占有されないためには
ACCEPT後子プロセスを作成するのが一般的な方法ですか?

下記のサイトで勉強していますが・・・

http://hp.vector.co.jp/authors/VA003991/kouza/senior/kouza_socket.html

よろしくお願いします。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> さて、ソケットサーバが一つ端末からの接続で占有されないためには
> ACCEPT後子プロセスを作成するのが一般的な方法ですか?

'一般的'とは如何なる意味ですか?

実装次第でどうにでもできます。
スレッドでもプロセスでもselect待ちでも。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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