- 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/
- 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 の最初の
|

|