ネットワークプログラミング相談室 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/11/12(土) 14:14:15.88ID:T7NmSzZs
データグラムでロストや順序の入れ替わりは判るけど ペイロードが壊れてるってあるの?
2016/11/12(土) 14:16:10.83ID:NsoJY3jp
休日だ、盛り上げていくかw
2016/11/12(土) 14:19:27.15ID:NsoJY3jp
>>435
なんだって壊れることはあるだろ
2016/11/12(土) 14:27:52.70ID:NsoJY3jp
どこのレイヤーの話をしてるのかは知らないがw
2016/11/12(土) 16:33:50.74ID:6wPviZ3t
壊れないものにチェックサム付けるのは無駄だろ
440デフォルトの名無しさん
垢版 |
2016/11/12(土) 18:17:21.04ID:k74syi4X
グダグダ言ってないで424にさっさと答えろよ。タコ
2016/11/12(土) 18:20:55.12ID:NsoJY3jp
ゆでダコw
2016/11/12(土) 19:00:54.08ID:LGTsOXws
>>440
いいですねその強気
一匹狼にはぴったりです
2016/11/12(土) 21:51:37.52ID:6wPviZ3t
えええ、そういう意味なの? webサーバー=httpサーバーってことなの
「WEBサーバー」って、いろんな機能が入ったサーバーの総称かと思っていた。
メールサーバーは「メールができるだけだろう」くらいにはわかっていたが、webサーバー
ってのはメールもhttpもsmtpもできるんだろうと思ってた。
2016/11/12(土) 21:57:25.21ID:NsoJY3jp
「UDP」だけでどうやってデータを送信すんだ?

This protocol provides a procedure for application programs to send
2016/11/12(土) 22:22:49.57ID:NsoJY3jp
お笑い ID:k74syi4X
446デフォルトの名無しさん
垢版 |
2016/11/13(日) 01:38:22.89ID:sNDrzqcx
>444
それはだな coapって上司しだいなの。タコな部下でも上司がしっかりしてると
会社は成り立つ。お前らみたいなタコなUDPでも上司がいちいち面倒見てくれるので
ネットワークで一応食っていけるってことさ。W
 わかった?
わかったらサッサと俺の質問に答えろ。
2016/11/13(日) 08:09:57.97ID:O7ohT7qd
まお落ち着いて鏡でも見ろ
2016/11/13(日) 09:59:52.84ID:hnH+OR8d
えええ、そういう意味なの? webサーバー=httpサーバーってことなの
「WEBサーバー」って、いろんな機能が入ったサーバーの総称かと思っていた。
メールサーバーは「メールができるだけだろう」くらいにはわかっていたが、webサーバー
ってのはメールもhttpもsmtpもできるんだろうと思ってた。
2016/11/13(日) 10:02:07.42ID:Hs3mGiDu
そうですか それはよかったですね
2016/11/13(日) 10:17:05.86ID:O7ohT7qd
笑いが取れないな
2016/11/13(日) 11:14:02.71ID:+TjQtm4n
coapってLinuxなんかが動かず、TCPを実装する余裕がないような
もっと小さなデバイスが対象でしょ? 単機能のセンサーデバイスとか。 
2016/11/13(日) 11:44:21.66ID:O7ohT7qd
気にしなくていいよ
453デフォルトの名無しさん
垢版 |
2016/11/13(日) 16:06:44.41ID:sNDrzqcx
>451
実装の問題よりもTCPはオーバーヘッドが大きいので無駄が多いからだろ。
454デフォルトの名無しさん
垢版 |
2016/11/13(日) 16:08:08.30ID:sNDrzqcx
>452
WEBサーバーの次は、掘立て小屋でも立ち上げな。W
2016/11/13(日) 16:16:50.43ID:tN1V6gFu
掘立て小屋に住むタコには言われたくない
2016/11/13(日) 16:19:43.53ID:tN1V6gFu
HTTPサーバを実装するのは結構大変、あっ「WEBサーバー」ていうのかw
2016/11/13(日) 18:21:01.64ID:sNDrzqcx
お前ら10年前からだろ。W
 俺は始めたのは3日前だものな。で既にお前らを超えてしまった。
