[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/04 09:14 / Filesize : 232 KB / Number-of Response : 915
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

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



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/

586 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:54:57 ]
ネットワークプログラミングってのは敷居高いよ

587 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 01:18:28 ]
だーかーらー知能障害の相手すんなって言ってるでしょうよ
どうしてそうどいつもこいつも子供なんだよw
スレ潰したいのかお前ら

588 名前:ひとりごと mailto:sage [2008/10/06(月) 01:24:07 ]
独り言。
引用 ttp://www.geocities.jp/playtown1056/program/zyoshou.htm
> さて、このテキストを読む対象となる人は、
> 1.C言語をある程度理解できる方
> 2.MicroSoft Visual C 6.0 以上をお持ちの方
ほぅ、C 言語とな。

589 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 05:48:36 ]
>グローブやバットは半分以上の人が知ってるだろうけどねwww


なんだ、自慢の息子とおいなりさんのことか
      _、_
    ヽ( ,_ノ`)ノ
   へノ   /  
     ω ノ
     ∪ >

590 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 08:19:21 ]
外人とビジネス交渉したいからといって、英語のビジネス例文集を教えてもらったは良いが
それが英語なのかスペイン語なのかわからなくて癇癪おこしている楽しいやつがいると聞いてやってきました

591 名前:デフォルトの名無しさん mailto:sage釣りだと言ってくれ [2008/10/06(月) 10:46:34 ]
ここ数日間のバカはどう見ても釣りだよな?


592 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 14:38:16 ]
釣りじゃないだろ
金が絡んで頭が逝っちゃってる

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 ]
さげ






[ 続きを読む ] / [ 携帯版 ]

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

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