ネットワークプログラミング相談室 Port30 [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2014/10/31(金) 07:57:16.24ID:2NZQQB6u
主にソケットに関しての質疑応答スレッドです。

Programming UNIX Socket FAQ (日本語訳)
http://www.kt.rim.or.jp/~ksk/sock-faq/indexj.html
Winsock Programmer's FAQ (日本語訳)
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/

関連リンクは>>2-10辺り
足りなかったら適当に付け足してね

前スレ
ネットワークプログラミング相談室 Port28
http://toro.2ch.net/test/read.cgi/tech/1334736934/
ネットワークプログラミング相談室 Port29
http://peace.2ch.net/test/read.cgi/tech/1351670708/

関連スレ
ネットワークプログラミング雑談
http://toro.2ch.net/test/read.cgi/tech/1235800707/
2016/09/10(土) 17:07:07.49ID:D8kzVED3
ど素人
2016/09/10(土) 17:26:03.49ID:+bPafAxM
>>301
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1412668764
2016/09/10(土) 17:42:46.18ID:ZZX/BtRf
ダウンロードしたファイルをプロはいちいちチェックしてるのでしょうか?

先輩見ててもサイトから落としたファイルのハッシュチェックなどせず、そのままインストールしています。
2016/09/10(土) 19:13:30.30ID:jtrUVOIC
>>304
ダウンロードだけに限ればチェックが必要な怪しい所からはダウンロードしません
2016/09/10(土) 20:24:05.34ID:QUVRyXDh
>>304
rpmとかyumとかがチェックしてくれる
2016/09/10(土) 20:44:35.89ID:nNi8wB7Z
リポジトリを信用するしかないから、もうyumにお任せですね。
ソースでDLするのは最近ではpostgreSQLぐらいで。それも公式サイトだし。
2016/09/11(日) 02:32:03.65ID:wOd3xxmp
>>305
そういう問題じゃなくね?
2016/09/11(日) 08:20:01.34ID:vN9TAtb9
>>308
> 先輩見ててもサイトから落としたファイルのハッシュチェックなどせず
2016/09/11(日) 08:55:49.82ID:TPMGBr6r
あのねここはプログラミングのスレなの
もういい加減にしてくれない?
2016/09/11(日) 13:16:55.57ID:wOd3xxmp
>>309
ハッシュのチェックをするのは、出自が怪しいかどうかじゃなくて、
途中で壊れてないかを確認するためだろう?
2016/09/11(日) 13:26:49.40ID:am5koIB6
>>311
そのどっちかではなく両方

元の>>304には「そのままインストールしています。」とあるから実行ファイルが前提
壊れてるならそもそもチェックなんてしなくても実行不可
2016/09/11(日) 13:35:30.56ID:rai5Q0zE
だよね

ハッシュ値と一緒にダウンロードのリンクが貼ってあるところも普通なのに(というより、別の手段やミラーがある方が稀)
それとmd5やshaが一緒に並べてあるのは、ダウンロード時の化け等への対処

意図的に改ざんされた、得体のしれないファイルを落とすってのは別の話
もちろん、それも意味があるけれど
そんなんだったら、「転載禁止」として、自サイトからのダウンロードされたものだけを保証、とすれば済む


もちろん、意図的な改ざんへの対処の意味もあるし、
単なるデータ化け判定は、圧縮展開ルーチンに入っていたりするから不要なケースも多い
2016/09/11(日) 15:15:36.57ID:wOd3xxmp
>>312
もとの話につっこんだんじゃなくて、>>305につっこんだんだけどなあ。
まあいいや。
2016/09/11(日) 15:46:09.26ID:5fMJ9BrK
まぁまぁ用心しましょうw
2016/09/11(日) 18:54:51.04ID:am5koIB6
>>314
元の>>304に突っ込んだ>>305に突っ込んでんだからその前提ぶっ壊すのはアスペのみ
2016/09/11(日) 19:39:02.18ID:wOd3xxmp
論破されると、相手をアスペだといい出すのは、2chではいつものことだが、
>>316はアスペの意味を分かってるんだろうか。
2016/09/11(日) 20:28:45.45ID:HqXnTE3B
縦横比
2016/09/11(日) 20:34:29.72ID:am5koIB6
>>317
>>305につっこんだ」
→いや>>305>>304の前提引き継いでるから
こういう流れが分からない奴
これがアスペの全てというわけでもないが一部
2016/09/12(月) 13:42:16.84ID:uadDl1bC
くわしいひとがいるみたいなので聴くけど
DVD Fab とか HD Decrypter って無料の落として使っても安全?
インターネット繋がってないと起動しないし
実際通信しまくってるんだが抜かれたりしない?
2016/09/12(月) 13:50:40.62ID:B2i+6GC8
さすがにスレチかと。
2016/09/12(月) 14:33:01.02ID:WjBwz+Qy
>>320
それハッシュ関係無い
そういうのは自分で調べるもんだし自己責任の範疇
2016/09/14(水) 09:39:23.68ID:tzWcX+nZ
TCPで書いたデータが相手に届いたか知る方法ってある?
Ackが届くまで待つみたいな感じで
2016/09/14(水) 09:59:45.98ID:zKQD1zr/
ある
ACKのようなものを返すプロトコルにすればいい
2016/09/14(水) 13:30:34.44ID:3QkaqJUB
相手のソケットライブラリには届いていても
アプリがrecvしたかはわからないし失敗する可能性もあるから
アプリレベルでも応答確認した方がいいってこと?そうかもね
2016/09/14(水) 13:43:16.71ID:g3+hWH3w
アプリに届いたかが重要なデータならアプリレベルで応答確認するしかないよ
2016/09/14(水) 14:07:02.28ID:02/FhbRP
SMPT や POP3 とかそう(プロトコルで応答を返すルール)だよね
2016/09/14(水) 15:35:16.64ID:JEExw83M
貰いましたって返してもらうしかないよね。
2016/09/16(金) 11:01:23.63ID:aNdiMffG
せやなー(眠)
2016/09/16(金) 11:34:26.20ID:jw8GQ87J
そういえば
ソケットレベルで相手に届いたかどうか知る方法ってあったっけ?
実はないよね
2016/09/16(金) 12:55:25.56ID:YnaEO14a
何を気にしてる?TCPでコネクトできたら届いてるでしょ
2016/09/16(金) 14:03:45.22ID:Gz930khe
なのよねw
send()が成功したら、やったと思うしかない。
てかそれ以下ってあるんだっけ?
rawソケとか使った事ないっす。
333デフォルトの名無しさん
垢版 |
2016/09/16(金) 14:24:09.41ID:q39qStvN
ペチパーは黙ってろ
2016/09/16(金) 14:57:06.37ID:QQ/tCEl2
馬鹿につける薬はないw
335デフォルトの名無しさん
垢版 |
2016/10/19(水) 20:28:02.76ID:UPd0NLz2
サーバー側の指定ディレクトリにあるファイル一覧をクライアント側で表示したいのですがヒントください!

サーバー
http://ideone.com/fPQ4mZ

クライアント
http://ideone.com/QZQMXY

サーバーではsizeof(ent->d_name)分渡しているのですが、クライアントでsizeof(filename) 256byte分受け取っちゃっているのでここをどうしたら良いのか分かりません。
あらかじめどんな名前のファイルが来るのかわかっていればそのサイズ指定すれば良いと思うのですが。。。
あとサーバー側ではwhile((ent = readdir(dir)) != NULL)でループの終わりを告げれるんですが、クライアント側でソケットに流したファイル名を全て取得したあとの終わり方の告げ方が分かりません。
2016/10/19(水) 20:46:49.18ID:DfuX/LYm
能力不足
2016/10/19(水) 21:17:40.18ID:1vhlOQFQ
>>335
分割で届いたりもありえるから
データ先頭にデータサイズ格納させて
その分だけ受信するようにしないといけない

このデータ先頭の情報をヘッダと言う
情報は1つだけじゃなく複数でも自分が必要な分だけ自分で決めた構造で送る
2016/10/19(水) 21:28:30.33ID:Q8I9ZYJC
>>335
ftp プロトコル辺りを調べたらいいかも
2016/10/19(水) 22:03:42.68ID:DfuX/LYm
socketプログラミングを勉強しなさいw
2016/10/19(水) 22:24:13.75ID:DfuX/LYm
socketがよくわからずレスするやつら
341デフォルトの名無しさん
垢版 |
2016/10/19(水) 23:53:18.01ID:G0nEdUMs
>>337
>>338
できました。有難うございます
2016/10/20(木) 07:47:47.15ID:q6sk5dso
できましたw
2016/10/20(木) 08:53:58.32ID:t3tIMcAX
write 1回で送ったものは 1回のread で得られる保障はなく
複数回に分断されたりする

"1234" を write → "12" を read 続いて "34" を read
こういうことが、ごくごく当たり前に起きるから
2016/10/20(木) 09:54:55.77ID:q6sk5dso
それとストリームの終端なw
2016/10/20(木) 09:58:23.15ID:q6sk5dso
APレベルで送受信するときはヘッダをつけてシーケンス番号を送って、肯定応答を返すのも常識だろう。
今回は不要だが。
2016/10/20(木) 12:49:41.14ID:8pLXigSN
どんな常識だよ w
TCP 上でそんなことやるアホにはなりたくないわ
2016/10/20(木) 13:10:53.55ID:T4FOXPZS
応答で正否返すのは当然だがシーケンス番号は普通要らない気が。
非同期なプロトコルにするぐらいならコネクション増やす
2016/10/20(木) 13:11:23.77ID:9ULbv0m/
順番が入れ替わるなら別だけどねw
2016/10/20(木) 13:15:20.78ID:q6sk5dso
アホにはなりたくないわ
2016/10/20(木) 13:17:12.79ID:w5wq1yEm
むしろシーケンス番号つけて順番どうりに送るのはtcpの役割でしょ
2016/10/20(木) 13:19:07.93ID:q6sk5dso
TCPとsocketの区別がつかないアホ>>346
2016/10/20(木) 13:28:48.79ID:AB8Qragb
TCP上でアプリレベルの到達確認するのは特別な場合のみだな
2016/10/20(木) 13:31:40.96ID:q6sk5dso
おまえの作ったプログラムを教えてくれ
2016/10/20(木) 13:36:49.71ID:AB8Qragb
本当にクリティカルな場面ではアプリレベルの到達確認さえも役に立たない場合さえあるし
2016/10/20(木) 13:37:39.37ID:RRArEuwP
同期通信なら、到達確認というか応答受信は入れるな。
send->recv->send->recv->...が基本。
破壊的な何か(データベースに登録したり、ファイルを作ったり削除したり)はrecvがトリガーになることが多い。
2016/10/20(木) 13:40:33.61ID:AB8Qragb
まあ>>335のケースならヘッダもシーケンス番号も到達確認も必要ないな
送信側でデリミタ付けて受信側が対応すれば良い
2016/10/20(木) 14:00:54.08ID:q6sk5dso
>>354
負荷試験って知ってる?知らないよなw
2016/10/20(木) 14:02:17.07ID:q6sk5dso
>>356
>>345
2016/10/20(木) 14:09:20.32ID:9ULbv0m/
出てけ 馬鹿が
2016/10/20(木) 14:14:11.02ID:AB8Qragb
>>357
悪いけどお前のレスからはニワカ臭しかしないんだわ
自慢じゃないけどこっちは通信絡みの設計しだしてから言うのが恥ずかしいくらいの年月経てるから
負荷試験?当たり前だろwwwそれをドヤ顔で言う時点であーあーあのタイプかってなるんだわ
2016/10/20(木) 14:27:39.10ID:q6sk5dso
>>360
効いてる効いてる
362デフォルトの名無しさん
垢版 |
2016/10/20(木) 14:38:31.93ID:eJoj7htq
tcpでデータ受信失敗するときって
・コネクションが切られる
・コネクションが維持されたままいつまで経っても続きのデータが来ない
だけじゃないんですか
後者はアプリ側でタイムアウト時間が不明なときどう判断すりゃええの
2016/10/20(木) 14:41:22.25ID:q6sk5dso
すばらしい回答を期待します
2016/10/20(木) 14:54:10.72ID:aGg7Z+yH
>>362
ただデータが来ないだけなのか
相手が切断(通知が来ないような異常な切断)してるのかの判断って事でいいん?

>>363
(大口叩いておいて何も言えねぇ)
2016/10/20(木) 14:56:37.17ID:Ckzu+IfI
アプリ側ってどのことか不明確だけど
てきとうにこちら側でタイムアウトを決めて判断するしかなくね?
2016/10/20(木) 14:59:44.68ID:AB8Qragb
>>362
>後者はアプリ側でタイムアウト時間が不明なときどう判断すりゃええの
そういう場合はアプリレベルでのキープアライブをするのが定石だな
・相手(あるいはハブ)の電源が切れた
・ケーブル切れた
の様な場合はメッセージに対する到達確認だけでは検出できないし
2016/10/20(木) 15:04:53.95ID:0wn4S1sU
習作じゃなけりゃselect系(pollやlibevent)つかうしな。
元の要件からしたらHTTP扱う適当なライブラリつかうのが適当やとおもう。
2016/10/20(木) 15:07:11.79ID:q6sk5dso
>>364
それらを踏まえて回答するんだろw
2016/10/20(木) 15:13:23.35ID:7bfVuAd+
>>352
rfc-959とかrfc-2616とかrfc-5321とか特殊な例なんだ
へー、そーだったんだ
わー、びっくりだわ
2016/10/20(木) 16:01:08.13ID:c9u6xZBy
他はよく知らんがhttpのは到達確認っていうのか
サーバーからリクエストの結果は返すけど肝心のレスポンスは送りっぱなしでなんの到達確認もしないじゃん
2016/10/20(木) 16:08:11.02ID:6HLvHPyJ
実際に物(ファイルとかメールとか)をやり取りすろときの物の到達確認をするのと通信そのものの確認は別物だよなあ
2016/10/20(木) 16:11:00.96ID:0wn4S1sU
通信レベルの到達確認したところであんま意味ない。
受け手のメモリに取り込めたとしてもその後の扱いで失敗するかもしれんし
それ以上気にするなら処理トランザクション的なものになる。
2016/10/20(木) 16:21:29.63ID:7bfVuAd+
肯定応答と到達確認が同じだと思ってるバカが多過ぎ
2016/10/20(木) 16:29:00.38ID:aGg7Z+yH
人をバカ呼ばわりする前に正しく使おうな
肯定応答・確認応答
2016/10/20(木) 16:38:30.52ID:7bfVuAd+
今度は「確認応答」とか言いだしたぞ
このスレでは初出だな
2016/10/20(木) 16:39:33.14ID:aGg7Z+yH
このスレではって本気で言ってるのかw
世界狭すぎw
377デフォルトの名無しさん
垢版 |
2016/10/20(木) 16:44:32.11ID:NSBgUE2m
なんかスレを荒らしたようですみません。
tcp/ip通信をもっと勉強してから出直します
2016/10/20(木) 16:50:35.85ID:aGg7Z+yH
>>377
外野が勝手に盛り上がってるだけだから気にしなくていいよ
2016/10/20(木) 16:57:52.02ID:7bfVuAd+
>>377
気にすんな
バカどもが自爆しただけだから

本日のバカトップ3はミスリードの先頭を切ったID:8pLXigSN、
到達確認とか言いだしたID:AB8Qragb、
意味不明の戯言垂れ流してるID:aGg7Z+yHだな
2016/10/20(木) 17:08:59.81ID:eJoj7htq
>373
200と404を勘違いしてるのですねわかりますω
2016/10/20(木) 17:14:43.79ID:aGg7Z+yH
>>379
自分がしたレスを速攻忘れてるのかな?
>>373 > 到達確認
2016/10/20(木) 17:18:11.05ID:7bfVuAd+
>>381
お前バカ過ぎる
小学校低学年レベルの読解力 w
2016/10/20(木) 17:21:43.85ID:aGg7Z+yH
>>382
本題で反論できなかったら無理してレスしなくていいから
2016/10/20(木) 17:21:55.97ID:7bfVuAd+
>>380
3バカにミスリードされて本質を理解できなかった知恵遅れのID:eJoj7htqには敢闘賞を上げよう
2016/10/20(木) 17:23:09.34ID:7bfVuAd+
>>383
「言い出した」って言葉わかるかな? w
2016/10/20(木) 19:51:46.42ID:8pLXigSN
>>351
socket とか言ってるのはアホしかいないと言う現実 w
2016/10/20(木) 19:54:08.50ID:aGg7Z+yH
>>368は結局回答せずw
2016/10/20(木) 19:57:46.07ID:8pLXigSN
>>379
ミスリードとほざくなら TCP 上でシーケンス番号振ってるメジャーな例をよろしく
2016/10/20(木) 20:00:18.00ID:8pLXigSN
>>387
ひょっとしてタイムアウトとかキープアライブって理解できなかったのか?
2016/10/20(木) 20:56:13.55ID:7bfVuAd+
3バカが誤解して勝利宣言してるようだから言っとくけどID:q6sk5dsoはオレじゃないから
ID:q6sk5dsoが無回答と言って勝利宣言しないように

>>388
IMAPのtagとかsshのchannel numberかな
2016/10/20(木) 21:26:39.43ID:8pLXigSN
>>390
お前が誰かなんて知らんよ
どうでもいいし
>>365-366 で回答出てるからもう要らんだろって話だ

> IMAPのtagとかsshのchannel numberかな

IMAP の tag はまだ微妙だが ssh の channel は違うだろ
2016/10/21(金) 07:41:29.31ID:vSswAJTn
>>386
顔真っ赤だぞ
2016/10/21(金) 08:04:43.65ID:RUPp7NOt
>>392
技術系のスレでそんなことしか書けないならレスしなきゃいいのに...
2016/10/21(金) 08:51:15.49ID:usEI0+le
>>389
ん?>>389はID:q6sk5dsoなのか?
違うなら反応しなくてよくね?
それとも自演してるのを忘れて自爆?

>>390
違うなら反応しなくてよくね?
2016/10/21(金) 08:59:03.34ID:mAikUApA
>>393
おまえがいうな
2016/10/21(金) 09:40:32.75ID:ib3L8+77
>>394
3バカの上を行くバカが現れたか 支離滅裂
2016/10/21(金) 12:42:55.55ID:RUPp7NOt
>>394
>>395
2016/10/21(金) 12:53:28.46ID:L3BcdIIK
http://www.ranvis.com/articles/smart-questions.ja.html

●あなたの推測ではなく問題の症状を説明する
2016/10/21(金) 14:10:28.03ID:R+XAmQY/
2chよりもそれ系のMLが一番ですよ。
2016/10/21(金) 16:13:15.79ID:sCNwon4Y
それ系のML?
2016/10/21(金) 17:29:28.42ID:miJgnLBm
ちゃんと質問しないと相手にされない「それ系のML」
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況