なんか聞きたいことある?
2016/11/13(日) 19:00:46.84ID:xGnJSfDw
お前は頭悪いの?
2016/11/13(日) 20:04:19.15ID:dhGoOq8f
糖質ですね?
2016/11/13(日) 20:16:06.12ID:qAQfgf1E
ケフィアです
2016/11/13(日) 23:51:15.50ID:C/Pw/tkr
なんだっけそれw
2016/11/14(月) 01:01:51.76ID:csZc9y3a
大文字のWの人初めて見た。
2016/11/14(月) 08:32:18.50ID:eelVH17l
ワイリー「」
2016/11/14(月) 09:32:52.12ID:vBI3D4OZ
タイガーマスクW
465デフォルトの名無しさん
垢版 |
2017/01/21(土) 13:25:16.00ID:dThE4/1u
イエローデビル
466デフォルトの名無しさん
垢版 |
2017/01/21(土) 14:13:00.60ID:yR+dIRXC
memo
http://ocw.ouj.ac.jp/tv/70161041/
2017/01/21(土) 18:24:07.03ID:dThE4/1u
GPSを成立するためには相対背理論(特殊)を使わなければならない事を説明してください
2017/01/21(土) 18:29:11.40ID:lC+TYp+0
片山には無理
2017/01/21(土) 18:29:20.05ID:LFvCw0cQ
日本語をまず勉強しましょう
2017/01/22(日) 14:43:14.71ID:hBhrTyQG
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
471デフォルトの名無しさん
垢版 |
2017/02/18(土) 21:34:12.38ID:mp7nkX6n
UDPってパケットの消失や重複や順序入れ替えが起こり得るって事になってますけど、
小規模な実環境(ハブ数台を間に挟んだPC同士の通信とか)では、どれ位の頻度で
起きるものなのでしょうか?
2017/02/18(土) 21:39:19.40ID:ZQIprpWg
さあ
473471
垢版 |
2017/02/18(土) 22:19:45.24ID:mp7nkX6n
こんなの見つけた
ttp://stackoverflow.com/questions/9196791/duplicate-udp-packets-how-often-it-happens

>>472
PCからPLC相手の通信をやってて、通信するパケットに採番する訳にもいかない
状況です。
消失は許容するとして、
順序入れ替え→1秒以上前の「古い」パケットと入れ替わる訳でもなさそう
重複→定期的にPC側のポート番号を変更(クローズ→再オープン)

…で逃げれるといいなぁ。
2017/02/18(土) 22:29:38.01ID:oS5hogWf
後出し、LANなら好きにすれば
2017/02/18(土) 22:55:46.21ID:FoNa6jeI
番号ふれない云々からするとMCプロトコルの1Eか?
PLCにもよるけど 同報(受けたところへ投げ返す)をサポートしてなくて、
固定のIPとポートに送り返すしかできない奴があって
クライアント側はbind でポート番号固定するしかないん
476471
垢版 |
2017/02/18(土) 23:46:49.10ID:mp7nkX6n
予めタイムアウトゼロ秒でrecv()して読み捨てれば重複しても排除出来るか。

>>475
横河のFA-M3です。PLCに送る(PLCの)コマンドに任意の番号とかを付加出来ないん
ですよ(同社の新しめのやつだと付加出来るらしいけど)。
固定のIPとポートって事は無いです(ネットワーク関係はBSD由来だそうで)。
2017/02/18(土) 23:52:02.74ID:LrMkIvDp
>>476
ここでやれ

