[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 07/09 08:15 / Filesize : 78 KB / Number-of Response : 298
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ネットワークプログラミング相談室 Port19



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/

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のウィンドウの文字の大きさを小さくしたいのですが、可能なのでしょうか?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<78KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef