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


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

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



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/


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]
相手の電源切ればいいじゃん






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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