[過去ログ] ネットワークプログラミング相談室 Port23 (1001レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
19
(3): 2009/01/01(木)18:45 AAS
マルチスレッドのサーバを作っています。
複数の処理スレッドが入力を受け付け(accept)、処理を実行し、1つの管理スレッドが
スレッド数の管理や処理に関する統計処理等を行っています。
(処理数が処理スレッド数を上回った場合は、管理スレッドが処理スレッドを増やすなどを行う)
ここで質問なのですが、管理スレッドを定期的に実行させるにはどのような方法がよいでしょうか?

スレッドのpriorityも関係しそうですが、管理スレッドのpriorityをあげるのは、
なんかおかしいかなと思ってます。(実際にpriorityが高いのは処理スレッド)

また、もっと適した別のスレッドがあればそれを教えて頂ければと思います。
21
(4): 2009/01/01(木)19:20 AAS
>処理数が処理スレッド数を上回った場合は、管理スレッドが処理スレッドを増やすなどを行う

こういう風にマルチスレッドをやると大抵破綻する。
スレッドプールにして一度に使うスレッドの上限を決めとかないと、
スレッドが無限に作られるようなこともできてしまう。

ここでいう管理スレッドはずーと起動しておくようなものに設計しないとだめだよ。
32
(3): 2009/01/01(木)20:56 AAS
pthread_createするのはコストがかかるんだよwww

処理スレッドの上限を決めなくても、
スレッドプールにすれば済む話w

そもそもスレッドプールって知ってんのかこの人?
68
(3): 2009/01/05(月)14:56 AAS
すみません、NAT越えについて質問させてください。
モデムの内側にあるAとBのマシン同士を、モデムの外にあるCというマシンを
介してP2P通信させたいんです。

まず、AのPCがCのPCにUDPアクセスし、AのWAN側のIPとポートを取得。
同様にBのPCがCのPCにUDPアクセスし、BのWAN側のIPとポートを取得。

その後一分以内に(モデムのポートが開いている間に)
取得したIPとポートにAとBそれぞれからお互いにUDPでアクセスさせれば
AとBお互いがモデムの内側であったとしてもUDP通信が可能になると
思いますが違いますでしょうか?
81
(3): 2009/01/07(水)16:52 AAS
外部リンク[htm]:www13.plala.or.jp

このサイトでは、
main関数でwinsock2の初期化後ソケットの作成を試みて、
返り値がINVALID_SOCKETの場合returnで終了していますが、
その場合WSACleanupを処理しないことになりますがこれでいいのでしょうか?

// ソケットの作成
sock0= socket(AF_INET,SOCK_STREAM,0);
if (sock0 == INVALID_SOCKET){
 printf("socket : %d\n", WSAGetLastError());
 getch();
省2
120
(4): 2009/01/13(火)18:39 AAS
socketでサーバライブラリ的なものを作ってます。
Accept後にThread作ってそこで受信応答を行うという、
ごく一般的な方法なのですが、
現状では、階層の一番深いところで受信した
データの解釈と応答データの作成が必要になってしまい、
ライブラリとして意味がなくなってしまいます。
ライブラリには送受信だけさせ、
受信データの解釈と応答バッファの作成は
もっと上の階層で行いたいのですが、
一般的にはどういう方法で行うのでしょうか?
166
(5): 2009/01/22(木)00:19 AAS
皆さん如何されているかアイデアを聞かせてほしいんですが

たとえば、不特定多数が使用するクライアント・サーバ型のソフト(MMO等)を作るとして、
データのやり取りはUDPで行うとします。
不正なデータを送られたり、受信したデータから不正な処理をされないためには
データを暗号化して通信する必要がありますが、そのキーを何処に隠すとよいと思いますか?

クライアント側で暗号化したデータをサーバで復号する、またその逆の場合、
クライアントはサーバと通信する為に、鍵を持っている必要がありますが
コード上やリソース上に持たせてしまうと、バイナリエディタなどからバレてしまう可能性があります。

ここで、脅威の対象を仮に
・28歳 男性 独身
省14
249
(4): 2009/02/03(火)23:29 AAS
LinuxでIPアドレスが分かっているLAN内の他のホストのMACアドレスを知るプログラムを作りたいのですがどうすればいいですか?

できれば、他のプロセス(arpコマンドなど)は起動せず、
標準的な(apt-getせずにubuntuで使える)関数で簡単に数行で記述出来ると望ましいです。
278
(3): 249 ◆ZHAPRHY6Ag 2009/02/06(金)00:27 AAS
大切なことを言い忘れていましたが、CかC++で実装したいと考えています。

それと、あくまでも同一LAN内のMACアドレスが分かっているリモートホストのIPアドレスが知りたいのであって
明示的にARPリクエストを送りたいわけではありません。したいのはあくまでもIPアドレスを取得することです。

RAWソケットを開いたりする必要こと無く、標準関数あるいは標準機能と数行の記述でIPアドレスを取得できることが希望です。
標準関数を希望するのは、OSに標準的に付属する以外にソフトウェアを取得するのは、権利の関係が面倒なので避けたいからです。

例えば、標準関数でint get_mac_address(struct arpreq *req) のような関数があると理想的です。
361
(3): 2009/02/12(木)09:32 AAS
どこに書けばいいのかわからないので、お手数ですが。
Rubyで書いた、ウェブページとそこのリンク先を取り込むスクリプトを
動かしていたら途中でconnect refusedになって以後つながりません。
"www.linux.org"だったんですけど、他では問題ありません。
図書館でやっても途中で切れました。
某図書館では"www.linux.org"につながらなくなっているかもしれませんゴメンナサイ。
いったいどうゆうことなんでしょうか。
なにが気に入らなかったんでしょうか。
まる二日たちますが、接続拒否は解除されるんでしょうか。
398
(3): 2009/02/15(日)10:39 AAS
AA省
448
(3): 2009/02/18(水)23:13 AAS
TCP/IPのことで聞きたいのですがよろしいですか?
453
(3): 2009/02/18(水)23:21 AAS
これから10Mバイトの容量のデジカメ写真のデータをインターネット上の電子メールで送信しようとするところである。
10Mバイトと容量が大きいので、インターネット上をそのまま一つの10Mバイトのデータ送信する事ができない。
TCP/IPではこのデータをどのように分割して処理し、分割したデータのそれぞれが間違いなく送信の相手に届くように保証しているかIPとTCPの送信側、受信側それぞれの役割別に具体的に説明しなさい。
とあるのですが、まったくわかりません;
462
(3): 2009/02/18(水)23:32 AAS
>>453
バカな問題を好意的に解釈すると、

「分割」はIP、「間違いなく送信の相手に届くように保証」はTCPが行っている。
説明は下記を参照。

@IT:連載 基礎から学ぶWindowsネットワーク 第10回 IPパケットの構造とIPフラグメンテーション 2.IPフラグメンテーション
外部リンク[html]:www.atmarkit.co.jp

@IT:連載 基礎から学ぶWindowsネットワーク 第14回 信頼性のある通信を実現するTCPプロトコル(その1)
外部リンク[html]:www.atmarkit.co.jp
531
(4): 2009/03/18(水)21:14 AAS
>>530
大体そういったところです、任意のTCPデータのicpmをwindowsで生成する方法です
誤解してほしくないのは、syn floodやディニアルを行うのが目的ではなく
サーバーがそれらのアタックを受けているので、シュミレーションが目的です
すでに、syn floodやdosはlinuxで実装しているのですが、windowsのほうがてっとり早いので聞いて見ました
ちなみにWindows XP SP2です
599
(3): 2009/04/18(土)03:14 AAS
プログラムの設計の話なんだけど、どこで聞けばいいか解らんかったからここで。

// select/epoll等で、読み込み可能になった場合、
// スレッドAで実行される
void Read()
{
// データを受信し、プロトコルパースしたのがmsg
// 実際はバッファリングしてたり、パースに失敗したら云々やってる。
Message msg = Message.Parse( Sock.Read() );
ThreadPool.Push( pair<msg, this> ); // パースしたmsgをスレッドプールで処理する。
}
省16
746
(3): 2009/06/10(水)09:43 AAS
IPアドレスを持っていない相手に対して、ブロードキャスト以外のIPパケットを
送ることはできない。ブロードキャストなら普通にINADDR_ANYにbindすれば拾える。

基本を知らずにRAWソケットとか使いたがる初心者が、最近増加してるのは何故?
755
(3): 2009/06/10(水)12:46 AAS
ではなぜ今のSMTPは固定IPにしか転送しないようにできるんですか?
824
(3): 2009/06/16(火)22:45 AAS
勝手にスイッチって
受信完了→送信→受信待ち って流れ?
受信完了→受信待ち→受信完了→送信 って風にはならないの?
超高速で受信がきたとして
948
(3): 2009/07/02(木)06:34 AAS
>>946
同じ階層にoverってどういうことw
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.062s