シーケンサ・PLCラダー総合スレ 10台目 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/denki/1467981285/
2017/02/19(日) 01:17:08.54ID:dlgmZ6LH
UDPは、自ホスト以外で使わない方がいいと思う。
自ホスト内ならわりと便利だし
479デフォルトの名無しさん
垢版 |
2017/02/19(日) 02:44:43.42ID:XX8i9HS3
>>471
あまりにも様々な条件が絡むので誰も答えられないし誰も保証してくれません
送信側、ハブ、受信側のどこでもパケット落ちが発生し得ます
それがIPプロトコルというものです
そもそもEthernetは100%伝送を保証していません
2017/02/19(日) 04:54:42.36ID:xm9DrbVO
捨てられるのはいいが順序が入れ替わるのは困るなぁ
481471
垢版 |
2017/02/19(日) 13:16:31.16ID:h4kLoEtr
>>478
自ホスト内だと、自ホスト内でCPUその他のリソースの奪い合いになり、
結果としてリミッタとして働くのも利点ですね。

>>480
順序が保証されない事を積極的に利用したネットワークスタックがあったら
やだなぁw
2017/02/19(日) 13:27:53.47ID:OCD4RtCb
いいかげんにうつれ
2017/02/20(月) 08:57:00.26ID:0EDg44av
ウインドーズとリナックスで動くCで書くネットワークアプリは
マクロでwinsockとsocketを場合わけするのが普通ですか?
なんで共通じゃないんですか?
2つ覚えないといけないから大変じゃないですか?
上の3つの質問をします。
よろしくお願いします。
2017/02/20(月) 09:39:37.47ID:aWzwD2VT
cygwin使えば?
2017/02/20(月) 10:28:44.52ID:d1fFRm2F
知るかぼけ
486デフォルトの名無しさん
垢版 |
2017/02/20(月) 13:28:52.43ID:G8q97eOS
>>483
俺は#ifdefで場合分けするけど
BSDソケット関数の範囲で使うなら全然大変じゃないよ
2017/02/20(月) 13:46:53.43ID:+2iGAD1y
selectするのかアホ
488デフォルトの名無しさん
垢版 |
2017/02/20(月) 13:48:15.60ID:G8q97eOS
>>487
お前誰に言ってるの?
489デフォルトの名無しさん
垢版 |
2017/02/20(月) 13:59:03.21ID:G8q97eOS
select使うのがアホと言ってるやつがアホなんだよなあ
知ったか初心者なんだから黙ってればいいのに
WindowsとLinuxでソースを共通化する必要がある場合で一番簡単なのがselect使う方法
沢山のコネクション扱う場合でもスレッドをうまく使えば非同期使うより効率よく対応できる
2017/02/20(月) 14:19:44.98ID:zqMU/kRW
大筋では似通ってるけどスレッドもOSの方言がきついな
491デフォルトの名無しさん
垢版 |
2017/02/20(月) 14:22:11.12ID:G8q97eOS
例えばC++ならスレッドの扱い標準化されてるやん
2017/02/20(月) 14:27:39.79ID:HW6gt6JA
効いてるな
2017/02/20(月) 20:44:10.01ID:gSsgH+Ui
>>476
http://rio2016.2ch.net/test/read.cgi/denki/1467981285/989
2017/05/15(月) 22:34:10.39ID:ExTZP3H0
質問です。
shutdownとcloseについて色々調べていたところ
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13105844663
ここで回答者が(意訳すると)
「socketをcloseせず、shutdownしただけなら、再度セッション張りなおすこともできるよ」
と答えているのですが、いくら調べてもその方法が見つけられません。

やり方が分かる方は、教えていただけると助かります。

