- 1 名前:ftp-data mailto:sage [2007/08/07(火) 01:47:35 ]
- 主にソケットに関しての質疑応答スレッドです。
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辺り 足りなかったら適当に付け足してね 前スレ ネットワークプログラミング相談室 Port19 pc10.2ch.net/test/read.cgi/tech/1159692799/ 関連スレ Java ネットワークプログラミング 【教えて!】 pc11.2ch.net/test/read.cgi/tech/1086238859/
- 511 名前:506 mailto:sage [2007/11/21(水) 11:17:40 ]
- あまり意味ないけどコンソール上には
>iRcvRet[-1]/recv()直後errno[0] 表示されてしまいまふ。
- 512 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 13:52:59 ]
- #include <errno.h>はインクルードしてますか?
(必要なOSの場合に; 今時pthread絡みで必ず必要だけど) 自分でextern int errnoしてたら殺しますよ。
- 513 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 14:36:48 ]
- errno=0をerrno=100にしたら100のままだったりしてねw
- 514 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 14:38:18 ]
- Linux&(C or C++)でhttps通信を利用したプログラムを作りたいのですが、
httpsを利用できるライブラリは無いでしょうか。 ghttpがあったのですが、httpsには対応していないようで困っています。
- 515 名前:506 mailto:age [2007/11/21(水) 15:25:02 ]
- >>512
errno.hはインクルードはしてあります。 その直後にextern int errnoもしてました。 これは不味いんですか? 恥ずかしながらUNIXはホントわからないんです・・・。 >>513 まさにその通りです。 recv()の前後でerrnoの値が全く更新されません。 と、言うことで「extern int errno」の行を削除して みたのですが現象は変わりません。 その書き込みから見ると非常に基本的な部分で間違いが あると思いますがなんとも分かりません。 他に考えられる原因はありますでしょうか? その他のソース部分には、errno.hのインクルード等は されていません。 ちなみに動作環境はsolaris8、開発環境はeclipse+CDTで、 コンパイラはgccのVer2.8.1を使ってます。 厨な質問で申し訳ないです。m(__)m
- 516 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 15:42:46 ]
- >>515
errnoが通常の変数の場合、マルチスレッド環境だと、errnoを取得する前に別スレッドが書き換えてしまう ケースがあり、正常に動作しないので、 最近のOS/ライブラリでは、#defineで「errno」をスレッドごとに確保された記憶領域へアクセスする関数に 置き換えてる。
- 517 名前:506 mailto:sage [2007/11/21(水) 15:58:11 ]
- >>515
お付き合いありがとうございます。 要は「#include <errno.h>」のみやれば良いとの認識で 良いでしょうか? manpageによると ------------------------------------------------------------ errno は、ISO C standard で int 型の変更可能な左辺値として 定義されており、明示的に宣言を行ってはならない; errno はマクロの場合もありえる。 errno はスレッド毎に値を持つ。 つまりあるスレッドで errno が設定されても、他のスレッドの errno には 影響しない。 ------------------------------------------------------------ とありました。 しかし、#include <errno.h>をしているのは、 私がUPしたソースのあるファイルのみでしか宣言してなく、 マルチスレッド環境ではありますがこのソースは、 単一のスレッド上でのみ動きます。 (上の説明からだと複数で動いててもそれぞれ独立してerrnoを 持っていると言う事になると思いますが。) にも関わらず>>513のような挙動になるのは何故なんでしょうか? どこか別のヘッダ等でexternとかしてるんでしょうか・・・ だから俺には短期間じゃ無理な作業だと言ったのに(T。T)>>会社 と、愚痴をこぼしてみる。スイマセン。
- 518 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 16:23:23 ]
- とりあえずな、>>506の言う通り、
perror()をprintf("iRcvRet〜の前に付け加えてみな。 後ろじゃダメだぞ。
- 519 名前:506 mailto:sage [2007/11/21(水) 16:48:59 ]
- >>518
ありがとうございます。perror()を使用したところ >>recv(): 資源が一時的に使用できません。 と返ってきて、EAGAINである事が確認出来ました。 と、なると後はなんでerrnoが変更されないのかですね。 一歩前進(?)しましたありがとうございます。 絞る知恵もなくなったので、ネットで検索しまくってます。
- 520 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 17:11:11 ]
- 環境のせいかもね
1. errno.h にバグがある 2. インクルードしている errno.h のパスがおかしい 3. ライブラリとコンパイラが不整合
- 521 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 17:25:47 ]
- ネットワーク関係なくなってきてるが、
#include <errno.h> int geterrno(void) { return errno; } これだけのファイルをgcc -Eしてみな。 int geterrno(void) { return (*__アドレス返す関数名()); } にならないとまずい。 なってるならソースコードのerronoをgeterrno()に変えて終了。 左辺値参照はどうせまともな意味のあるコードないだろうし。
- 522 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 18:20:38 ]
- gcc 2.8.1ってなんだよ…
2.95.4とかなら分かるけど。 窓から捨てろ
- 523 名前:506 mailto:sage [2007/11/21(水) 22:35:07 ]
- >>520-522
お返事遅くなってしまいました。 すみません&ありがとうございます。 >>521 明日試してみます。 >>522 用意されたサーバのを使ってるだけなので 私はどうにも出来ませんorz。 察するに「古くて使い物にならねー。」って事で 良いでしょうか?このあたりも原因あるのでしょうか・・・ ソケットなんて昔からあるので大丈夫な気もしますけど。 スレ違いにもなりかけてるので、以上を踏まえて精進します。 皆さん長々とお付き合い下さってありがとうございました。 感謝します(-人-)
- 524 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 07:17:32 ]
- サーバ上のCGIに文字列を渡して、その文字列を保存しようとしてるのですが
日本語等の2バイト文字を渡すと正常に受け取ってくれません。 char *mozi = "test.cgi?,testあ" hRequest = HttpOpenRequest( hHttpSession, "GET", mozi,//■CGIへ渡す文字列です NULL,NULL,NULL,0,0); 上記では「testあ」という文字列をCGIに送信していますが、CGI側では 「test0x000000000008p-10224」 という風に2バイト文字のみエラー認識されてしまいます。 どうすればCGIに2バイト文字を送信できるのでしょうか?
- 525 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 07:44:54 ]
- %82%A0%82%D9
- 526 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 07:49:32 ]
- char *mozi = "test.cgi?,test%94%C2%88%E1%82%A2"
hRequest = HttpOpenRequest( hHttpSession, "GET", mozi,//■CGIへ渡す文字列です NULL,NULL,NULL,0,0);
- 527 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 08:32:44 ]
- >>524
CGI エンコード
- 528 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 08:38:54 ]
- >>525
>>526 >>527 検索してみた所、それらしい参考文献が見つかりました。 早速実装して試してみたいと思います。ありがとうございました。
- 529 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 08:52:58 ]
- %82%A8%82%DC%82%A6%82%E7%90e%90%D8%82%BE%82%C8%82%97
- 530 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 09:25:37 ]
- %8E%C0%91%95%8A%AE%97%B9%81%41%8A%B4%8E%D3
- 531 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 09:45:50 ]
- エンコード状態で会話すんなwwwwwwwwwwww
- 532 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 10:14:24 ]
- socket通信しているときに、相手方が shutdown(s, SHUT_WR) した時、
こちら側ではselect()から抜けて、read() で検知することができますが、 その後、相手が close() または shutdown(s, SHUT_RD) したことを 検知することはできないでしょうか?
- 533 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 11:16:35 ]
- CGI円コード程度ならgoogleに食わせれば翻訳してくれる
www.google.co.jp/search?hl=ja&q=%8E%C0%91%95%8A%AE%97%B9%81%41%8A%B4%8E%D3 www.google.co.jp/search?hl=ja&q=%82%A8%82%DC%82%A6%82%E7%90e%90%D8%82%BE%82%C8%82%97 www.google.co.jp/search?hl=ja&q=%94%C2%88%E1%82%A2 www.google.co.jp/search?hl=ja&q=%82%A0%82%D9
- 534 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:43:38 ]
- ttp://%90%C0%82%C1%82%C4%82%E6%82%B5
- 535 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 19:35:15 ]
- >532
writeが-1を返すとか。 selectのexceptfdsが反応するとか。
- 536 名前:532 mailto:sage [2007/11/29(木) 02:22:04 ]
- >>535
exceptfds は、相手方がMSG_OOBでデータを送ってくれないと 反応しないですね。 write は確かに-1 (EPIPE) を返してくれるのですが、こちらから 送信するときに分かるけれども、相手がcloseしたタイミングで 検知できるわけではないので、 難しそうですね。ありがとうございます。
- 537 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 22:36:41 ]
- というか、先に向こうがSHUT_WRしているんだから、
こっちはwriteしかできないわけだし。気にくわなければ すきなだけwriteして、むこうがSHUT_RD(残りclose)を発行する 前に、こっちからcloseしてやれば?
- 538 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 22:58:19 ]
- なんか失恋とか離婚とかそんな勢いだなw
- 539 名前:デフォルトの名無しさん mailto:sega [2007/12/01(土) 19:43:02 ]
- Linuxでサーバプログラム書いてるんだけど
acceptする前に相手のIPとポートを知る方法ってある?
- 540 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 19:49:23 ]
- 特定のアドレスからの接続は拒否りたいとか?
acceptを呼ぶ前に接続は完了してるらしいから、無意味じゃない? www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-3.html#ss3.3
- 541 名前:539 mailto:sage [2007/12/01(土) 19:52:23 ]
- >>540
アリガトウ そういえばそうだったね 忘れてた
- 542 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 20:46:07 ]
- 送られてきたパケットのIPヘッダー部分を生ソケットでパースすればいけそうだけどね
俺はヘッダー処理を書いたことはあるが、パース処理までやる気はまだない
- 543 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 21:00:40 ]
- ヘッダー処理って何んだろう
パース処理ってのがIPヘッダの解析なら 別に何にも難しいことないだろ
- 544 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 21:10:03 ]
- バカには難しいんだよw
- 545 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 21:43:26 ]
- どこにも難しいとは書いてない件について
- 546 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 00:11:13 ]
- >>539
何のために?
- 547 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 11:08:10 ]
- エラーがでるのですが、なぜでるのか私にはわかりません。
一体なぜエラーが出るのかを教えていただけませんか? tool-6.net/?cnum
- 548 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 11:15:55 ]
- ちょtぅwwwwwwwww
何そのやる気0の他力本願寺は
- 549 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 11:20:17 ]
- バグを発見したときは、
・発生時刻 ・バグの詳細 ・(できるなら)一次解析結果 を調べるのは常識だぞな
- 550 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 12:02:14 ]
- Debug Assertion Failed!
File:c:\program files\microsoft visualstudio 8\vc\atlmfc\include\atlcomcli.h Line 154 と出ます。
- 551 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 12:04:08 ]
- >>550
おk 原因はわかった
- 552 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 12:40:58 ]
- マジレスして良いのか分からないが
取っ掛かりぐらい自分でつかんでから人に聞かないと頭には入らない
- 553 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 13:20:04 ]
- 質問があります。
accept で得たソケットをOVERLAPPED 対応にさせるにはどうしてます??
- 554 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 15:27:36 ]
- acceptで得るのはlistenに渡す奴のコピー(同じ性質)みたいなもんじゃなかったか
- 555 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 17:18:14 ]
- pMyBr->GoHome();を消したら、ウィンドウだけは表示出来ました。
…原因が、わかりません。
- 556 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 19:17:38 ]
- >>554
返信ありがとうございます。 listen ソケットに WSA_FLAG_OVERLAPPED が設定されていれば、accept で得られるソケットにも同フラグが設定された状態になるんですね。 助かりました。ありがとうございます。
- 557 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 19:18:16 ]
- 解決方法はありますか?
- 558 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 19:41:02 ]
- atlcomcli.h中の154行目
ATLASSERT(p!=NULL); に何かしらの原因があるんですかね?
- 559 名前:デフォルトの名無しさん mailto:age [2007/12/02(日) 20:35:19 ]
- age
- 560 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 21:24:22 ]
- man 2 send を読むと、MSG_DONTWAIT について、
「fcntlのF_SETFLでO_NONBLOCKを指定することによっても有効にできる」 と書いてあって、これって、O_NONBLOCK にしてなくても、sendするときの オプションで MSG_DONTWAIT を使えば非ブロックモードにできる、という意味だと 思うけど、 逆にO_NONBLOCKになってるソケットでブロックモードでsendしたいときに send時のオプションで何とかならない? fcntlでO_NONBLOCKをクリアしないとダメ?
- 561 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 21:34:42 ]
- 全然関係なくてあれなのですがboost::asioがIOCP使ってるぅー
- 562 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 21:36:00 ]
- 本当にどうでもいいwww
- 563 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 21:44:25 ]
- 私は>>547ですが、
ヒントだけでもいただけないでしょうか?
- 564 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 21:52:15 ]
- 少なくともエラーメッセージから何でエラーが出るのかくらい考察しろ
- 565 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 02:59:11 ]
- >>558
翻訳: pがヌルポでどうしろっていうんだよ、バーカ。
- 566 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 07:54:14 ]
- 俺バカなんで教えていただけませんか?
- 567 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 08:40:22 ]
- >>555
ヌルポなんて渡すんじゃねえ、"Go home!"ってことなんじゃないか? いったん家に帰って、必要な初期化を見直せ。
- 568 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 09:13:03 ]
- というか技量にあってないんだと思うが
スレ違いかどうかすら判断できてないだろ
- 569 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 11:29:40 ]
- 訳若芽
- 570 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 15:46:48 ]
- 通信対戦ゲームのマッチングプログラムをperl/cgiで作っています。
cgiの中身は、掲示板のサンプルリストに毛の生えたような単純なもので、 何も無い部屋に登録すると、登録した人のIP、開放しているport番号を記録し、 そのクライアントはサーバー状態で接続を待ちます。 次に、他の人が登録してある部屋に入ると、登録してあったIPとport番号を 受け取り、サーバー状態で接続を待っている相手に、接続を試みるというものです。 実際作って、ちゃんと動いているのですが、そこでどうしても気になるのは、 登録しているIPとport番号を相手に受け渡す時で、やっぱり、 IPとport番号は暗号化して渡したほうがいいのでしょうか? 初心者向けのperlのCGIの本を読んでても、掲示板の作り方ぐらいで、 マッチングサーバの作り方については書かれていませんし、 同人ゲームのひぐらしデイブレイクの通信対戦では、堂々と掲示板に 自分のIPとport番号をさらしているので、それに比べれば、 目に見えない形でやり取りしているから、気にする必要は無いでしょうか? ものすごい初歩的な質問かもしれませんが、よろしくお願いします。
- 571 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 16:15:24 ]
- >>570
途中の盗聴を気にしているのならsslとかを使った方が良いかも。 サーバやクライアント自身に相手のIPやPort番号を知られたくないわけじゃないよね。
- 572 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 16:28:02 ]
- 鯖--倉A
| 倉B 接続状態が鯖経由なら、暗号化うんぬんの前に、 相手のIP,Portを教える必要はない。 鯖 倉A / 倉B 接続状態が直結なら、 何をしようと相手のIP,Portが分かる。
- 573 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 17:25:15 ]
- >>570
Radiusで払い出せバーカw
- 574 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 18:27:48 ]
- マジ訳若布
ググりまくったけど訳若芽 初期化方法わかんね
- 575 名前:デフォルトの名無しさん [2007/12/04(火) 23:01:27 ]
- >>570
変なポートでなければたいした問題ではないだろ openSSlとか使い切れなかったら IEコンポ経由でアクセスすると楽だよ
- 576 名前:デフォルトの名無しさん [2007/12/04(火) 23:07:44 ]
- ごめん,質問
PROXYの情報取りたいんだけど最適な方法は? レジストリに書かれている方でなく PACファイル等のスクリプトの方 IEコンポかMFC?(.NET) できたら WIN APIが助かる
- 577 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 09:06:14 ]
- IEだったら↓に自動構成スクリプトのアドレスが入ってる
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\AutoConfigURL 後は普通に読めばいいんでないの
- 578 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 16:42:41 ]
- ProxyServerは?
- 579 名前:570 mailto:sage [2007/12/05(水) 21:43:43 ]
- 返答遅くなってすみません。
また、いろいろアドバイスしていただきありがとうございます。 SSlですが、自分のCGI参考書ではグラフィックカウンターを作る説明しかなく、 これでどう暗号化するか分かりません。 RadiusもWikipediaで調べましたが、自分の頭ではチンプンカンプンでした。 ゲーム自体は、クライアント同士をP2P通信でつなげて遊ぶもので、 ipとport番号のやり取りのマッチング部分だけ、webサーバ上の cgiで、C/Sで行います。 p2p通信で、しかも、マッチングにCGIを使うので、クライアントにも、 webサーバにもIPやport番号は知られるのは当然なんですが、 よく「iPとport番号は知られるとまずい」とか、 「ネットゲームの通信は暗号化しとけ」みたいなことが書かれるので、 webサーバから相手のIPとport番号の受け渡しのさい、暗号化する必要が あるんじゃないかと思ったのです。 開放するport番号はプライベートport番号の間でなら各クライアントが 好きな番号を開放するようになっているので、49151番以前のportは 開くことはありません。>>575さんがいうように、 IPとport番号をそのまま受け渡しても、心配する必要は無いんでしょうか? なんか文章が変ですみません。
- 580 名前:デフォルトの名無しさん mailto:age [2007/12/05(水) 22:21:21 ]
- なんでNULLが返されるんだぁああぁぁ!!!!
ひぇぇぇぇうぇぇええ!!!! すみませんでした。 もういくら考えてもわかりません。 お願いします。この通りです!!!
- 581 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 22:38:20 ]
- SSI と SSL は違うよっ
- 582 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 23:18:57 ]
- 暗号化する価値はほとんど無いな。
その手の奴がパケットの中身を見るまでもなく、 セキュリティソフト(ファイアウォール)が警告を出したりするから 一般人にだってIPとPortが分かるぞ。
- 583 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 00:06:44 ]
- というか、誰でもそのCGIを叩いたらIP:PORTがわかるわけで、
通信路を暗号化する価値がないような。
- 584 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 09:21:22 ]
- プロクシーサーバを作るとしたら、RFCの何番読めばいいんだっけ?
- 585 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 09:40:04 ]
- つ HTTP 1.1
- 586 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 14:27:33 ]
- >>584
rfc2616
- 587 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 05:05:39 ]
- Cで分割ダウンロードってどう実装すればおk?
わざわざパケット操作まで階層下らなきゃいけないのだろうか…。
- 588 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 05:45:37 ]
- WinならwinmmのHttpQueryReauestでも使ってろタコ
それ以外の環境ならsocket一手
- 589 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 05:45:59 ]
- wininetだたorz
- 590 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 07:49:23 ]
- >>588
> それ以外の環境ならsocket一手 libhttp, libcurl, libneon, libsoup 好きなのをどうぞ
- 591 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 11:31:31 ]
- >>590
UNIXだぜ。 socketをどうすればいいのか知りたいのだ>< ん?ひょっとしてlseekが効くのか…?試してないが…。 >588 libhttpにはそんな便利なAPIがあるのか…ぐぐってみるわ。 でもどうやって実装してるんだ?かなり低階層まで降りてそうだ。
- 592 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 13:00:47 ]
- httpの分割ダウンロードってrange指定したrequest並列に投げるだけだろ…
- 593 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 22:19:25 ]
- TCPのcwndとssthreshの値をみる方法ってない?
環境はfreebsdです
- 594 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 22:49:17 ]
- >>577
あんがと。だけどスクリプトの場合 Javascriptで 条件式とか入ってる場合があるから困る。 今はsocketでデーター出してるけど 素直に、NETかIEコンポのライブラリ経由でデーター 出した方がいいんだろうか・・・
- 595 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 22:55:02 ]
- >>579
>よく「iPとport番号は知られるとまずい」とか、 >「ネットゲームの通信は暗号化しとけ」みたいなことが書かれるので、 うちは、こんな事言ってる奴が多いので実害がなくても 簡単なスクランブルかけてる。少なくともテキストが読めない程度の。
- 596 名前:デフォルトの名無しさん [2007/12/09(日) 23:17:21 ]
- できあいの物を利用したお手軽マッチングサーバー〜〜
用意する物 ■ WEBサーバー そこらのHP公開できるレンタルでOK ■ FTPクライアントライブラリ、MFC.デルファイでもOKです 1)ログイン時 自分のIDをファイル名にしたテキストファイルをFTPでアップします テキストの内容は自分のIPとポート番号です 自分のグローバルは確認君系のCGIで調べます 好みにより書き込むテキストは適当にスクランブルしましょう 2)接続時 接続したいIDの名前のテキストファイルをダウンロードします。 NotFoundの場合は「該当するIDは・・・」とか適当に出します 追記 余裕があれば UPnPで使用ポートをオープンしましょう UPnPはXML+Socketで行えばSP2のチェックマークを無視します 上級偏としてStunもありますが昨今使えませんので ゲーム程度ですとSkypeを使うのも吉です 結論 SkypeP2P使え!!
- 597 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:29:14 ]
- va_argsってスレッドセーフ?
- 598 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:41:40 ]
- 実質自動変数(引数)へのポインタという意味合いの代物だから、
スレッドセーフ。もちろん、そのまま他のスレッドに持って行ってはいけない。 で、どこがネットワークプログラミングなんだろ。
- 599 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:05:27 ]
- ポートを解放しないとできないことっていったい何なんですか?
- 600 名前:599 mailto:sage [2007/12/13(木) 00:28:07 ]
- なんか曖昧ですね。すいません。
例えば、htmlサーバーではポート80番は常に両方向解放されていて、 (他の問題がなければ)クライアントからのコネクションに成功しますよね。 クライアントのWAN→クライアント自身方向へのアクセスは許されていませんが、 サーバーにリクエストを送ることもその結果を処理しブラウザで表示することもできるわけです。 そこで質問なのですが、クライアントのWAN→クライアント自身方向への アクセス解放(ポート解放)をしないとできないことというはいったい何なのでしょうか?
- 601 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 01:29:06 ]
- >ポートを解放しないとできないこと
LAN内のPCのポートとルータのWAN側ポートが関連付けられてないから WAN側からの接続を受け付けられない
- 602 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 05:39:29 ]
- >>600
FTPのPORTモードとか
- 603 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 09:35:00 ]
- ってか自分で言ってるじゃねえか
ポートが開いてないとApatch起動しても外からアクセスできない
- 604 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 09:57:50 ]
- Apacheはサーバーなので質問の主旨とは外れます
- 605 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 10:39:33 ]
- >>600
クライアントのWAN→クライアント自身方向への接続ができない
- 606 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 16:14:08 ]
- >>601-605
TCPならクライアントへのconnectに失敗、 UDPだとsendに失敗(?)ということですか。 サンクスです。
- 607 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 18:25:34 ]
- ちげえええええええええええええええええええ
connectすんのはクライアント側だ サーバはacceptだ UDPならrecvfromだ 根本的にソケット関係のマニュアル読み直した方がいい
- 608 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 18:49:39 ]
- たぶんクライアントの定義が違うんだよ
- 609 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 18:50:56 ]
- >>607
「クライアントがWAN側からの接続を受け付けられない」ということは、 サーバーがクライアントに対してconnectするときに失敗するという意味ではないのですか?
- 610 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 18:53:38 ]
- OK。落ち着け
ネットワークプログラミングにおいて 「クライアント」は「接続しに行く側」 「サーバ」は「接続を受け付ける側」 だから
- 611 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:02:51 ]
- >>609
あなたのサーバとクライアントの定義をききたいよ
|

|