主にソケットに関しての質疑応答スレッドです。
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/
ネットワークプログラミング相談室 Port30 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2014/10/31(金) 07:57:16.24ID:2NZQQB6u
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側のポート番号を変更(クローズ→再オープン)
…で逃げれるといいなぁ。
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なら好きにすれば
475デフォルトの名無しさん
2017/02/18(土) 22:55:46.21ID:FoNa6jeI 番号ふれない云々からするとMCプロトコルの1Eか?
PLCにもよるけど 同報(受けたところへ投げ返す)をサポートしてなくて、
固定のIPとポートに送り返すしかできない奴があって
クライアント側はbind でポート番号固定するしかないん
PLCにもよるけど 同報(受けたところへ投げ返す)をサポートしてなくて、
固定のIPとポートに送り返すしかできない奴があって
クライアント側はbind でポート番号固定するしかないん
476471
2017/02/18(土) 23:46:49.10ID:mp7nkX6n 予めタイムアウトゼロ秒でrecv()して読み捨てれば重複しても排除出来るか。
>>475
横河のFA-M3です。PLCに送る(PLCの)コマンドに任意の番号とかを付加出来ないん
ですよ(同社の新しめのやつだと付加出来るらしいけど)。
固定のIPとポートって事は無いです(ネットワーク関係はBSD由来だそうで)。
>>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/
ここでやれ
シーケンサ・PLCラダー総合スレ 10台目 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/denki/1467981285/
478デフォルトの名無しさん
2017/02/19(日) 01:17:08.54ID:dlgmZ6LH UDPは、自ホスト以外で使わない方がいいと思う。
自ホスト内ならわりと便利だし
自ホスト内ならわりと便利だし
479デフォルトの名無しさん
2017/02/19(日) 02:44:43.42ID:XX8i9HS3 >>471
あまりにも様々な条件が絡むので誰も答えられないし誰も保証してくれません
送信側、ハブ、受信側のどこでもパケット落ちが発生し得ます
それがIPプロトコルというものです
そもそもEthernetは100%伝送を保証していません
あまりにも様々な条件が絡むので誰も答えられないし誰も保証してくれません
送信側、ハブ、受信側のどこでもパケット落ちが発生し得ます
それがIPプロトコルというものです
そもそもEthernetは100%伝送を保証していません
480デフォルトの名無しさん
2017/02/19(日) 04:54:42.36ID:xm9DrbVO 捨てられるのはいいが順序が入れ替わるのは困るなぁ
481471
2017/02/19(日) 13:16:31.16ID:h4kLoEtr2017/02/19(日) 13:27:53.47ID:OCD4RtCb
いいかげんにうつれ
483デフォルトの名無しさん
2017/02/20(月) 08:57:00.26ID:0EDg44av ウインドーズとリナックスで動くCで書くネットワークアプリは
マクロでwinsockとsocketを場合わけするのが普通ですか?
なんで共通じゃないんですか?
2つ覚えないといけないから大変じゃないですか?
上の3つの質問をします。
よろしくお願いします。
マクロでwinsockとsocketを場合わけするのが普通ですか?
なんで共通じゃないんですか?
2つ覚えないといけないから大変じゃないですか?
上の3つの質問をします。
よろしくお願いします。
484デフォルトの名無しさん
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:G8q97eOS2017/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使う方法
沢山のコネクション扱う場合でもスレッドをうまく使えば非同期使うより効率よく対応できる
知ったか初心者なんだから黙ってればいいのに
WindowsとLinuxでソースを共通化する必要がある場合で一番簡単なのがselect使う方法
沢山のコネクション扱う場合でもスレッドをうまく使えば非同期使うより効率よく対応できる
490デフォルトの名無しさん
2017/02/20(月) 14:19:44.98ID:zqMU/kRW 大筋では似通ってるけどスレッドもOSの方言がきついな
491デフォルトの名無しさん
2017/02/20(月) 14:22:11.12ID:G8q97eOS 例えばC++ならスレッドの扱い標準化されてるやん
492デフォルトの名無しさん
2017/02/20(月) 14:27:39.79ID:HW6gt6JA 効いてるな
493デフォルトの名無しさん
2017/02/20(月) 20:44:10.01ID:gSsgH+Ui494デフォルトの名無しさん
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);でレスポンスの終了位置を検知させる。
なんてことができるといいなぁと考えています。
shutdownとcloseについて色々調べていたところ
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13105844663
ここで回答者が(意訳すると)
「socketをcloseせず、shutdownしただけなら、再度セッション張りなおすこともできるよ」
と答えているのですが、いくら調べてもその方法が見つけられません。
やり方が分かる方は、教えていただけると助かります。
(例えば)httpサーバを作る時に、クライアントのshutdown(s, SHUT_WR)をサーバで検知してリクエストの区切りを検知。
返送とshutdown(s, SHUT_RD);でレスポンスの終了位置を検知させる。
なんてことができるといいなぁと考えています。
495デフォルトの名無しさん
2017/05/15(月) 22:57:11.38ID:1Vkn93UM TCP/IPを勉強した?
496デフォルトの名無しさん
2017/05/15(月) 23:32:39.77ID:1Vkn93UM サーバのコードを書き換えればできるけどという話
497デフォルトの名無しさん
2017/05/16(火) 11:29:08.72ID:jHwvBExt セッションジャックですねわかります
498デフォルトの名無しさん
2017/05/16(火) 12:19:36.91ID:w7ydXIdV >>494
TCPなら
socket() -- close()
connect() -- shutdown()
の関係。
shutdownした後にconnectが成功するTCP/IPのプロトコルスタックは見たことないけど。
AF_UNIXとかならうまくいくかもね。
TCPなら
socket() -- close()
connect() -- shutdown()
の関係。
shutdownした後にconnectが成功するTCP/IPのプロトコルスタックは見たことないけど。
AF_UNIXとかならうまくいくかもね。
499デフォルトの名無しさん
2017/05/16(火) 12:22:42.98ID:D+JPFmPn 笑
500デフォルトの名無しさん
2017/05/16(火) 12:30:56.18ID:yvc8TTUP501デフォルトの名無しさん
2017/05/16(火) 17:44:46.08ID:mdgaZtW4 >>500
は?どんな関係だと思ってるの?
は?どんな関係だと思ってるの?
502デフォルトの名無しさん
2017/05/16(火) 17:49:59.75ID:jHwvBExt ただならぬ関係
503デフォルトの名無しさん
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) はあまり使う機会がない
質問の前半と後半の関係がよくわからんが...
前半は何かいい手があるのかもしれないけどそんなことが必要になったことがないのでよくわからん
> (例えば)httpサーバを作る時に、クライアントのshutdown(s, SHUT_WR) をサーバで検知してリクエストの区切りを検知。
これは普通に read() のバイト数
= 0 で検出できる
> 返送とshutdown(s, SHUT_RD);でレスポンスの終了位置を検知させる。
サーバー側で shutdown(s, SHUT_WR) するか普通に close() すればいいだけ
shutdown(s, SHUT_RD) はあまり使う機会がない
504デフォルトの名無しさん
2017/05/17(水) 13:08:44.51ID:DMUn4qm1 後半で言いたいことは、TCPって基本ストリームで切れ目が無いから
切れ目を(shutdownで)入れたいってことでしょ
普通に改行コードとか使えばいいよ。HTTPならなおのこと
切れ目を(shutdownで)入れたいってことでしょ
普通に改行コードとか使えばいいよ。HTTPならなおのこと
505デフォルトの名無しさん
2017/05/17(水) 13:19:29.54ID:m1xhRpHE アホ
506デフォルトの名無しさん
2017/05/17(水) 15:20:55.39ID:O9qCgXnQ chunko鍋
507デフォルトの名無しさん
2017/05/17(水) 15:29:55.67ID:DIRzoBhi スレのレベルが相変わらずひどい
508デフォルトの名無しさん
2017/05/17(水) 23:37:34.09ID:wwiSOhwh >>504
そういう場合はTCP_NODELAYで制御しろよ
そういう場合はTCP_NODELAYで制御しろよ
509デフォルトの名無しさん
2017/05/17(水) 23:51:58.48ID:qRRgoi7m >>508
なにも解決しないだろ
なにも解決しないだろ
510デフォルトの名無しさん
2017/05/17(水) 23:57:03.20ID:wwiSOhwh >>509
TCP_NODELAYが何だか知らないならそういえばいいのにw
TCP_NODELAYが何だか知らないならそういえばいいのにw
511デフォルトの名無しさん
2017/05/17(水) 23:58:22.45ID:xZ9nkaes 解説して
512デフォルトの名無しさん
2017/05/18(木) 00:10:51.45ID:rwa/bO02 恥ずかしくなったか
513デフォルトの名無しさん
2017/05/18(木) 01:13:33.30ID:49fY4Y35 >>510
もしかして、そのフラグ立てたらネットワーク遅延や再送が回避できるとか思ってる?
もしかして、そのフラグ立てたらネットワーク遅延や再送が回避できるとか思ってる?
514デフォルトの名無しさん
2017/05/18(木) 01:39:20.61ID:7rOU10k1 >>513
どこをどう斜めによむとそういう妄想が出てくるのかな?
どこをどう斜めによむとそういう妄想が出てくるのかな?
515デフォルトの名無しさん
2017/05/18(木) 07:21:50.23ID:M2K9zSA7 >>514
TCPのストリームがくっつく理由を理解できてない馬鹿がいるから
TCPのストリームがくっつく理由を理解できてない馬鹿がいるから
516デフォルトの名無しさん
2017/05/18(木) 09:46:38.04ID:7rOU10k1 >>515
ああ、TCPのPSHの動作をしらないんだw
ああ、TCPのPSHの動作をしらないんだw
517デフォルトの名無しさん
2017/05/18(木) 10:02:58.38ID:Pt9OawB6 >>516
もしかして、そのフラグ立てたらネットワーク遅延や再送が回避できるとか思ってる?
もしかして、そのフラグ立てたらネットワーク遅延や再送が回避できるとか思ってる?
518デフォルトの名無しさん
2017/05/18(木) 10:05:38.98ID:7rOU10k1519デフォルトの名無しさん
2017/05/18(木) 10:45:04.86ID:tOkUo5yC 馬鹿が必死に論点を摩り替えようとして土坪にはまる
520デフォルトの名無しさん
2017/05/18(木) 10:45:33.15ID:Pt9OawB6521デフォルトの名無しさん
2017/05/18(木) 11:01:44.99ID:7rOU10k1 話にならんなw
"\r\n"を付けろなんていってるバカ相手だとこんなもんか。
"\r\n"を付けろなんていってるバカ相手だとこんなもんか。
522デフォルトの名無しさん
2017/05/18(木) 11:14:00.48ID:Pt9OawB6523デフォルトの名無しさん
2017/05/18(木) 11:15:21.34ID:Nl9RhneO おまえもな
524デフォルトの名無しさん
2017/05/18(木) 11:18:52.51ID:7rOU10k1 技術的な要素を何一つ書きもしないで罵倒を繰り返してるクズに言われても、
怒らせて解説を引き出そうとしている中学生にしか見えないわけでw
怒らせて解説を引き出そうとしている中学生にしか見えないわけでw
525デフォルトの名無しさん
2017/05/18(木) 11:35:47.15ID:EM/S67GL TCP_NODELAY、PSHでどう解決するんだ?
>(例えば)httpサーバを作る時に、クライアントのshutdown(s, SHUT_WR)をサーバで検知してリクエストの区切りを検知。
>返送とshutdown(s, SHUT_RD);でレスポンスの終了位置を検知させる。
>(例えば)httpサーバを作る時に、クライアントのshutdown(s, SHUT_WR)をサーバで検知してリクエストの区切りを検知。
>返送とshutdown(s, SHUT_RD);でレスポンスの終了位置を検知させる。
526デフォルトの名無しさん
2017/05/18(木) 11:37:39.55ID:LBhaWI8A blocking i/oで常時readかけてれば、PSHで送られたパケットはくっつくことなくreadできるよ。
バークレィ由来のTCP socketはそうなっているはず。
実装的には、mbufなりskbuffなり、受信したパケットのそのものなり複製のチェインで
管理されているので、その通りにまとまらず複数回受信するようになっている。
winsockあたりは知らんから依存しないほうがいいけど、これに頼っている実装も多いよ。
バークレィ由来のTCP socketはそうなっているはず。
実装的には、mbufなりskbuffなり、受信したパケットのそのものなり複製のチェインで
管理されているので、その通りにまとまらず複数回受信するようになっている。
winsockあたりは知らんから依存しないほうがいいけど、これに頼っている実装も多いよ。
527デフォルトの名無しさん
2017/05/18(木) 11:40:24.72ID:7rOU10k1 >>525
PSHするならパケットの中身をTLVにでもすればリクエストの区切りなんて簡単に
検知するだろ馬鹿か。もっと単純な方法だってある。
ストリームを読みきったところが次のリクエストの途中かもしれない、という可能性が
一番の問題なのだから、PSHすれば丸ごと解決。
PSHするならパケットの中身をTLVにでもすればリクエストの区切りなんて簡単に
検知するだろ馬鹿か。もっと単純な方法だってある。
ストリームを読みきったところが次のリクエストの途中かもしれない、という可能性が
一番の問題なのだから、PSHすれば丸ごと解決。
528デフォルトの名無しさん
2017/05/18(木) 11:42:48.21ID:EM/S67GL HTTPの仕様書と実装を読んだことあるの?
529デフォルトの名無しさん
2017/05/18(木) 11:43:41.17ID:LBhaWI8A どうでもいいけど、TLVならまずヘッダだけ読んでヘッダの中の長さ分読めば、
別にTCP_NODELAYなんて使わんでもいいんじゃないかい?
元の話を理解してないから適当に言ってるだけだけど。
別にTCP_NODELAYなんて使わんでもいいんじゃないかい?
元の話を理解してないから適当に言ってるだけだけど。
530デフォルトの名無しさん
2017/05/18(木) 11:45:18.30ID:Bcm8Uos6 httpサーバーを その実装で は色々問題ありそうだけど
俺俺プロトコルで http に似た構造の応答になってるという話なら
アリかもしれない
俺俺プロトコルで http に似た構造の応答になってるという話なら
アリかもしれない
531デフォルトの名無しさん
2017/05/18(木) 11:46:41.86ID:7rOU10k1532デフォルトの名無しさん
2017/05/18(木) 11:47:52.60ID:EM/S67GL 馬鹿同士仲良くしろよ
533デフォルトの名無しさん
2017/05/18(木) 11:49:41.93ID:EM/S67GL 無駄なこと
>(例えば)httpサーバを作る時に、クライアントのshutdown(s, SHUT_WR)をサーバで検知してリクエストの区切りを検知。
>返送とshutdown(s, SHUT_RD);でレスポンスの終了位置を検知させる。
以上
>(例えば)httpサーバを作る時に、クライアントのshutdown(s, SHUT_WR)をサーバで検知してリクエストの区切りを検知。
>返送とshutdown(s, SHUT_RD);でレスポンスの終了位置を検知させる。
以上
534デフォルトの名無しさん
2017/05/18(木) 11:51:32.45ID:q35GIXz6535デフォルトの名無しさん
2017/05/18(木) 11:56:38.07ID:LBhaWI8A HTTPサーバでTCP_NODELAY?
QUICK/HTTP2/UDP的な実装をする話?
QUICK/HTTP2/UDP的な実装をする話?
536デフォルトの名無しさん
2017/05/18(木) 12:00:32.74ID:m/WiXwTD537デフォルトの名無しさん
2017/05/18(木) 12:01:31.14ID:7rOU10k1 >>535
そんなマシな話じゃないよ
>(例えば)httpサーバを作る時に
意図も理解できずにここだけ拾って、HTTPだぁ!\r\nが区切りでなきゃダメだ!って
思考停止してる馬鹿が騒いでいるだけの話w
そんなマシな話じゃないよ
>(例えば)httpサーバを作る時に
意図も理解できずにここだけ拾って、HTTPだぁ!\r\nが区切りでなきゃダメだ!って
思考停止してる馬鹿が騒いでいるだけの話w
538デフォルトの名無しさん
2017/05/18(木) 12:13:36.04ID:Pt9OawB6 >>537
話が理解できないのな
話が理解できないのな
539デフォルトの名無しさん
2017/05/18(木) 12:39:18.53ID:q35GIXz6 >>537
でなきゃダメなんて誰も言ってないから・・・
でなきゃダメなんて誰も言ってないから・・・
540デフォルトの名無しさん
2017/05/18(木) 12:51:07.33ID:7rOU10k1541デフォルトの名無しさん
2017/05/18(木) 12:55:19.23ID:Pt9OawB6 >>540
お前の間違いが余りにも馬鹿すぎて一斉にツッコまれただけ
お前の間違いが余りにも馬鹿すぎて一斉にツッコまれただけ
542デフォルトの名無しさん
2017/05/18(木) 13:09:36.41ID:q35GIXz6 >>540
とりあえず落ち着いて自分のレスを読み返してみろ
とりあえず落ち着いて自分のレスを読み返してみろ
543デフォルトの名無しさん
2017/05/18(木) 14:58:55.81ID:ps+tVdpC >>494
ところで、どうしたの?
ところで、どうしたの?
544デフォルトの名無しさん
2017/05/18(木) 15:16:22.61ID:6nNpr9wz C4H6
545デフォルトの名無しさん
2017/05/18(木) 18:53:08.85ID:Kw6kZtgL TCP_NODELAY、PSHでくっつかなくなるとか一番やばいタイプの勘違い
狭い実験内ではそれでうまくいくように見えることもあるだろうが、だからこそヤバイ
狭い実験内ではそれでうまくいくように見えることもあるだろうが、だからこそヤバイ
546デフォルトの名無しさん
2017/05/18(木) 21:06:44.73ID:K0KmS8r5 TCP_NODELAY も PSH もどっちかって言うとタイミングの指示だからねえ
しかも努力目標みたいなものだからそれに頼ったプログラミングとかあり得んわ
しかも努力目標みたいなものだからそれに頼ったプログラミングとかあり得んわ
547デフォルトの名無しさん
2017/05/18(木) 21:11:51.08ID:gekVxbq3 >>494にはOSの指定が無い。突っ込み所漫才でした。
548494
2017/05/22(月) 22:40:58.34ID:4aGkwFuX TCP/IPストリームに実データとして区切りを書き込まずに、
shutdownで1回分の送信の区切りを表現できるといいなぁと思ったんですけどね
(その後にcloseせずに負荷なくセッションを再構築できるっぽい書き込みだったので)
まあ無いってことですね
残念
それにしてもTCP_NODELAY使えはなかなか面白かったです
パケットが綺麗に順序よくrecvでき、割り込みも即座に解決できてる理想的な環境ならいけるかもしれませんね
私は遠慮しておきますが
16KB送信してきたのに対して、2KBでrecvしたりとか
パケットの並び替えが発生して1回のercvで2パケット分以上取得したりとか
問題ありすぎ
shutdownで1回分の送信の区切りを表現できるといいなぁと思ったんですけどね
(その後にcloseせずに負荷なくセッションを再構築できるっぽい書き込みだったので)
まあ無いってことですね
残念
それにしてもTCP_NODELAY使えはなかなか面白かったです
パケットが綺麗に順序よくrecvでき、割り込みも即座に解決できてる理想的な環境ならいけるかもしれませんね
私は遠慮しておきますが
16KB送信してきたのに対して、2KBでrecvしたりとか
パケットの並び替えが発生して1回のercvで2パケット分以上取得したりとか
問題ありすぎ
549デフォルトの名無しさん
2017/05/22(月) 22:54:55.59ID:evNLcAGh お前の質問も以後遠慮するよ
550デフォルトの名無しさん
2017/05/23(火) 18:23:04.41ID:+PAP7iSM 起訴からやりのあせ
551デフォルトの名無しさん
2017/05/23(火) 20:03:51.47ID:+G6/THmC TCP_NODELAYで1024バイトを2つsendして、そのあとのタイミングで
2048バイトで受信待ちをしたらどうなるか?
2048バイト1回で受信しきる実装はおそらくこの世にありません。
2048バイトでreadしても1024バイトが2回受信できます。
嘘だと思うなら試してみましょう。
2048バイトで受信待ちをしたらどうなるか?
2048バイト1回で受信しきる実装はおそらくこの世にありません。
2048バイトでreadしても1024バイトが2回受信できます。
嘘だと思うなら試してみましょう。
552デフォルトの名無しさん
2017/05/23(火) 20:05:53.92ID:uQsIVxQH よかったな
553デフォルトの名無しさん
2017/05/23(火) 23:51:55.53ID:XSLyG5v1 TCP_NODELAYで、一発のsendで送ったものが2度以上のrecvに分かれるなんて普通に起こるんだが
ちなXP時代のWinsock
そんなに綺麗にいくんならネットワークプログラミングで苦労しないんだよなあ・・・
ちなXP時代のWinsock
そんなに綺麗にいくんならネットワークプログラミングで苦労しないんだよなあ・・・
554デフォルトの名無しさん
2017/05/24(水) 00:09:29.45ID:OKPHnMsP >>551
とりあえずWin10でwinsock2で
TCP_NODELAYかけたソケットに5バイトのsendを4回行って
recv1024バイトで受け止めたら一発で20バイトとれたぞ
お前がいるのはあの世か?
というか一発でとれなかったらTCPの受信効率悪すぎてヤバイから実験するまでもないことなんだがな・・・
とりあえずWin10でwinsock2で
TCP_NODELAYかけたソケットに5バイトのsendを4回行って
recv1024バイトで受け止めたら一発で20バイトとれたぞ
お前がいるのはあの世か?
というか一発でとれなかったらTCPの受信効率悪すぎてヤバイから実験するまでもないことなんだがな・・・
555デフォルトの名無しさん
2017/05/24(水) 00:33:12.09ID:/IbNyIPx556デフォルトの名無しさん
2017/05/24(水) 10:35:34.16ID:ZD/hb/2q パケットサイズ意識してる?
557デフォルトの名無しさん
2017/05/24(水) 11:45:41.07ID:21J7O/JH SCTPでやるという選択肢は?
558デフォルトの名無しさん
2017/05/24(水) 14:04:07.96ID:4nncZNTT ルーターのMTU書き換えてないだけだろうな
559デフォルトの名無しさん
2017/05/24(水) 15:33:22.60ID:IgpnYvX1 オプションの実装で盛り上がる(笑)
560デフォルトの名無しさん
2017/05/24(水) 15:44:03.92ID:IgpnYvX1 但し、意味は無い
561デフォルトの名無しさん
2017/05/25(木) 17:47:37.48ID:Z/oIvPKq OOBと混同してるんじゃね
562デフォルトの名無しさん
2017/06/23(金) 10:32:04.01ID:0OdP20aK test
563デフォルトの名無しさん
2017/07/30(日) 14:05:52.46ID:akjgDvR8 struct sockaddr* を引数にするライブラリを書いているんだけど
どうせみんな struct sockaddr_storage に保存するんだし
もういっそライブラリ内での引数は全部 struct sockaddr_storage* にしてもいいよな
対外的なところだけ struct sockaddr* にするわ
どうせみんな struct sockaddr_storage に保存するんだし
もういっそライブラリ内での引数は全部 struct sockaddr_storage* にしてもいいよな
対外的なところだけ struct sockaddr* にするわ
564デフォルトの名無しさん
2017/07/30(日) 14:52:39.96ID:R8a7M54F チラシの裏に書いておけよ
565デフォルトの名無しさん
2017/07/30(日) 15:31:14.78ID:akjgDvR8 だからここに書いた!
566デフォルトの名無しさん
2017/08/25(金) 14:34:17.71ID:0nrK3Ckt ネット障害 国内各地で発生 総務省など情報収集
https://mainichi.jp/articles/20170825/k00/00e/040/278000c
https://mainichi.jp/articles/20170825/k00/00e/040/278000c
567デフォルトの名無しさん
2018/02/03(土) 09:43:16.35ID:HOqv4vPr 単純にsocketを使ってTCP/lPでクライアントとサーバーで通信するプログラムをLinuxのC言語で作っています。
ただsocketはノンブロッキングに設定しています。
クライアントはconnectを呼んだ後に正常にサーバーと繋がったか知りたくてselectを呼んでいますが、待ち状態からリターンしてきません。
サーバー側はacceptしており、その後に試しにクライアントへデータを送るとselectがリターンしてくるので、確実にsyn ackはクライアントへ返っていると思います。
selectはサーバーからのsyn ackでは待ち状態は解除されないのでしょうか。
やりたいことはconnectではサーバー応答を待たないで即リターンし、コネクションが確立できたかの結果は別途知りたい。
ググるといくつかのサイトでsocketをノンブロッキングに設定して、connectをコールした後にselectで待つサンプルがありました。
それを真似たのですが、サーバー側はconnec待ちの状態で、クライアントがconnectコール後にselectをコールしてもselectはリターンしてこない。
こうすれば出来る、あるいはそんなこと出来ないなどありましたらご教授お願いします。
ただsocketはノンブロッキングに設定しています。
クライアントはconnectを呼んだ後に正常にサーバーと繋がったか知りたくてselectを呼んでいますが、待ち状態からリターンしてきません。
サーバー側はacceptしており、その後に試しにクライアントへデータを送るとselectがリターンしてくるので、確実にsyn ackはクライアントへ返っていると思います。
selectはサーバーからのsyn ackでは待ち状態は解除されないのでしょうか。
やりたいことはconnectではサーバー応答を待たないで即リターンし、コネクションが確立できたかの結果は別途知りたい。
ググるといくつかのサイトでsocketをノンブロッキングに設定して、connectをコールした後にselectで待つサンプルがありました。
それを真似たのですが、サーバー側はconnec待ちの状態で、クライアントがconnectコール後にselectをコールしてもselectはリターンしてこない。
こうすれば出来る、あるいはそんなこと出来ないなどありましたらご教授お願いします。
568デフォルトの名無しさん
2018/02/03(土) 09:49:25.96ID:pP2dxBQr まずパケットをダンプして見たら
569デフォルトの名無しさん
2018/02/03(土) 09:49:30.43ID:qWVkS+Es select呼んでるのに待ちが発生とか
なんかやらかしてる
なんかやらかしてる
570デフォルトの名無しさん
2018/02/03(土) 10:21:23.77ID:5+N/4dbU connectがEINPROGRESSになった後、本当にエラーになってるんじゃないか?
selectに回す前にMSG_PEEKでrecvするといいよ。エラーならrecvのエラーで
取得できる。
selectに回す前にMSG_PEEKでrecvするといいよ。エラーならrecvのエラーで
取得できる。
571デフォルトの名無しさん
2018/02/03(土) 10:32:27.09ID:bM1piKWo select(2) 第3引数を NULL でやってたり?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【卓球】早田ひな、「総額100万スられた」「ずっと憧れていたスペインとイタリア…」ヨーロッパ旅行で悲劇 スリ被害を告白 [muffin★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 日経平均の下落率3%超す、財政懸念で長期金利上昇 ★2 [お断り★]
- 【実況】博衣こよりのえちえち歌枠🧪★2
- 産経新聞「高市早苗の答弁さぁ……思慮が足りてなくね?官僚と詰めずに思いつきで話しているでしょ」 [175344491]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【画像】外務省局長「この度はうちの🦎がすみません…」中国「……」 [165981677]
- 【雑談】暇人集会所part18
- 外務省局長、よくわからないまま帰国へ [834922174]
