1 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:09:04 ] 主にソケットに関しての質疑応答スレッドです。 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 辺り 足りなかったら適当に付け足してね 前スレ ネットワークプログラミング相談室 Port20 pc11.2ch.net/test/read.cgi/tech/1186418855/ 関連スレ Java ネットワークプログラミング 【教えて!】 pc11.2ch.net/test/read.cgi/tech/1086238859/
593 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:30:49 ] 質問です。 winsockで複数のスレッドから排他制御なしに同じソケットに対してsendを呼び出すと問題ありますか?
594 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:36:59 ] やってみろ、アホ
595 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:43:28 ] >>593 NTのAPIはスレッドセーフだからAPIは正しく動作するだろうけど、各スレッドの動作順が不明だから思い通りにはならないぞ。
596 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:44:49 ] やってみたけど特に問題は起こりませんでした。 たまたま問題が起きてないだけなのか、本当に問題がないのか、アホだから分かりません。
597 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:48:10 ] >>595 サンクスです。 どっちが先に呼ばれても問題はないです。
598 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:03:21 ] WinSock(TCP)で相手が最初にパスワードを送ってきて 合っていれば送信、間違っていれば切断というのをやっています パスワードをチェックして間違っていると判定したときに、 接続相手に間違ってる旨のメッセージを送った後にシャットダウンしてクローズしているのですが シャットダウンが早すぎるらしく、相手にメッセージが届く前にRCV=0になってしまいます 応急処置として1秒ほど待機させてからシャットダウンしていますが、 相手へのSENDが完了するまで待機する方法はないでしょうか?
599 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 07:29:27 ] >>597 TCPの話だよね? どちらが先に呼ばれても問題ないってどいう状況? 送信データが全て1バイト単位で意味を成す場合しか思いつかない。
600 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 07:32:20 ] write( fd, WRONG_PASSWORD) shutdown(fd, SD_WRITE) while( read(fd, buf) != 0 ) close(fd) みたいなコードで、close(fd)するときに、 相手にメッセージが届いてない事があるって話?
601 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 07:33:00 ] あ、while行の最後にセミコロン忘れた
602 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 07:38:53 ] >>599 それから察するに、数バイトまとめて送ったとしても そのデータが混ざり合う可能性があるってこと?
603 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:11:39 ] >>602 そうならないと明記されていればいいんだが 見たことないや
604 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:43:11 ] >>600 の方法で解決しないなら、相手側も疑ったほうがいいんじゃないか。 エラーのレスを受け取る側が切断かけたほうがすっきりすると思うよ。
605 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:45:41 ] >>602 APIで渡した順に送られる。混ざることはない。 複数スレッドでひとつのソケットに書き込むと、渡す順序を制御できない。
606 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 14:46:38 ] >>604 本人じゃないけど、同じことで悩んだことがあるので便乗質問 >>600 の方法って、shutdownすると「通信相手がclose関数を呼ばなくても」近いうちにreadが0返すようになるんでしょうか? エラーレスをうける側(上記でいう通信相手)が意図的にケーブルぶっこぬくこともあり得るので、通信相手のcloseを期待したくないところ。
607 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 16:31:11 ] >>602 数バイトをまとめてsendしたとしても、一度に全てを送れる保証はないから、 sendの戻り値をチェックしながらループまわすことになる。 そうするとデータが混ざり合う可能性があるんじゃないかな。
608 名前:593 mailto:sage [2008/10/07(火) 20:17:08 ] >>607 確かにそのとおりだ。 送れた部分と送れなかった部分の隙間に一方のスレッドのデータが入り込むことがありますね。 ありがとうございました。
609 名前:598 mailto:sage [2008/10/07(火) 23:06:19 ] >>600 writeとreadってのがよくわからんのですが sendとrecvみたいなものですか? fdはSocketですよね?
610 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 06:07:58 ] >606 答えはNO。というか、相手から(close/shutdownして)FINが 届く以外で、readが0を返す事はないはず。 タイムアウトを掛けたいなら、SO_RCVTIMEO設定して-1を見るとか selectで待つとか別の仕組みを混ぜる必要がある どっちにしろ、600のコードはreadのエラー処理をする必要があるけど
611 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 06:53:04 ] >609 そうだね。まあ、概念コードだから。 Winsock系とBSD系が変な感じで混ざっててゴメンよ
612 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 19:04:59 ] >>611 どうやらShutdownで読書両方とも落とすのが問題だったみたいです しかしrecvだと、実行時にスレッドがブロッキングされてしまうのです
613 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 22:38:54 ] >相手へのSENDが完了するまで待機する方法 なんでしょ? 待ちたいの?待ちたくないの?
614 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 14:40:57 ] プロトコルメソッドってどういう意味?
615 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 20:37:32 ] 文字通り
616 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 02:36:08 ] telnetなんですけど 画像とか見れるんですか? コマンドラインの操作だと聞いたことがあるんですけど テキストでの交信だけでしょうか? 画像を見るには特別な知識や技術は必要ないですか? よろしくお願いします
617 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 02:46:28 ] 困ったちゃん登場
618 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 02:52:11 ] アスキーアートを画像と思えば・・・!
619 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 03:24:26 ] banner
620 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 10:55:48 ] バイナリデータをバイナリエディタにコピーして保存 で分かってくれる相手なのかこれは
621 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 12:57:43 ] あれ? なんか mplayer -vo aa がいつの間にか変なコンソール開くようになってる…
622 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 13:27:03 ] telnetでヤフートップページや動画のyoutubeやニコニコ動画は見れますか?
623 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 13:35:26 ] ソースは見える
624 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 17:05:41 ] telnetで写真や動画は見れないですか?
625 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 17:40:55 ] 写真や動画は圧縮されていますので あなたの脳内演算でその圧縮を展開できるのなら見れるかもしれませんが
626 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 18:19:07 ] 圧縮されていないものもあるので、符号化とするべきかな。
627 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 15:23:52 ] こんちわ 多重ログイン規制のサイトに多重ログインする方法教えてください 匿名串だめでした 他になんかない?
628 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 16:06:41 ] どのサイト?
629 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 19:43:54 ] >>627 スレ違いじゃ?
630 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 20:03:19 ] >>627 です >>628 さん 気にかけてくれてくれてありがと そのサイトを教えるかはちょっと考えてみるよ >>629 自分的にはここだと思ったんですけど 他に適所があれば誘導お願いします 誘導が無い場合は引き続きこちらで解答待ちします よろしく
631 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 20:04:20 ] スレ違い。 適切なスレは自分で探せ、アホ。
632 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 20:06:25 ] それはプログラミングに関する相談? 規制を回避して多重ログインするようなプログラムを自分で開発したいからヒントをくれということ?
633 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 20:48:29 ] >>631 アホは余計だろ 死ねやカス!
634 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 21:02:32 ] >>627 そのサイトの管理者に聞けばいいよ。
635 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 21:06:15 ] マルチホームとポリシールーティングで解決
636 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 21:29:47 ] >>634 お前ほんとくだらない奴だな 死ねよ 親も喜ぶだろ
637 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 21:31:53 ] >>627 またお前か たとえ5年かけたところで無理だからやめとけ 一生かかってもできないかもしれない 株かデイトレードかそういうもんで稼ぎたいようだが 素直にアルバイトしたほうがいいぞ できないことにいつまでも固執するのは愚かなことだ
638 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 21:34:48 ] 以降スルーでOK
639 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 23:17:59 ] >>637 あと少しってところだと思うんだ 2年かけてわかったこと 自分がゴールにしていた地点は他の連中からすれば初歩の初歩 全くのド素人のレベルだったんだ がっくりきたけど 改めて次のゴール目指して頑張ってる ちょっと自分には無理かなって諦めかけてたんだけど さすがに2年間勉強した甲斐あって 今度は順調に進んでる もう少しっていうか今でもテストの結果は満足できるものになってきた でももう少しなんだ 応援ありがと^^ 多重ログインの件は解決できそうです ありがとでした
640 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 23:31:32 ] WinSock の inet_itoa はマルチバイトコードなのですがユニコード版はありませんか? なかったとしてunicode to multibyte を使えばいいのですか?
641 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 23:40:43 ] WSAAddressToStringとかWSAStringToAddressとか
642 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 23:48:26 ] GetNameInfoWでも使えば。 まあ、そーゆーAPIのW版も、あったところで、 punycode解釈してくれるわけでもないんだけどネ。
643 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 02:18:55 ] WinSockのTCPで送信側にてsendを行った後に、受信側に確実にデータが届いたことを認知するためには、 下記のように受信側から応答信号を返してもらいそれを待つべきでしょうか。 <AからBへの送信の手順> A側 B側 send --> recv データ recv <-- send 応答 上記のような手順では、AとB両方から同時に送信を行った場合、 双方でデータ受信と応答受信がごちゃまぜになり混乱を招くようにも思いますが・・・。
644 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 08:03:51 ] sendするデータと応答信号にIDつけるようにして、一致を見ればよいのでは >AとB両方から同時に送信を行った場合 キモいなあ tcpを2本使うか、それがだめなら1本の中に多重化する仕組みをいれたほうが いいと思うよ あとA,B側それぞれの状態遷移をはっきりさせとかないと そのうち発狂する予感
645 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 10:04:24 ] 送信データと送信応答の識別子をヘッダに持たせれば? コネクション一本で作れない人間が二本でなんとかなるとも思えんがね。
646 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 22:35:02 ] TCPなのにさらに応答確認するん?
647 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 22:51:59 ] は?
648 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 23:56:09 ] HTTP でも FTP でも上位レイヤーでみんなレスポンス返してるだろ!ボケがぁ
649 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 18:39:20 ] FTPにもHTTPにも643の言う意味での応答確認のレスポンスはないぜ? HTTP: c->s : データ寄越せ s->c : おらよ。[データ] c->s : ありがとうございます <= ここはないだろ FTP: c->s : データ寄越せ s->c : おらよ。 s->c(2):[データ] s->c : 終わったから。 c->s : ありがとうございます <= ここはないだろ
650 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 19:16:36 ] それマジレス?
651 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 19:23:01 ] はい
652 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 19:48:23 ] >>650 >>649 はその通りだと思うが
653 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 20:51:05 ] HTTPって応答にデータが乗ってるだけじゃねぇの? ○ >>643 send → : データ送信 recv → : 正しく受け取りました ○ HTTP c→s : データ送信(リクエスト) s→c : 正しく受け取りました(レスポンス) ってことだろ。 FTPは知らん。
654 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 20:56:15 ] >>643 では省略されてるけど、Aのsendの前にBからデータ要求があるんだろ。
655 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 20:57:53 ] >>649 なぜデータを「送る」話でGETの例を出すんだ
656 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 21:43:06 ] >>655 サーバーがデータを「送る」からだろ
657 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 22:12:24 ] >>654 何話を勝手に変えてんだよ?
658 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 22:32:50 ] >>643 出て来い!!
659 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 22:52:24 ] >>643 のどこをどう読んだら曲解するのかわけわからん
660 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 01:32:58 ] まぁ結論、TCPなんだから送れば必ず届く。
661 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 11:22:41 ] >660 そんなわけねー。 TCPならケーブル抜いても届くのかよw
662 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 12:47:29 ] >>661 おまいには失望した
663 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 13:36:54 ] 子供の屁理屈みたいw 地球崩壊しても届くのかよwみたいなw
664 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 14:14:20 ] 送れば届くというよりかは、届いたものは正しい、という方がTCPを説明するには良いような
665 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 14:41:14 ] RSTでセッションが終了した場合以外は、送れば届く。
666 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 16:53:50 ] 論理的に絶対届くって話になると 661みたいに物理的に切れたら無理だろといいたくなる気持ちもわかる 実際そうなんだからどうしようもない
667 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 17:20:55 ] エラーコード(RSTやタイムアウトなど)を調べるだけじゃダメなんだっけ?
668 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 18:16:00 ] こちらのTCP送信バッファが空になったら 相手のTCP受信バッファに届いたことは確か 相手プログラムが受け取れたか、 受け取れたとしてどのように処理したかはわからんけどね
669 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 21:26:27 ] いちいち送信バッファの内容チェックするのかよw
670 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 04:21:15 ] >>669 >>668
671 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 09:14:39 ] 送信バッファが空になったかどうかなんて、確認する術あたっけ?
672 名前:デフォルトの名無しさん [2008/10/20(月) 09:32:32 ] 教えてください Ajaxで 受けて側のサーバーをCで作っています Ajaxがら GETでデーターを取りに来るときに Keep-Alive指定なのに新たなコネクションを張ってきます この場合サーバー側ではコネクションは持続したままで よろしいのでしょうか? ブラウザ側の挙動として7個程度のコネクションでリクエストした 後に止まってしまいます。タイマーで次々とリクエストされてくるのを 期待しているのですが・・・ サーバー側では リクエストにKeep-Aliveがあると持続して 無いと、そのセッションはCloseで良いのですよね?
673 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 12:22:53 ] >>671 getsocjopt だが、バッファを監視するようなプログラミングは避けるべき
674 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 12:23:42 ] >>673 ○getsockopt
675 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 18:10:07 ] >671 SO_SNDBUFを0にしてブロッキングsendが戻ってきたとき =相手からACKが戻ってきたとき だったっけか。MSのTCP実装限定かもしらん
676 名前:643 mailto:sage [2008/10/20(月) 22:57:14 ] こんなにレスをいただいていたとは なんかすみません。 >>654 B側はデータ要求をしません。 A側からはいつデータが送られてくるかはわかりません。 B側ではA側からの接続を待ち続け、データが来たらA側に応答を返します。 A側とB側両方が同じように機能するため、受信したものが 不定期に送られてきたデータか、自分が送ったデータに対する応答かを 判別する必要があります。 B側では受信データに埋めたIDから送信データか応答かを判別して処理しますが、 A・B双方向からほぼ同時に送信をすると、どちらかで応答を認知できなくなったりします。 応答は相手へのデータ受信を確認する他、相手にデータを送ってから届くまでの 大体の時間を得るために用います。(応答受信時間も含むためあくまで目安です) 結局は設計・コードに問題がありそうなので、再度検討しなおします。 本当にありがとうございました。
677 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 23:13:13 ] >>676 >B側はデータ要求をしません >A側とB側両方が同じように機能するため どっちだよw
678 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 00:09:24 ] メッセージの送受信と処理を行うのを別スレッドにすれば、両者が同じ立場のアプリでも 大丈夫な気がするけど。
679 名前:デフォルトの名無しさん [2008/10/22(水) 12:57:02 ] 質問です。 ディスクリプタを複数bindして、そのディスクリプタを 1つのselectに入れても良いのでしょうか? Linux or Windows XP SP2
680 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:11:51 ] というかまさにそのための select じゃないん?
681 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:31:12 ] selectが保持するのはfile discripterだけじゃろ,なにが問題になると感じての質問なのかな?
682 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 03:33:15 ] >>679 poll お勧め。
683 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 03:44:34 ] epollお勧め
684 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 03:53:18 ] C:\>maki poll 'maki' は、内部コマンドまたは(ry
685 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 11:39:02 ] kqueueもお勧め
686 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 22:24:52 ] さげ
687 名前:デフォルトの名無しさん [2008/11/02(日) 02:12:39 ] WinSockでTCP通信プログラム作っているのですが 自分のプログラムが転送したデータの転送量を計測しようと思ってます。 Send関数の返り値にヘッダサイズを足せばいいと思い ヘッダサイズを色々調べてみたのですが イーサネットヘッダ 14byte FCS 4byte IP 20〜60byte TCP 20〜60byte →計 58〜138byte と、ばらついてしまうようです。 そこで質問なんですが、通信速度が表示されるP2Pソフト等は 適当な値で仮定して転送量を計測しているのでしょうか? それとも何か便利な関数があるのでしょうか?
688 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 02:43:45 ] ヘッダなんか見る必要ないよ 何考えてんの
689 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 02:46:50 ] ヘッダの大きさも含めての転送量を知りたいんでしょ。 IPより低レイヤーだと環境によって変わると思うけどな。
690 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 03:52:04 ] ACKの回数なんて普通わからんべ
691 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 07:33:14 ] ヘッダまで考慮してカウントしないのでは
692 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 11:24:46 ] 再送の回数なんて普通わからんべ
693 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 11:34:58 ] >>687 普通は実データのみに注目してヘッダなどのオーバーヘッドは無視だろう。 どうしてもヘッダを含めての転送量を知りたいなら、OSの統計機能を使うことになるかな。
694 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 13:22:14 ] UDP通信で質問します。 自分の作成したプログラムだと相手先がない場合、 sendtoの実行時に数秒間ブロックされてしまうのですが、 ping相当のコードは制御がすぐ戻ってきてブロックされないようです。 自分のコード sd = socket(AF_INET, SOCK_DGRAM, 0); sendto(sd, data data_size, 0, (struct sockaddr *)&to, sizeof(to)); ping相当のコード sd = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); setsockopt(sd, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl)); sendto(sd, data, data_size, 0, (struct sockaddr*)&to, sizeof(to)); socketに渡すオプションとsetsockoptでTTL値を 設定してる以外は変わらないと思うのですが、 どの設定がブロックに影響しているのでしょうか? 自分のプログラムでも制御をすぐ返すようにしたいのですが、 複雑になりそうなので非同期にはしたくありません。 環境はXP SP2と linuxです。
695 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 14:22:35 ] 非同期じゃないプログラムって趣味のプログラム?
696 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 14:50:04 ] >>688-693 普通はヘッダは考慮しないのですね 再送のことも考慮しだすとちょっと大変そうなので 実データのみで計測することにしました。 ありがとうございました。
697 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 14:52:45 ] >>694 名前解決やarpに時間がかかってるのかもしれないし、そこだけでは判断しかねる。 制御を直ぐに戻したいなら非同期のプログラミングは避けられないね。落ち着いてやれば難しくない。 非ブロッキングや重複I/Oを調べましょう。
698 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 15:37:03 ] これと同じ問題か soudan1.biglobe.ne.jp/qa4184217.html
699 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 17:58:20 ] とりあえずpingが通じてる間だけ通信することで回避できました。 非ブロッキングにしたい所ですが、送信バッファが 関数ローカルな箇所がいくつもあるので修正がちと大変です。
700 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 18:45:21 ] それは直したほうが楽だぞ。 C++のメンバ変数に移動させると楽だよ
701 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 21:30:52 ] 重複IOならともかく、非ブロッキングIOなら、 送信バッファが関数ローカルでもOKだと思うけど。
702 名前:700 mailto:sage [2008/11/02(日) 22:49:20 ] >>701 そうだった、socketの非ブロッキングは関数ローカルが正解だった。 重複I/Oはバッファーを保持しなくてはならない。いつも重複I/O使ってるからごっちゃになってた。すまん
703 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 19:16:06 ] あ、そうなんですか。 呼び終わったら破棄していいんですね。
704 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 12:34:07 ] VC++でwinsock2.hをインクルードすると大量の二重DEFINEエラーが出るんだけど仕様なの? BCCじゃ起きなかったのに
705 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 12:46:14 ] エスパー待ちだな
706 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 14:22:38 ] >>704 windows.h のincludeの前に #define WIN32_LEAN_AND_MEAN 後死ね。
707 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 06:30:58 ] 最近UDPのが楽なのに気付いた。 WinsockのFAQ書いた奴はヘタレ。
708 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 07:35:13 ] まあ、伝送単位が1KBとかでセキュリティとか ルータ超える考慮とかも特に必要ないとなると、 UDPが楽ではあるよね TCPはエラー発生ポイントが多くなるし。
709 名前:デフォルトの名無しさん [2008/11/18(火) 12:03:57 ] ネットワークプログラミングを始めようと思ってるんだが 入門書でお勧めなのはどれだい? ネットワーク以外のプログラミングなら自信あるぜ!
710 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 12:15:29 ] スティーヴンス本 >>3 の最初の
711 名前:709 mailto:sage [2008/11/18(火) 12:52:56 ] バカヤロー、どう考えてもビギナー向けじゃないぞ?! でもかなり評価が高いみたいだな。知識ついたら読んでみるよ で、入門書の話なんだが・・・
712 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 13:22:53 ] プログラミングに自信がある奴にビギナー向けが必要なのか?
713 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 13:31:41 ] 入門書を探してる時点でry
714 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 22:28:30 ] そういや、おいらは「インターネットを256倍使うための本」が ネットワークプログラミング事始めだったZE
715 名前:709 mailto:sage [2008/11/19(水) 01:27:04 ] >>712 DirectX使えればネットワークプログラミングができる訳でもないだろう? >>713 おまいはどうやってネットワークプログラミング覚えた? やっぱりグーグル先生に教わったほうが良いのかかなぁ >>714 Amazonでの評価は低いが、大丈夫なのか? しかし、プログラミング業界はホント書籍に恵まれないな ビギナー向けの本買い漁ろうかしら
716 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 05:31:06 ] Amazonでの評価なんかアテにするな
717 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 05:51:25 ] >>711 www.amazon.co.jp/UNIX%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80-%E9%9B%AA%E7%94%B0-%E4%BF%AE%E4%B8%80/dp/4774117544 私はこれの改定前のもので門をくぐりました。昔はネットワークバイトオーダー無視を散々に叩かれましたが、今は大丈夫。
718 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 08:21:55 ] MTU内に収まらないようなデータを一度にsendすると 複数パケットにデータが分割されて送信され、受信側で順番にrecvすると思うのですが 2種類のどちらもMTU内に収まらないサイズのデータがあったとして これらを連続してsendした場合に、 受信側でrecvした時に1種類目のケツと2種類目の頭がひっついて取れるなんてこと無いですよね?
719 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 08:28:36 ] ある。
720 名前:718 mailto:sage [2008/11/21(金) 10:17:44 ] あ、あるんですか・・・ やっぱり順序が保障されてるだけで、ひっついてとれることはあるんですね とすると、切り分けるための仕様を決めとかないとだめか・・・
721 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 11:34:07 ] tcpか? tcpはバイトストリームだから切れ目は自分で入れないとわかんないよ
722 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 11:38:35 ] あ、TCPです やっぱそうなんですね お二方ともありがとうございます。
723 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 17:53:15 ] 初心者らしい良い質問である
724 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 23:13:23 ] 自分で気がつくだけ偉い。 気がつかないで突っ走ってデバッグのときに変だ変だって騒ぐ奴よりは。
725 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 23:35:16 ] 変だ変だと騒いだ俺は死んだほうがいいんですか? ねこわかネットワークとかそこらへん一切書いてない本も多いし しかたないだろうとしか言いようがない ということにするのが大人の対応だと思います
726 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 00:11:47 ] どうやってデバッグするか?ということを考える機会にもなるし 新しい領域に入るときはある程度トライアンドエラーしたほうがいいと思う
727 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 01:19:42 ] 改行が区切りのストリームは 1文字ずつ読まないとだめあるか?
728 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 01:26:14 ] バッファにたくさん読んで、改行以降は次回のためにそのまま保持しておけばよい
729 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 02:24:40 ] というかそういうレベルで、プログラマー名乗るのがあなたの罪
730 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 02:28:39 ] 別に名乗ってないかもしれんじゃないか まぁわからんが
731 名前:709 mailto:sage [2008/11/22(土) 05:20:17 ] すまん、亀レスってレベルじゃないが>>717 thx
732 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 19:25:50 ] >>709 亀レスだが、自分はこの2冊で入門はなんとかなった。 ttp://www.amazon.co.jp/dp/4274065197 ttp://www.amazon.co.jp/dp/4797323302 で、次にWebの情報サイトを横目に見つつ、rfcとか、TCP/IP FAQとか読んだ。 >>3-7 も半分ぐらい読んでる。 詳解TCP/IPシリーズとマスタリングTCP/IPは仕事で使うなら目を通すべき。 あと、パケットキャプチャソフトを自作するって本が数冊出てるので、 パケットキャプチャして遊んだ。デバッグの効率も上がるし。
733 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 23:43:12 ] recv()一回でひとつのメッセージを取得できる保証しろって騒いでた奴いたなー
734 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 05:22:02 ] >>728 バッファ持ちまわるの面倒だから結局そういう事やらないよね。 ラッパー作る暇ないし。
735 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 09:59:38 ] 本気か?
736 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 11:26:10 ] >>734 余計に受信できてしまったらどうするの? 1byteごとにrecv? 改行区切りみたいな読んでみないと終わりが分からないデータじゃなければ、 データ長いれるとかやりようはあるけど。
737 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 11:43:22 ] >ラッパー作る暇ないし どんだけ無能なんだよ
738 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 19:48:37 ] dup2等を使って、stdioにやらせる手法はあるけどね。ブロックしても構わない用途なら。 まあ一般的だとは言いがたいけど。
739 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 21:19:42 ] 普通に受信して区切る処理はゼッタイ必要なんだから ラッパにしたほうが楽でしょ
740 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 00:06:57 ] いや、そんないつ使うか判らんもの作る暇ないって。 一時期はおれも汎用性の夢をみたがな。所詮は無駄な贅肉だよ。 ソケット関係は毎回毎回要求仕様と微妙にかみ合わなくて ラッパーなんか作るだけ無駄だと悟ったよ。
741 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 00:09:42 ] 使い捨ての軽量ラッパ作ればいいんじゃね
742 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 00:20:01 ] wrapperと汎用ライブラリがごっちゃになってない?
743 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 00:25:15 ] >>740 がどんな実装してるのか気になる 本当に1バイトずつrecvしてるのかな
744 名前:デフォルトの名無しさん [2008/11/25(火) 20:09:58 ] 大学のUNIXOSでネットワーク対戦できるC言語のプログラムを作りたいです。 何かオススメの本とかサイトはありませんか?
745 名前:デフォルトの名無しさん [2008/11/25(火) 20:19:24 ] Javaネットワークプログラミング(オライリー)っておすすめかお(´・ω・`) 読んだ事ある人いたら教えて欲しいお。
746 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 20:42:43 ] 大学のUnixマシンでネットワーク対戦リバーシつくったが、 ネットワークよりXlibに苦労した。。。
747 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 21:03:38 ] >>744 UNIX系は情報が入手困難で収集にも時間が掛かりすぎます。 結局>>745 のようにJavaとかになったりします。 最初からWindowsで考えるのがおすすめですよ。 大体1/10から1/100程度の開発時間が短縮できます。
748 名前:デフォルトの名無しさん [2008/11/25(火) 21:57:27 ] うざいな。 そんなことあたりまえでしょう?
749 名前:デフォルトの名無しさん [2008/11/26(水) 03:22:58 ] だから、素直にJavaにしとけって。Winだろうが、Unixだろうがプラットフォームごとに 勉強する必要ないぞよ。1つ覚えれば、Write once, Run anywhereだ! おまけに言語使用もそんなに難しくない。ネットワークなんかJavaでも一番わかりやすいんだから!
750 名前:デフォルトの名無しさん [2008/11/26(水) 03:24:41 ] >>745 その本はいいけど、古いよ。昔のJavaのメソッドとか書かれてるし、 今推奨じゃないのがけっこうあるよ。 でも、もんのすごく低レベルな初心者でもわかりやすく描いてあるから 一応モススメ。
751 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 03:52:03 ] >>749 え?winsock って bsdソケットとお作法が違うのですか?イベントドリブンに書くことは理解していますけれども。
752 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 13:21:49 ] ×Write once, Run anywhere ○Write once, Debug anywhere
753 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 21:34:32 ] >>751 必要なライブラリも違うし、Closeするときも関数名が違うし WSAStartup、WSACleanupなんてWinsockだけだし… そういう違いで悩みたくないならJavaのほうが良いねと言うお話
754 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 22:15:40 ] ttp://xy.yu.to/ (ここは本来のサイトではないが) この荒れまくりカオス絵チャのminiっていう部屋の 秘密スペース(枠外)への書き込みってどうやれば できるようになるのか解析して教えろ。 あと、1人の防衛プログラマーのクリアツールが強すぎて、 荒しプログラマーがことごとく全員返り討ちになってるから オマエラが面白くしてみろ。 ゲハハハごめんね
755 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:50:26 ] >>753 そんなの大した違いじゃないじゃん。 Winsockはbsdのソケットを踏襲している。 それに加えてマイクロソフトの大好きなウインドウズメッセージを使った別物のセットも含まれている ってだけのことじゃんか。 違いといえばclosesocketかcloseか、あとはアプリ起動時に一回呼ぶだけのWSAStartupと終了時に同じくWSACleanup。 こんな違いならパラダイムやアルゴリズムに差は出ない。
756 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:50:33 ] >>753 なるほど、しらべてみます。
757 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:06:46 ] >>755 winsockでは poll()もkqueue()もepoll()もreadv()もwritev()もalarm()も使えない read()/write()も(そのままでは)使えない select()はあるが、紛い物のオモチャなので本当にオモチャにしか使えない winsockで推奨されるのはI/O completion portとoverlapped I/Oの組み合わせ WSARecv()やWSASend()を使えということだ 別物だと思ったほうがすっきりする
758 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:25:26 ] ソケットの数が50を超えたりしなきゃ、 poll,kqueue,epoll,/dev/poll,overlapped ioな連中の 出番はないだろ。
759 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 02:20:47 ] >>758 select()なんかでいい程度のプログラムなら、それこそJavaでいいじゃん
760 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 04:00:31 ] Javaはバージョンごとにころころ変わるからヤダ!
761 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 11:02:37 ] >>759 その一点のみでC/C++ではなくJavaにする莫迦なんて あなただけです。
762 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 12:19:19 ] >>761 つまり移植性重視で、パフォーマンスは求めてないんでしょ? そういうケースならJavaで、というかJavaがいいんじゃないの? クライアントなら別だが、そういうケースでサーバを書くのなら C/C++なんかを選ぶ理由が俺には分からない 実際にはスレッド、シグナルハンドリング、排他制御の方法、 等々移植性の無いことだらけで、ソケットAPIだけ限定したところで 何の意味も無いと思うけど 一体どんなプログラムを仮定しているの?
763 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 12:33:16 ] 馬鹿か? パフォーマンスの時点で最後までJavaなんてありえねえよ。 移植したけりゃ#ifdefで切り分けろ。 常識だろうが。
764 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 12:41:26 ] >>763 主張が揺れまくってて意味わかんないな パフォーマンスの時点でサーバーサイドJavaがあり得ないと言い切るぐらいなら winsockでselect()/recv()/send()を選択するのはそれこそおかしいでしょ 現在のJava server VMの性能がどの程度か知って言ってるの? 俺は、C/C++を使うなといっているのではなく、 winsockでのネットワークプログラミングも大体同じだという 主張に反論してるだけなんだけど IOCPとoverlapped I/Oならプロアクターモデルになるし、全然違うでしょ?
765 名前:デフォルトの名無しさん [2008/11/27(木) 13:50:52 ] んで、結局、Cで組めばいいのかJavaで組めばいいのかどっちなんだよ! はっきりしてくれ!
766 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 14:00:36 ] Erlangに決まってるだろ。いまどき排他制御なんてダサダサなことするかよ
767 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:43:21 ] ここでいいのか分かりませんが、Unix系のマニュアルで、よく、 ・コマンド名(2) ・関数名(3) のように、(数)のような記述がありますが、これはどういう意味で しょう?
768 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:50:35 ] >>767 常識で考えれば、年齢だな お姉ちゃん(17) とか
769 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:53:53 ] セクション man 使ってないとあまり・・・
770 名前:761 mailto:sage [2008/11/27(木) 15:58:26 ] >>764 >主張が揺れまくってて 「自分に反論してくるのは世界に一人だけ」ってタイプ? >>765 どういう環境でもネットワーク絡みのプログラミングは出来るから ネットワーク以外の要素で決めれ。 >>767 >ここでいいのか分かりませんが 違うけど、態々別スレで訊き直すほどのもんじゃないから答えちゃうと man ページの章番号。 1がコマンド、2がシステムコール、3がライブラリ、4がデバイスとか 決まってる。
771 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 16:53:09 ] >>767 write ってコマンドあるよね。man write ってやると、システムコールの write(2)じゃなくて ユーザコマンドの write(1) がでてきてしまう。 システムコール調べたかったら man 2 write とか man -s 2 write とかやる
772 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 19:39:05 ] まぁいいじゃんか。JavaでもC++でも 私のためにケンカはやめて
773 名前:デフォルトの名無しさん [2008/12/02(火) 23:08:28 ] おまえらネットワークプログラミングしろよ!
774 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 23:28:06 ] 一方、774はお姉ちゃん(17) でネットワークプログラミングを楽しんだ
775 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 23:33:00 ] しばらく来ないうちにまたJAVAかCかでもめてたのかよ 答えは出てるだろ C++ これ以外ない!!!!! JAVAのできることすべてC++でできる C++でできてもJAVAにできないことはある ヴァーチャルマシンにしてもそうだ JAVAはプラットフォームを問わないってうたい文句があるけど そのJAVAとPCを介している部分の大多数はCもしくはC++で書かれている 中学生の優等生と東大、京大生を比べているようなもの 当然大学生はCとC++ わかったかアホどもw
776 名前:デフォルトの名無しさん [2008/12/02(火) 23:42:26 ] Javaネットワークプログラミング買って来た(・ω・) ネットワークの知識は多少ある程度だけど、この本はかなり簡単な文章で深く掘り下げて書いてあるNE!! ネットワークのプログラムとは別に知識もつきそうだよ(・ω・)
777 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 00:08:21 ] >>775 はたぶんSmalltalkをSmallTalkと書いたりするんだろうな まあ、頑張れ
778 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 02:46:36 ] 一方東大生はRubyを使った
779 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 04:47:28 ] マジレスすると案があったら作らせるだけ 東大にIT土木はいない
780 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 22:35:49 ] 東大生が既成の言語なんか使うわけないだろ
781 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 07:23:59 ] www.google.co.jp/search?hl=ja&q=%E6%9D%B1%E5%A4%A7++RUBY&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=on
782 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 11:11:17 ] 中学生の優等生 Java / VB / PHP 東大 Ruby 京大 Python 社会人 C/C++
783 名前:デフォルトの名無しさん [2008/12/04(木) 12:46:34 ] / ̄ ̄\ / _ノ \ | ( ●)(●) . | (__人__) 社会人っていったら、自作言語だろ・・ それが一番使いやすいだろ・・ | ` ⌒´ノ . | } . ヽ } ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \
784 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 21:12:49 ] 微妙にスレ違いかもしれませんが、 global IP を持っていて逆引きもできる host が /etc/hosts に FQDN なしで登録されていると、 gethostbyaddr や getaddrinfo で調べたときに、 /etc/hosts が優先されて FQDN が不明なことがあります。 こういう場合に DNS に直に引きにいけば良いと思うのですが、 そのあたりを簡単にやるほうほうはありますが?
785 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 21:20:01 ] echo > /etc/hosts
786 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:16:51 ] : > 785 permission denied: 785
787 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:14:35 ] >>784 /etc/nsswitch.conf の hosts: files dns を hosts: dns files にしてみたり /etc/host.conf の order hosts,bind を order bind,hosts にしてみたりとか でも逆にしない方が幸せかも
788 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 02:37:52 ] >>787 設定を変えれば DNS 優先になりそうですが、 システムの設定を変えられないユーザーもいるので、プログラム側で対処したいなと。
789 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 09:19:28 ] OSに頼れないなら自分でDNSクライアント部分を書くしかない希ガス
790 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:13:52 ] 逆にOSの設定で動作変えたいときにこんな強引なことされてると腹立つよな
791 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:48:33 ] >>788 となると res_query(3) とか自分でDNSのリゾルバ呼ぶことになるかな
792 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 19:14:59 ] なにか手抜きな方法がないかと思ったのですが、やはりそれですかねえ。 ちと頑張ってごりごりやってみます。
793 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 00:57:23 ] RTPプロトコルを勉強のために 実装してみたいのですがサンプルになりそうなものって ありますか?
794 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 01:03:29 ] 勉強のためならサンプルなんか見ずにやれやw
795 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 15:53:37 ] この辺から適当に探してみれば? ttp://www.voip-info.org/wiki-Open+Source+VOIP+Software
796 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 22:34:08 ] UDPのパケットのシーケンス制御って どうしたいいのでしょうか
797 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 22:53:44 ] 自分でシーケンス番号振って並べ替えりゃ良いだろ そんくらいも思いつかないようじゃやめとけ
798 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 23:16:56 ] >>797 まぁそうなんだけどさ 効率よく並べ替える方法が思いつかん ちょっと知恵くださいよ年末だし優しくしてくださいよ
799 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 23:21:11 ] うぜえよ低脳
800 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 05:25:07 ] 配列インデックスにすりゃO(1)でそ 並べ替える、って意味わからん
801 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 05:36:11 ] >>798 教えてやったんだから俺にお年玉くれ
802 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 10:16:59 ] >>798 FIFO でも実装したらどうだ。 それか、漢らしく「シーケンスが狂ったパケットは捨てる」とか。
803 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:15:50 ] 「XX番まで到着したよ」と通知して送りなおしてもらうんですね わかります
804 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:18:55 ] TCPでおk
805 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:36:23 ] いまどきFTPを実装するの面倒だし、HTTPでいいかなって・・・ HTTP/UDPのライブラリとかない?(できればjava)
806 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:40:32 ] 普通にTCPじゃいかんの?
807 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:51:57 ] ヘンタイですねわかります
808 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 15:05:31 ] TCPでいいんだけど、LANとか閉鎖ネットで使ったりとかでTCPの信頼性に依存する必要はないときとか。 動画ファイルとか巨大データ・ファイル・サーバからの転送とか個人で使用とか想定してみて。 HTTPとTCPとIPはレイヤーが違うから差し替えるだけ(プラガブルみたいなの)で出来そうじゃないか? 動画ストリーム用みたいな独自プロトコルを策定するのも分かるけど、そういう閉鎖ネットではプロトコルの機能に関心はなくてデータの入出力とストリームの確保だけできればいいから、結局HTTPでいいよ。
809 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 15:26:20 ] HENTAIにはTSUNAMI tsunami-udp.sourceforge.net/
810 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 16:06:46 ] FTPじゃんか。TFTPで暗号機能がプラガブルとかだとみんなハッピーなんだけど、 HTTPやFTPがある層の一つ上にセキュリティ層(アプリ層)を作って、FTP/UDP/SSLとかにすればいいかなって感じはする。 HTTPSとかはHTTP専用に実装してるけど、やっぱ今の仕様策定モデルはMVCとプラガブルでしょ。
811 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 16:32:19 ] タグ:MVC,プラガブル
812 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 23:32:43 ] HTTP にしといて UDP にしたい理由がわからん
813 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 23:40:41 ] HTTP仕様(RFC)は、アプリ(サーバ)として広く普及してるから結構いいかも
814 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 01:56:29 ] ルーター通らないんじゃなくてよ
815 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 03:23:08 ] HP見るとかなんでもない用途なら、自作するまでもなく普通にHTTP(のサーバ)使うだろ。 といって今はtsunamiみたいに広範囲向けのudpに興味あるわけでもないし。 やっぱudpは、p to p でかつ永遠に連続転送(強制流し込みw)かな。 HTTPは仕様上セッションが保障されてるから一度で転送して終わり。
816 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 03:34:54 ] UDPはいちいちconnectしなくていいという利点がある。 ルータ超えしたければ間でTCPに変換すればいいし。
817 名前:デフォルトの名無しさん [2008/12/11(木) 16:58:39 ] C言語で同じインターネット内で他のユーザーと通信するプログラムは作れないですか? writeコマンドみたいな。
818 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 17:00:17 ] >>817 writeでいいじゃん
819 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 17:00:52 ] すまん net sendと間違えた
820 名前:デフォルトの名無しさん [2008/12/11(木) 17:03:27 ] >>818 writeだといらない文字まで表示されるので嫌です。 もっと好きな文字を送る方法はないですか?
821 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 17:05:12 ] arp
822 名前:デフォルトの名無しさん [2008/12/11(木) 17:17:32 ] >>821 arpをというのを使えばできますか? 参考HPを教えてください
823 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 18:19:07 ] tcpにおける送受信で、 1. recv(or read) で一文字ずつ受信する方法 と、 2. recvでMSG_WAITALL を指定する方法 では、どちらがいいのでしょうか? 補足ですが、今作っているシステムでは、 パケットの先頭3バイトに後続データの長さを格納しています。 よって、1の方法でやる場合は、 まず3バイト受信できるまで、1バイトずつ読み込み、 その後、後続データ長分を受信できるまで1バイトずつ読み込むのようにやるつもりです。 (もっといい方法ありますか?)
824 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 18:20:56 ] net sendと同じ条件ならメールスロットに書けば
825 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 18:28:03 ] >>823 www.linux.or.jp/JM/html/LDP_man-pages/man2/recvmsg.2.html >MSG_WAITALL (Linux 2.2 以降) >このフラグは、要求した量いっぱいのデータが到着するまで、操作を停止 (block) するよう要求する。 >但し、シグナルを受信したり、(中略)した場合には、要求した量よりデータが少なくても返ることがある。 ので、MSG_WAITALLを指定したからといって安心してはいけないかと。 3. recvで必要なバイト数を指定して受信し、実際に受信したバイト数を見て 足りなければ再び recv で不足分のバイト数を指定して受信する方法 が俺のおすすめ
826 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 20:47:45 ] ネットワーク対戦でオセロ,ババ抜きなどできるC言語のプログラムを作りたいです。 オライリー以外で何かオススメの本とかサイトはありませんか?
827 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:14:43 ] ねこでもわかるネットワークでいいんじゃね? わかりやすいよ ただしTCPで送信データが分割されて受信される対策について 一切説明してないのが残念な一品です 分かってる人は問題ないんだけどね 俺は一回SENDすると1回のRCVで 全部受信できると勘違いしてたからチンダ 今となってはいい思い出です
828 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:34:40 ] せめてrecvって書こう
829 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:47:28 ] ねこはソケットについてあんまり書いてなかったからなあ
830 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:16:47 ] LAN経由で通信を確立させて、ピンポン方式でデーターを送って応答を返してもらおうと思うのですが、応答が許容待ち時間(10秒)に達したら、データ再送or通信切断どちらのほうが適切なのでしょうか。
831 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:22:58 ] TCP?UDP?
832 名前:830 mailto:sage [2008/12/17(水) 00:36:29 ] >>831 TCPです。 本来ならほんの一瞬でデータが応答がかえるはずなので、 どちらのほうがよいのかなと思いました。
833 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:41:13 ] おちつけ
834 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 02:39:08 ] 真の許容待ち時間は何秒なんだ?
835 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 07:00:27 ] TCPでデータが届いてなければ再送じゃなくてつなぐ所からやりなおしじゃね?
836 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 09:21:50 ] 再送はUDPしかありえないっすよ
837 名前:デフォルトの名無しさん [2008/12/17(水) 12:04:38 ] inetdは、標準出力関数を呼び出す毎に、パケットを送ってくれるんでしょうか? それとも、パケットに詰め込めるだけ詰め込んでから、送るんでしょうか?
838 名前:830 mailto:sage [2008/12/17(水) 22:05:07 ] >>834 ありがとうございます。 ピンポン方式なので、 そのデータがかえってこないと次が送信できないので、 10秒ぐらいかなと思い勝手に決めました。 真の許容待ち時間があるわけではありません。 >>835 836 ありがとうございました。 切断がよさそうですね。
839 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 00:20:19 ] ttp://www13.plala.or.jp/kmaeda/winc/winc.htm#NETGAME ここのネットワークゲームのプログラムをもっと丁寧に説明してあるような 本知りませんか?
840 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 19:29:41 ] sendでゲーム画面をサーバからクライアントに送信するには 引数をどう指定したらいいんだ
841 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 20:16:08 ] 送信するデータを指定
842 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 20:37:46 ] たいていの場合画面は送らない
843 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 20:54:39 ] 勘違いかもしれんが,サーバはsendで更新情報をメッセージで送って 受け取ったクライアントはその情報を元に画面を更新する 画面自体は送らないでOK?
844 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 22:32:39 ] 勘違いじゃなくてスレ違い
845 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 01:24:56 ] DNSサーバ扱ってるWebサイトで UDPパケットが分断されずに遅れる最大サイズが512Byteと書いてあるんですが、 これはUDPを使っている他のプログラムにも適用されることですか?
846 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 01:43:53 ] DNSのzoneファイルのサイズを512B以下にしろって話か
847 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 01:53:16 ] 1つのUDPパケットで運ぶことのできるデータ(「ペイロード(荷物)」という)の長さは、 下位層のIPパケットの長さの制約を受ける。(標準の)IPパケットでは、1回の送信で、 最大では65515bytes(65535bytesから、IPヘッダの最低サイズ20bytesを引いたもの) までのデータを送信することができる(IPヘッダ・オプションが付くと、さらに小さくなる)。 そのため、1つのUDPパケットで送信することのできる最大ペイロード・サイズは、 65515bytesからUDPヘッダのサイズ(8bytes)を減算した、65507bytesまでとなる。 このため、この「長さ」フィールドの値は、8(データが空の場合)〜65515となる。 なお、下位層でIPフラグメンテーションが行われてIPパケットが分割されて送信されても、 UDPで1度に送信することのできるサイズは影響を受けない。 IPパケットのフラグメンテーション(分割)や再構成(元に戻すこと)は、 IP層のレベルで行われるからである。ただしIPフラグメンテーションが禁止されていると (IPヘッダ中のDF bitがセットされていたり、ルータがフラグメント・パケットのルーティングを 禁止していたりする場合)、より小さなサイズのUDPパケットしか送信できなくなる。 www.atmarkit.co.jp/fwin2k/network/baswinlan013/baswinlan013_03.html www.atmarkit.co.jp/fwin2k/network/baswinlan010/baswinlan010_02.html
848 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 01:59:24 ] jprs.jp/tech/jp-dns-info/2003-07-10-max-number-of-dns-server.html ▼DNS サーバの最大数 DNS には、そのプロトコルの仕組み上、応答メッセージが 512byte 以内に収 まる必要があり(*1)、上位の DNS サーバに登録できる NS レコードの数には 制限があります。 (*1) TCP への fallback もありますが、ルートサーバなどの上位の DNS サー バに TCP の接続が集中すると負荷などが問題となり、UDP で問い合わせ を行う必要があります。
849 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 02:21:20 ] Windows UDP パケットサイズの最大値の既定値は 1280 バイトです。 UDP パケットのサイズを 512 バイトより大きくする場合、 UDP パケットは UDP ホスト以外のデバイス (ルーターなど) を経由して送信される必要があり、それらのデバイスの中には 512 バイトを超える UDP パケットをサポートしていないものが ある点を考慮します。すべてのデバイスおよび可能であれば そのパスの MTU に対応するように UDP パケットの最大値を設定し、 その最大値に基づいて UDP ホストを構成することをお勧めします。
850 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 05:37:51 ] >>843 そう、それであってる。スレ違いでもないし。 たとえばネトゲなんかだと、自キャラの座標を鯖が持っていて、そのキャラからの 一定座標内のキャラクタの情報(座標だったりキャラクタの種類だったり見た目に関する情報だったり)を クライアントに返却し、クライアントはそれをもとに絵を出すという感じ。 テキストデータと画像データではデータ量に相当の差ができるし、絵を送る場合は鯖の負荷も恐ろしいことになる。
851 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 05:44:27 ] いやスレ違いだろ
852 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 06:22:32 ] クラサバシステムでどういうデータをクライアントに送るべきかって相談とも取れるからここでもいいんじゃないの
853 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 09:29:01 ] 板違いじゃボケ >プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。 >ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。 >Javascript は Web 制作板、CGI は Web プログラミング板へ。 >業界談義、愚痴はプログラマ板へどうぞ。 >ゲーム関係の話題はゲーム製作板へどうぞ。 >ネタ、板とは関係の無い話題はご遠慮ください。
854 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 10:50:01 ] yahohho- yahhohho- no-bura yahho-
855 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 09:32:05 ] >>852 >クラサバシステムでどういうデータをクライアントに送るべきかって相談 「誰か設計からやって下さい」と同義だぞ、それは。
856 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 10:42:32 ] リアルタイム性を求められるネットワークプログラミングでは TCPを使うべきかUDPを使うべきかどっちが良いのでしょうか
857 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 10:49:00 ] どういうリアルタイムだ? 1日以内に届けばよいというリアルタイムもあるぞ(コンビニ売り上げ集計とかな) どの程度(頻度・量)の通信があるのか? 端末・経路のハードウェアはどの程度の性能か? とかいう要素で決まってくるものだとおもいなされ
858 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 10:54:21 ] >>857 1秒間に300000パケットを転送する程度です。
859 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 11:01:12 ] 1回の交換に必要なのが 300000パケット で 1秒周期に交換作業を行う ってことかな?
860 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 11:11:23 ] 通信する距離の問題ももちろんあるけど 1/10秒以内の間隔でデータやりとりするならUDP、それ以上の間隔なら両方作って都合いい方使えって感じ
861 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 11:14:46 ] それにしても速度が要求される通信だとテストする環境とかネックだな LANだとTCPでも速度出るし
862 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 14:39:24 ] 遅延装置を使え
863 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 15:52:07 ] 遅延装置って何ですか?
864 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 16:28:26 ] 奥歯にしこんであるスイッチを噛むんだ
865 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 16:40:23 ] それ自爆装置やw
866 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 16:41:18 ] あ、かそくそーち!のほうか
867 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 17:02:20 ] ワロタ
868 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 18:24:19 ] 悲しいアホ達でした
869 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 21:34:05 ] なんかランドセルみたいな宇宙人?を背負うと 周りの連中が遅くなるって漫画あったんだけど、 なんだっけ?周りの連中からは速くて見えない。
870 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:53:37 ] 子泣きじじいを背負えば遅くなるってのは聞いたことがある。
871 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:22:05 ] 童話のうさぎとかめにでてくるかめは宇宙船だったらしいね 時間が止まってる間に竜宮城で酒池肉林 玉手箱開けて老人になったけどあれは時間が元に戻っただけ
872 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:40:47 ] なんだその餌は 出直せ ぱくっ
873 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 11:35:58 ] 宇宙船で時間旅行したっていう話じゃなかったか
874 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 22:49:10 ] なんでウサギとカメの話に竜宮城が出てくるんだ?
875 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 23:06:16 ] てきとーなIPとポートにsendして、相手が受信しなかった場合 そのデータはどこに行きますか?
876 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 23:32:26 ] 消えます。 さらにICMPメッセージが帰ってくることがあります。
877 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:02:31 ] 誰が消して誰がICMPを送ってるんですか?
878 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:24:46 ] 1. ルータやホスト。(TCP/IPの前提) 2. その人。
879 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:32:52 ] 消えるってことは残って誰かの迷惑になるというわけでもないってことでしょうか?
880 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:40:26 ] 相手が受信しなかったときって具体的に何だ? recv/readしなかったときか? それはTCPが受信してバッファにとりあえず入れとく。
881 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:47:41 ] >>878 ええ?OSやIPのライブラリ(ソフト)じゃないですか?
882 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 01:19:33 ] TCPの場合だとコネクトした状態でsendを行ってrecvを行う前に切断してしまったケースとか UDPならrecvしなかった場合とかです
883 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 02:38:32 ] 1のような仕組みはあえて仕込まない限り知らないが、 2はアタック検知したユーザが誰だよてめえと思ってみるということかなぁと。 でも俺ならdigする。んで、80番にアクセスすることはあるけどnmapは滅多にしない
884 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 03:14:10 ] sendした以上、相手には届いている。
885 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 05:07:30 ] sendしただけでは自分のTCPスタックの中にとどまっているかもしれなくね?
886 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 20:15:46 ] バウンスしたら迷惑だろ
887 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 20:40:46 ] >>877 NET UNREACH 郵便局(ルータ)の中の人「なんだよこんな番地(ルーティング)存在しねーよ。宛先が存在しません、と…」 HOST UNREACH 郵便配達(エンドルータ)の中の人「このマンションにこんな部屋番号(mac address)存在しねーよ。宛先に届けられません、と…」 PORT UNREACH 家の人(ホスト)「『ひろゆき様へ』って…誰だよそんな奴(port)この家にいねーよ、と…」 PROTOCOL UNREACH ニホンゴワカリマセーン 他にもいろいろあるけどこんな感じ。
888 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 20:47:11 ] ローカルIP宛てのパケットを外に出しちゃったら 消えずに迷子になるから迷惑って聞いたんですけど 結局どこに行きますか?
889 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 20:50:47 ] 冥王星あたり
890 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:17:06 ] プライベートアドレスでなくても あて先が突然切断したりしてルートを見失った場合、 パケットは TTLがなくなるまでたらいまわしにされる? それとも最も近くにあったルータまで行ってそこで見なかったことにされる?
891 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:25:49 ] ルータやホストはいつでもパケットを捨てていい。 最大努力配送が期待されているだけ。 これがTCP/IPの基本的な原則。
892 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:52:27 ] IPパケットが(何かの力によって)勝手に消えて、ネットワークのせいでいつまで経っても自ネット・目的先へ届かないってことはあるけど、 そういう時はTCPは再送信が送信元にいくからいいけど、UDPはICMPで再送の通知がされるの?もしかしてもみ消し?
893 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:55:07 ] UDPだと、UDPパケットが消滅したとき、ルータが必ずICMPとか何か使って再送してねの再送要求を送信先に必ず送るんでしょうか? それとも、このパケットがちゃんと届いたかどうかもアプリの方が管理するんですか?
894 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:57:32 ] UDPは何も言わずに捨ててよい
895 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:58:34 ] UDPはアプリの方で管理
896 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:04:02 ] パケットの消失は、基本的にはルータやエンドで処理しきれず捨てられるか、寿命が尽きるかのどちらか。 sendしたパケットが相手に届いてちゃんと受けとればけば、recv使用がしなかろうが、TCPのバッファには残る。
897 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:13:26 ] 最近はファイヤーウォールももみ消すよ。 >>893 ICMPもなくなる可能性があります。 基本的に、パケットがなくしてしまってもいいから、 どんどんネットワークをつないでいくってのがInternetの設計方針。 送信保証はエンドツーエンドでやる。つまりサーバとクライアントの仕事。 なくしていいよってことを認めないと、 PC買ってきて家ですぐにつなげなくなる。 電話みたいにISPのルータでの設定が必要になってしまう。 そういうネットワークはみんな滅亡した。 自分でやるのが面倒なプログラマはTCPを使うべき。 まともな再送機構作るのはかなり難しい。
898 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:26:37 ] UDPは消える ヤバイくらい消える ローカルなネットで2台しか繋がっていないテスト環境でも消える っつーか取りこぼす
899 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:29:10 ] そりゃ送りすぎなんじゃないの?
900 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:30:39 ] でも最近では、バルクデータもUDPで送るようなソフトが出てきてるよな。 SINET等の高速回線ではそのほうがいいらしい。
901 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:33:22 ] >>900 > SINET等の高速回線ではそのほうがいいらしい。 TCP実装するくらいの実力があればね。
902 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:46:56 ] d.hatena.ne.jp/asin/4774136042
903 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 23:16:05 ] みんなクリスマスの夜だというのに饒舌だなぁ。 もういいから彼女の元に戻ってやれよ
904 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 23:53:05 ] >>901 imihumei
905 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 23:55:33 ] 状況によりけりだろうな。 SINETでもノードによっては遅延がでかいし。
906 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 03:47:52 ] UDPの方が意図通りに組める
907 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 05:00:00 ] 新規にブラウザのレンダリングエンジンを作りたいんですけど、 とりあえず何が難しいのか分からない
908 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 05:15:35 ] ですよねー
909 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 06:24:24 ] 彼女いないし
910 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 09:25:06 ] >>907 頼もしいな。
911 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 16:01:10 ] >>898 それは単に送りすぎなだけだよw 通信対戦ゲーム作る時、いろいろな環境で実験したが 時々ごっそり消える(しばらく通じなくなる)が、普段は快適。って結果だったな。 最初ネットで拾ってきたテストコードでやったらごっそり消えまくって、UDPひでえって思ったけど、 単にそのテストコードがデータ送りすぎなだけだった。
912 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 16:29:43 ] データ送りすぎもいいけど、それはOSやルータ側が処理しきれないで破棄するっていう問題なのか、それともUDPの仕様(の限界)なのかってことじゃないのか? 極端に言えば「処理できるのは1秒に1パケットだけだからそれ以外は破棄よ」ってこともありえる(例えば同期の問題とかで)。
913 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 16:33:49 ] 送りすぎってのは一回の送信で沢山送ろうとしてるだけなんでは? それならバシバシ消えると思う
914 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 20:55:05 ] ビジーループみたいなループの中で100バイトのパケットを送り続けるとかやったんでしょ? テストコードとしてはやりがちだからね。 でもこれだとポロポロ落ちるんじゃね? スリープ入れないと。