(例えば)httpサーバを作る時に、クライアントのshutdown(s, SHUT_WR)をサーバで検知してリクエストの区切りを検知。
返送とshutdown(s, SHUT_RD);でレスポンスの終了位置を検知させる。
なんてことができるといいなぁと考えています。
2017/05/15(月) 22:57:11.38ID:1Vkn93UM
TCP/IPを勉強した?
2017/05/15(月) 23:32:39.77ID:1Vkn93UM
サーバのコードを書き換えればできるけどという話
2017/05/16(火) 11:29:08.72ID:jHwvBExt
セッションジャックですねわかります
2017/05/16(火) 12:19:36.91ID:w7ydXIdV
>>494
TCPなら
socket() -- close()
connect() -- shutdown()
の関係。
shutdownした後にconnectが成功するTCP/IPのプロトコルスタックは見たことないけど。
AF_UNIXとかならうまくいくかもね。
2017/05/16(火) 12:22:42.98ID:D+JPFmPn
2017/05/16(火) 12:30:56.18ID:yvc8TTUP
>>494
その回答者がバカなだけ。>>498も同類のバカ。
そもそもcloseとshutdownはそいつらが言っているような関係ではない。
2017/05/16(火) 17:44:46.08ID:mdgaZtW4
>>500
は?どんな関係だと思ってるの?
502デフォルトの名無しさん
垢版 |
2017/05/16(火) 17:49:59.75ID:jHwvBExt
ただならぬ関係
2017/05/16(火) 21:07:05.85ID:fevd2Qwg
>>494
質問の前半と後半の関係がよくわからんが...
前半は何かいい手があるのかもしれないけどそんなことが必要になったことがないのでよくわからん

> (例えば)httpサーバを作る時に、クライアントのshutdown(s, SHUT_WR) をサーバで検知してリクエストの区切りを検知。
これは普通に read() のバイト数
= 0 で検出できる

