- 1 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 23:04:56 ]
- 主にソケットに関しての質疑応答スレッドです。
Programming UNIX Socket FAQ (日本語訳) www.kt.rim.or.jp/~ksk/sock-faq/indexj.html Winsock Programmer's FAQ (日本語訳) www.kt.rim.or.jp/~ksk/wskfaq-ja/ 関連リンクは>>2-10辺り 足りなかったら適当に付け足してね 前スレ ネットワークプログラミング相談室 Port18 pc10.2ch.net/test/read.cgi/tech/1159692799/
- 280 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 01:19:45 ]
- 作成者、送信元、送信先
と言うような情報をパケットに持たせて、 プログラム側はその情報に従ってメッセージを送信し、 作成者まで戻ってきたら破棄する。 という感じ?よく分からんけど
- 281 名前:278 mailto:sage [2007/04/23(月) 01:59:09 ]
- >>280
レスありがとうございます。そういう理論ですか。なるほどです。 ネットワークプログラミングとマルチスレッドが、 初心者なので、実際のプログラミングでどうしたら、 良いのかと思いまして。 Bのプログラミングは、もうちょっと細かく見ると WSAStartup()->socket()->bind()->listen()->accept()->recv()-> B⇔Cのための子子スレッドを呼び出し? ->send()->closesocket()->WSACleanup() ■子スレッドで、_beginthread使っても良いなら、わかりやすくできるんですが、 だめなんですよね? ■WSAStartup()->socket()->bind()->listen()->accept()->recv()-> {B⇔Cの処理 WSAStartup()->socket()->connect()->send()->recv()->WSACleanup()} ->send()->closesocket()->WSACleanup() スレッド使わないで、WSAStartup()2回呼んだら、どうなるんだろうとか、 一回目のWSACleanup()で、A⇔B,B⇔C、両方の接続切れちゃったりしますよね。 とか、いろいろ疑問で。実験して見ようと思うんですが、頭がごちゃごちゃして 難しいです。 ■あとは、はじめからBのプログラミングで、 AがBに接続をして、アクセプトした瞬間に、その親スレッドで、 A⇔B,B⇔Cのやり取りするスレッドを、立ち上げてスレッド間のメッセージで タイミングをはかる方法があるかもしれないですが、スレッド間のやりとりって、 やったときなくて、難しいです。 うまく説明できず、すみません。的外れなこと言ってるかもしれないです。 2番目と3番目の■について、ここに気をつけるなど、アドバイスいただけないでしょうか。 よろしくお願いします。
- 282 名前:278 mailto:sage [2007/04/23(月) 04:08:28 ]
- >>281
2番目の■実験してみました。ちょっと違うんですが、 www.geekpage.jp/programming/winsock/http-client.php こちらのページのプログラムを参考に、させていただき実験してみました。 int main2(int argc, char *argv[]);関数を作成しました。 内容は、 //WSADATA wsaData; // if (WSAStartup(MAKEWORD(2,0), &wsaData) != 0) { // printf("WSAStartup failed\n"); // return 1; // } // WSACleanup(); ●WSAStartup()とWSACleanup()は、一回でいいと思い にコメントを入れました。この理解合ってますでしょうか? main()関数の中のsocketclose();のあとに main2(argc,argv);を呼び出しました。 ●すると、同じページが2回表示されました。 この要領で、281も実装すれば大丈夫でしょうか?
- 283 名前:278 mailto:sage [2007/04/23(月) 04:16:18 ]
- あっ、でもクライアントプログラムでした。
■WSAStartup()->socket()->bind()->listen()->accept()->recv()-> {B⇔Cの処理 socket()->connect()->send()->recv()} ->send()->closesocket()->WSACleanup() だと、サーバプログラムで、上記のように実験しないとだめですか。 んー、これで動きそうですが、状況作るの難しいです。 眠いので、もうだめです。><
- 284 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 16:09:22 ]
- プロセス間通信もここでいいんでしょうか?
親プロセスと子プロセスで、1対1のプロセス間通信をしたいです。 状態やエラーも返したいので名前付きパイプにしたいと思います。 しかし、親子が複数作られる場合があり、 当然、パイプの名前をユニークな名前にしなければならないのですが、 Windowハンドルを使えばいいでしょうか? こういう場合、普通はどんな風にプロセス間通信しますか?
- 285 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 17:31:14 ]
- C言語にてCGIを作成しています。
作成したCGIプログラムをHTTPで確認しようとすると 「Script Execution Failed」というエラーが表示されてしまいます。 色々調べたところサーバ側ではRedhat7.1という環境でサーバを動作 させており、Linuxで作成したexeファイルしか動作できないようなのです。 (Linux使ってないのでこの辺り大分自信が無いのですが) これはつまり、VisualC++6.0等のWindows上で動作するコンパイラで作成した cgiファイルは使えないという事なのでしょうか?
- 286 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 18:01:26 ]
- >>285
はい、使えません。
- 287 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 18:02:41 ]
- >>284
無名パイプを継承可能で作成してさらにCreateProcessでハンドルを継承可能にする。
- 288 名前:285 mailto:sage [2007/04/23(月) 18:35:48 ]
- >>286
SHOCKだ!LINUX使いの人じゃないとCGI作れないんですね。 返答ありがとうございました。
- 289 名前:284 mailto:sage [2007/04/23(月) 18:37:13 ]
- 継承 パイプ CreateProcessでググってみました
www.fides.dti.ne.jp/~tokai/vc/vcchips1.html このページを参考に作ってみたいと思います。 子プロセス側が無いですが。
- 290 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 05:19:32 ]
- >>288
ソースコードをLinuxマシンに転送してLinuxマシン上でコンパイルすれ ばいい。
- 291 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 10:46:12 ]
- 同じインテルだろうからアセンブラで組めばおk。
- 292 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 11:32:40 ]
- ファイルを転送するプログラムを作っているんですが、
sendに一度に渡すデータサイズはどれぐらいが適正なんでしょうか? 大きめに渡したほうが速く送れると、 どこかで読んだので大きめにしたほうがいいのかと 1MBまでなら渡しても正常に送ってくれるので 今のところ1MBにしています・・・でも、これはさすがに大きすぎるような気がして不安です。
- 293 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 11:35:11 ]
- OSがサポートする実行ファイルの形式が異なるので
WindowsとLinuxの両者でネイティブ動作する実行ファイルを作るのは不可能。 一般にコンパイル環境と異なるターゲット環境のための実行ファイルを 生成したい場合には、クロスコンパイラというものを使う。
- 294 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 17:44:16 ]
- wineつかえばいいのに
- 295 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 19:51:45 ]
- 4096byte以上はフラグメントされます。
リングバッファ処理を覚えましょう。
- 296 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 21:25:18 ]
- >>291-295
アンカーぐらい付けてくれ
- 297 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 00:50:12 ]
- EDITのウィンドウの文字の大きさを小さくしたいのですが、可能なのでしょうか?
|

|