1 名前:デフォルトの名無しさん [2012/10/31(水) 17:05:08.29 ] 主にソケットに関しての質疑応答スレッドです。 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 辺り 足りなかったら適当に付け足してね 前スレ ネットワークプログラミング相談室 Port28 toro.2ch.net/test/read.cgi/tech/1334736934/ 関連スレ ネットワークプログラミング雑談 toro.2ch.net/test/read.cgi/tech/1235800707/
697 名前:デフォルトの名無しさん [2013/12/09(月) 11:16:00.76 ] 194.85.61.0/24 が糞な件
698 名前:デフォルトの名無しさん mailto:sage [2013/12/14(土) 07:43:46.72 ] >>697 class C まるごと乗っ取られてるなω
699 名前:デフォルトの名無しさん mailto:sage [2013/12/14(土) 13:03:17.94 ] rawsocketについて教えて下さい。 Windows8.1 VC12でプロミスキャスモードを利用してデスクトップアプリ(chrome)の通信をキャプチャしようとしています。 送信パケットは取れるようになったのですが、受信パケットが取得できません。 該当しそうな単語でググってはみたのですが手詰まりでして…。 見つけたサンプルプログラムをビルドしてみても同様でした。 Wiresharkではう見れているので最終的にはWinPCap使えばなんとかなるとは思うのですが、何か思い当たることがあれば御教授頂けますでしょうか。
700 名前:デフォルトの名無しさん mailto:sage [2013/12/14(土) 23:19:23.42 ] >>699 Windowsファイアウォール無効にしてみた?
701 名前:デフォルトの名無しさん mailto:sage [2013/12/14(土) 23:23:32.51 ] >>699 窓板で聞けよ
702 名前:デフォルトの名無しさん mailto:sage [2013/12/15(日) 02:33:30.70 ] >>700 それでした。 通信許可する一覧に追加したら受信パケットも取れるようになりました。 些細なことでお手間とらせました。ありがとう。
703 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 13:09:47.66 ] 誘導されてこちらに来ました 質問内容は2つです。 1.ファイルディスクリプタをselectに設定する際の値 2.boost がコンパイルエラー 1.ファイルディスクリプタをselectに設定する際の値 select の第1引数であるnfds の値ですが、いくつかのソケットの値をorで計算した値 を放り込もうと思っています。ソケットの値+1にはなりませんが、 そんなに違わない数字になるので良いと思っていますが、 なにか大きな弊害等ありますでしょうか? 2.boost がコンパイルエラー gcc 4.3 を使っています。 boost を利用したくて、ソースをzipでダウンロードし、b2でコンパイルすると # error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS" というエラーが出ます。 調べてもなかなかそれらしい対応策がみあたりません。 なにかアドバイスがあれば宜しくお願いします。
704 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 15:12:11.40 ] >>703 > 1.ファイルディスクリプタをselectに設定する際の値 man selectしろアホ > 2.boost がコンパイルエラー スレ違いじゃボケ
705 名前:703 mailto:sage [2014/01/15(水) 15:14:44.10 ] >>704 ? だから、man select いわくSOCKET + 1 だけど、少しだけ大きいことが大きな問題になるの? って質問なんだけど? 2.に関して誘導してもらえると助かります。
706 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 15:16:27.42 ] >>703 「ソケット select nfds」でググるとトップに「select(2)の第一引数にディスクリプタの最大値を渡すのは間違い?」という ページがヒットするんだが、当然ここは読んだんだろうな?
707 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 15:21:08.70 ] >>705 > だから、man select いわくSOCKET + 1 だけど、少しだけ大きいことが大きな問題になるの? > って質問なんだけど? しるかボケ 心配ならソース読め > 2.に関して誘導してもらえると助かります。 この板のスレ一覧をboostで検索することも思いつかないのか
708 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 15:24:54.82 ] >>706 そのページのリンク先のMicrosoftのページには > nfds [in] > Ignored. The nfds parameter is included only for compatibility with Berkeley sockets. って書かれてるね。
709 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 15:31:06.41 ] manでmax(all fds)+1を渡せって書かれてるのに、なんでそれに従いたくないの?
710 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 15:52:33.56 ] >>707 知らないならノイズが増えるだけだから回答を差し控えようよ
711 名前:703 mailto:sage [2014/01/15(水) 16:13:14.75 ] >>706 おおおおお 私はあなたを愛してる ちょびっと感動。
712 名前:703 mailto:sage [2014/01/15(水) 16:18:14.90 ] >>708 うむむ この悩み多き子羊に悩みをふやすとは。 実は、Windowsベースで開発するか、Linuxベースで開発するか、JavaなのかC++なのか 悩み多き状態でありまするです。 bdb を別の目的で使っているのでなんとなく感動ですが、 変にブロッキングされないのであれば、どーーーんと大きな値をってやつですかね?
713 名前:703 mailto:sage [2014/01/15(水) 16:21:29.31 ] >>709 非常に単純なコーディングの問題 大して適当な大きな値で問題なさそげなのに、なぜnfds + 1 なんだろうか?、と #死んでもタイムアウトは使わんポリシーは維持しております四 この場合、fdsの値を計算で出すにしろ、もうっちっと適当な値でも問題ないのでは?と そうするとコードが非常にシンプルになりまする
714 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 16:43:20.13 ] そんな手抜きコードでシンプルとかお前終わってるよ
715 名前:703 mailto:sage [2014/01/15(水) 16:47:38.37 ] >>714 終わってるかもねぇ ただ、最大値+1で無くとも動くのになぜ、最大値+1なのかに疑問が生じたから、とだけ言っておこう
716 名前:703 mailto:sage [2014/01/15(水) 16:49:20.70 ] >>710 ノイズにしなければよいかと思います。 >>707 に ttp://mattn.kaoriya.net/software/lang/c/20090114140035.htm を読んだ感想を一言だけ言わせればよいのでは?と思う次第です。
717 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 17:01:03.05 ] >>713 そんなところを悩みどころにしてるようじゃ、まともなプログラムなんて到底書けないから 仕様通りに書いても大して難しいコードにならないのに
718 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 18:16:58.47 ] >>715 > ただ、最大値+1で無くとも動くのになぜ、最大値+1なのかに疑問が生じたから、とだけ言っておこう だから知りたきゃコード読めば正解がわかるだろボケ
719 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 18:18:13.20 ] >>716 >>706 も707も俺だし
720 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 23:48:25.09 ] 久振りにきたら沸いてるね
721 名前:デフォルトの名無しさん mailto:sage [2014/01/27(月) 14:34:08.34 ] いつ来ても涌いてる
722 名前:デフォルトの名無しさん mailto:sage [2014/01/27(月) 21:33:39.15 ] 送信先のNICを指定したいんだけど どうしたらいいかな
723 名前:デフォルトの名無しさん mailto:sage [2014/01/27(月) 22:42:26.60 ] Linux なら SO_BINDTODEVICE 他の環境は知らん
724 名前:デフォルトの名無しさん mailto:sage [2014/01/28(火) 00:57:44.05 ] >>723 ありがとう! これは素晴らしい オレのインターフェースにSO_BINDTODEVICEしてもいいよ ていうか、いつのまにこんなオプション出来てたんだろ・・・ ソケットってどんどんオプション増えてくな
725 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 02:48:10.75 ] socatコマンドで、接続元IPアドレスを知りたいんだけど 環境変数かなんかで見れたりする?
726 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 07:49:17.49 ] >>722 奴らは街角で拉致られてタコ部屋に押し込められて強制労働させられてるのか? 自ら希望して派遣会社に登録したんじゃないのか? まずそこをハッキリして貰いたいんだが。
727 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 11:23:34.57 ] NICってそんなに恐ろしいのか
728 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 16:43:15.95 ] 確かにでかいルーターに押し込められてる NIC はタコ部屋って感じがするな (w
729 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 00:01:59.17 ] windoswにおけるネットワーク通信はすべて winsockライブラリを通して行われているの?
730 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 00:33:53.49 ] win dos (w
731 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 16:06:50.91 ] widsdomはない
732 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 16:15:30.12 ] netbios.dll は何もしないのか
733 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 16:29:44.87 ID:4dqOfNxj] winsockの勉強を始めてconnect使ってみたんだが適当なアドレス(111.111.111.111とか0.0.0.0)とか入れてみても全くSOCKET_ERRORを吐いてくれない これってこういうもんなんですかね?
734 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 16:54:51.16 ID:dvaQTbQU] UDP
735 名前:デフォルトの名無しさん [2014/04/15(火) 11:58:23.72 ID:FRZaT020] openssl
736 名前:デフォルトの名無しさん mailto:sage [2014/04/15(火) 12:32:59.42 ID:WaetxQT9] 先に進めてみればわかる
737 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 23:03:21.87 ID:gMQ/DgzW] 特定のマシンにARPパケット投げて、 ARPテーブルのMACを書き換えているのですが、 無線LANの場合、期待通りになりません。 原因わかりますでしょうか? Windowsで最新WinPcapライブラリ使って ARPパケットを投げています。 両マシンとも無線LANで同じネットワークです。 アクセスポイントの問題かな。
738 名前:デフォルトの名無しさん [2014/05/17(土) 23:13:54.36 ID:G8Lb2FJE] MAC偽装しているなら、無線区間のMAC偽装はWinPCAPではできない
739 名前:デフォルトの名無しさん mailto:sage [2014/05/19(月) 23:06:58.53 ID:8NVWe51U] >>738 なるほど、そういうことでしたか、納得。
740 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 21:05:00.89 ID:e27UFOXq] WinPcapライブラリの使い方の良い情報源はないでしょうか? できればC#から使いたい
741 名前:デフォルトの名無しさん [2014/05/21(水) 21:08:37.78 ID:v/u6M390] WinPcapNet
742 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 08:51:43.06 ID:pX1Bpa+a] ありがとう
743 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 14:27:22.26 ID:8MnQl1Rb] ここにいる人たちには初歩的なことかもしれませんが、教えてください Linuxでソケットを使ったプログラムを作っているのですが、少し大きめのデータを何個かsend,recvした後に サーバ、クライアントでcloseするとconnection reset by peerが時々出るようになりました。 closeするタイミングによってまだ残っている処理(send,recv)が取り残されているように思うのです。 サーバとクライアントでcloseするタイミングを同期する方法はありますでしょうか? よろしくお願いします
744 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 15:13:58.52 ID:pYRByoGi] >>743 通常はcloseしても送信しきる先に切られることは無いので 別のことが原因と思います
745 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 15:38:02.72 ID:8MnQl1Rb] >>744 有難う、もう少し探ってみます。
746 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 16:35:42.74 ID:ZfdboDuT] >>743 >サーバとクライアントでcloseするタイミングを同期する方法はありますでしょうか? クライアントとサーバ上のアプリケーション間通信について、 以下のケースに応じて通信の終了に関する規約(プロトコル)を決める (1) データ送信が必ず一方向のケース(例:パイプ) 送信側は任意にcloseできるが、受信側ではソケットからの 終了通知(データ長=0)を待ってからcloseしなければならない (2) 要求/応答のペアからなるトランザクションが常に同一側で発生するケース(例:HTTP/FTP/SMTP) 要求メッセージ送信側は任意にcloseできるが、応答メッセージ送信側では ソケットからの終了通知(データ長=0)を待ってからcloseしなければならない (3) データ送信要求が任意の時点かつ双方の側で発生するケース 制御メッセージとして通信終了要求(例:"QUIT")と通信終了応答(例:"OK")を定義し、 正常に通信を終了させたい時は終了要求メッセージを送信し応答を待つ 要求を受信した終了受け入れ側では応答メッセージを送信して即座にソケットをcloseする 終了要求側では応答メッセージ受信を確認してからソケットをcloseする (3)のケースは複雑な手順を踏まなければならないのだから、連動テストで問題が発生してから 解決策を悩むのではなく、上流の設計工程でアプリケーション間通信プロトコルの全体を ステートマシンとして形式的に定義し、正当性を検証しておくことが望ましい
747 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 16:56:39.59 ID:afR3dkD/] >>746 にあるとおり、アプリケーションレイヤのプロトコルを決めてないところに問題があると思う このメッセージを送信したらcloseする、このメッセージを受信したらcloseする、とか mibをダンプするコマンド(nstatとか)でTcpExtTCPAbortOnCloseがインクリメントされてたら、 >>743 の推測通り、アプリケーションがメッセージを吸い上げる前にcloseが発行されてると思う
748 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 22:16:48.00 ID:oYteh1Pa] 無線で電波が途切れた場合とかどうテストしたらいいん?
749 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 22:32:20.13 ID:ZfdboDuT] >>748 ・単体テストであれば、スタブ側で電波途切れのエラーを返す ・有線で組み通信中にケーブルを引き抜き擬似的に現象を起こす ・金属ケースや地下室などの電波を遮蔽できる環境を用意する 頭を使えば、様々なアイデアがでると思うよ
750 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 22:39:04.87 ID:D6sqOe5Q] >>748 どのレベルのプログラムの話なんだ? ドライバ?ネットワークスタック?アプリケーション?
751 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 22:49:51.34 ID:yvNnNrOK] >>748 ノートPCを持って電波が途切れる所まで離れてみる 青歯で実際にやったことあるぞww
752 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 23:30:00.41 ID:1rlrU+oI] 相手の電源切ればいいじゃん