> 返送とshutdown(s, SHUT_RD);でレスポンスの終了位置を検知させる。
サーバー側で shutdown(s, SHUT_WR) するか普通に close() すればいいだけ
shutdown(s, SHUT_RD) はあまり使う機会がない
2017/05/17(水) 13:08:44.51ID:DMUn4qm1
後半で言いたいことは、TCPって基本ストリームで切れ目が無いから
切れ目を(shutdownで)入れたいってことでしょ
普通に改行コードとか使えばいいよ。HTTPならなおのこと
2017/05/17(水) 13:19:29.54ID:m1xhRpHE
アホ
506デフォルトの名無しさん
垢版 |
2017/05/17(水) 15:20:55.39ID:O9qCgXnQ
chunko鍋
2017/05/17(水) 15:29:55.67ID:DIRzoBhi
スレのレベルが相変わらずひどい
2017/05/17(水) 23:37:34.09ID:wwiSOhwh
>>504
そういう場合はTCP_NODELAYで制御しろよ
2017/05/17(水) 23:51:58.48ID:qRRgoi7m
>>508
なにも解決しないだろ
2017/05/17(水) 23:57:03.20ID:wwiSOhwh
>>509
TCP_NODELAYが何だか知らないならそういえばいいのにw
2017/05/17(水) 23:58:22.45ID:xZ9nkaes
解説して
2017/05/18(木) 00:10:51.45ID:rwa/bO02
恥ずかしくなったか
2017/05/18(木) 01:13:33.30ID:49fY4Y35
>>510
もしかして、そのフラグ立てたらネットワーク遅延や再送が回避できるとか思ってる?
2017/05/18(木) 01:39:20.61ID:7rOU10k1
>>513
どこをどう斜めによむとそういう妄想が出てくるのかな?
2017/05/18(木) 07:21:50.23ID:M2K9zSA7
>>514
TCPのストリームがくっつく理由を理解できてない馬鹿がいるから
2017/05/18(木) 09:46:38.04ID:7rOU10k1
>>515
ああ、TCPのPSHの動作をしらないんだw
2017/05/18(木) 10:02:58.38ID:Pt9OawB6
>>516
もしかして、そのフラグ立てたらネットワーク遅延や再送が回避できるとか思ってる?
2017/05/18(木) 10:05:38.98ID:7rOU10k1
>>517
どこをどう斜めによむとそういう妄想が出てくるのかな?
どうせお前の頭の中じゃ、遅延したらバッファにたまってPSHをつけても
くっつく、この程度のバカ認識なんだろ?
2017/05/18(木) 10:45:04.86ID:tOkUo5yC
馬鹿が必死に論点を摩り替えようとして土坪にはまる
2017/05/18(木) 10:45:33.15ID:Pt9OawB6
>>518
実装次第だけど、少なくともくっつけてはいけないという意味のフラグでは無い。
で、くっつける実装はよくある
2017/05/18(木) 11:01:44.99ID:7rOU10k1
話にならんなw
"\r\n"を付けろなんていってるバカ相手だとこんなもんか。
2017/05/18(木) 11:14:00.48ID:Pt9OawB6
>>521
TCPの実装やソケットの実装触ったこと無い素人だろ?お前
妄想で話するから逃げるしか無くなるんだよ
2017/05/18(木) 11:15:21.34ID:Nl9RhneO
おまえもな
2017/05/18(木) 11:18:52.51ID:7rOU10k1
技術的な要素を何一つ書きもしないで罵倒を繰り返してるクズに言われても、
怒らせて解説を引き出そうとしている中学生にしか見えないわけでw
2017/05/18(木) 11:35:47.15ID:EM/S67GL
TCP_NODELAY、PSHでどう解決するんだ?
>(例えば)httpサーバを作る時に、クライアントのshutdown(s, SHUT_WR)をサーバで検知してリクエストの区切りを検知。
>返送とshutdown(s, SHUT_RD);でレスポンスの終了位置を検知させる。
2017/05/18(木) 11:37:39.55ID:LBhaWI8A
blocking i/oで常時readかけてれば、PSHで送られたパケットはくっつくことなくreadできるよ。
バークレィ由来のTCP socketはそうなっているはず。
実装的には、mbufなりskbuffなり、受信したパケットのそのものなり複製のチェインで
管理されているので、その通りにまとまらず複数回受信するようになっている。
winsockあたりは知らんから依存しないほうがいいけど、これに頼っている実装も多いよ。
2017/05/18(木) 11:40:24.72ID:7rOU10k1
>>525
PSHするならパケットの中身をTLVにでもすればリクエストの区切りなんて簡単に
検知するだろ馬鹿か。もっと単純な方法だってある。
ストリームを読みきったところが次のリクエストの途中かもしれない、という可能性が
一番の問題なのだから、PSHすれば丸ごと解決。
2017/05/18(木) 11:42:48.21ID:EM/S67GL
HTTPの仕様書と実装を読んだことあるの?
2017/05/18(木) 11:43:41.17ID:LBhaWI8A
どうでもいいけど、TLVならまずヘッダだけ読んでヘッダの中の長さ分読めば、
別にTCP_NODELAYなんて使わんでもいいんじゃないかい?
元の話を理解してないから適当に言ってるだけだけど。
2017/05/18(木) 11:45:18.30ID:Bcm8Uos6
httpサーバーを その実装で は色々問題ありそうだけど
俺俺プロトコルで http に似た構造の応答になってるという話なら
アリかもしれない
2017/05/18(木) 11:46:41.86ID:7rOU10k1
>>529
初心者が陥りやすい罠だなw
TCPストリームではTLVのヘッダ長分読めるとは限らないだろ。
ヘッダが読めても残りの長さ分読めるとは限らない。
2017/05/18(木) 11:47:52.60ID:EM/S67GL
馬鹿同士仲良くしろよ
2017/05/18(木) 11:49:41.93ID:EM/S67GL
無駄なこと
>(例えば)httpサーバを作る時に、クライアントのshutdown(s, SHUT_WR)をサーバで検知してリクエストの区切りを検知。
>返送とshutdown(s, SHUT_RD);でレスポンスの終了位置を検知させる。

以上
2017/05/18(木) 11:51:32.45ID:q35GIXz6
>>524 > 技術的な要素を何一つ書きもしないで罵倒を繰り返してるクズ

命中率の高いブーメランですね
2017/05/18(木) 11:56:38.07ID:LBhaWI8A
HTTPサーバでTCP_NODELAY?
QUICK/HTTP2/UDP的な実装をする話?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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