- 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/
- 237 名前:デフォルトの名無しさん mailto:sage [2013/07/04(木) NY:AN:NY.AN ]
- accept に渡してるソケットを accept の戻り値で書き換えてるとか?
accept の戻りのソケットは 接続発生毎に別物だから 変な使いまわしからすると 「接続は受けた けど クライアントとの通信が出来てない」 ってなことになる
- 238 名前:230 mailto:sage [2013/07/05(金) NY:AN:NY.AN ]
- >>233,236
考えてみればlistenしっぱなしで良かったです; 設定を弄る時に排他処理が必要かと思い、止めようとしてました >>234,5 再lisetn,closeはしていると思います。 >>237 有用な情報ありがとうございます! 以下のような処理をしてるので大丈夫だとは思いますが、調べてみます。 listen(--); -初期化処理- while(1){ dstSocket[id] = accept(----); if(-1 != dstSocket[id]){ -------- id = DecideNewId(); } }
- 239 名前:デフォルトの名無しさん mailto:sage [2013/07/09(火) NY:AN:NY.AN ]
- これは肝心なところを隠して、どうでもいいところだけ書くダメな質問の典型だな
全体に意味不明だから、もう少し勉強してから出直すほうがいいと思う
- 240 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
- ほとんどのバグは本人が関係ないと思って端折ってるところに存在する
そもそも肝心なところがどこか判ってるプログラマはむしろバグらない
- 241 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
- なんでこうセンスの無い人間がプログラミングなんかやるのか
すべて駆逐したい
- 242 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
- 9割5分くらいのPGが消えてしまうじゃないか
- 243 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
- 104期生ってどのくらい巨人になれるの?
- 244 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
- web(HTTP)の普及のせいで
ネットワークを利用するアプリの質が極端に下がった 退化しまくり
- 245 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
- なんでもWebサービス。まあ便利だけどね。
- 246 名前:デフォルトの名無しさん [2013/07/10(水) NY:AN:NY.AN ]
- webサービスは機種依存性をなくしたりアプリのインスコの手間を省いたりDLL地獄回避のメリットがあると言われていたが
結局ブラウザのバージョン依存で地獄とか同じ過ちを繰り返してるとしか
- 247 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
- 俺の言ったwebサービスはWebブラウザは関係ないけどね
- 248 名前:デフォルトの名無しさん [2013/07/10(水) NY:AN:NY.AN ]
- P2P掲示板の同期方法はどうやればいいですか?
基本が一対一の通信なのに全体で同じデータを受け取れるのはむずかしくないですか?
- 249 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
- 通信速度が上がったから、HTTPのオーバーヘッドが気にならんからなぁ
>>248 P2Pで全体ってどういう事を言ってるのかしらんが 全体で同じデータを受け取る必要はないだろ
- 250 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
- WebサービスってWSDLとかの話だろ、ブラウザ関係ねえw
- 251 名前:デフォルトの名無しさん [2013/07/10(水) NY:AN:NY.AN ]
- ソケットでhttpクライアント作ってみたけど意外に簡単すね
でも企業面接でhttpの質問のみで落とされますた
- 252 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
- java の質問で拾ってもらいました10年前
- 253 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
- TCPのパケットの問題で落ちたわ…
- 254 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
- >>248
難しくは無い。 全体に同じデータを送る必要があるなら、全体に同じデータを送るだけ。 非常に単純な話だよ。
- 255 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
- 実はUDPの方が転送効率は良いんです。TCPは糞です。
ascii.jp/elem/000/000/712/712158/
- 256 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
- >>255
tcp6に採用されるような論文書かないと説得力全くない。 特殊な状況でしか効率良くないプロトコルじゃあ...
- 257 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
- TCPが効率悪く見えるのは通信が1対1のときのを測定してるからだよな
多対多の通信を想定したプロトコルなんだから
- 258 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
- TCPって思いっきり1対1の通信を想定したプロトコルじゃねーか。
- 259 名前:デフォルトの名無しさん [2013/07/11(木) NY:AN:NY.AN ]
- 故47氏がTCPを何十倍も超える高速通信を実現したとか聞いたが
- 260 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
- TCPが回線スループットの何十分の1の速度しか出ないなんて事は無いから
言ってることが明らかにおかしい
- 261 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- UDPは一方向の無手順通信
無手順だから早いってだけでハマらんようにね
- 262 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- 既存ファイル転送プロトコルに比べて大して変わらない性能で何のインパクトもなかった(当時)。
- 263 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- 出たなMulticastTCPお化け!
- 264 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- SCTPのマルチホーミング構成をとっているときに
クライアント-プライマリサーバからはHEARTBEAT の送信・応答があるんだけど、セカンダリサーバの ほうってプライマリからのハートビートインフォメーションに 乗せるんじゃなくてセカンダリサーバからHEARTBEAT 返すことってSOCKOPTのパラメタ設定とかで可能?
- 265 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- >>260
複数セッション束ねるとか、方法はあるでしょ
- 266 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- >>260
TCPはRTT依存するし、パケットロスに対する速度低下率が高すぎる。
- 267 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- >>264
dynamic multihomingが有効なら管理されてるpathの死活を把握してないといけないから、 セカンダリでもheartbeatによるpath管理が行われているはず。 フリーの実装ならRandall Stewartさんが関わっていたFreeBSDが信頼性あるんじゃないか。 >>266 image.itmedia.co.jp/l/im/news/articles/1206/12/l_moto_ssbp.jpg みると、最初からwindow最大化したTCP4とRTT性能は大差ないように思う。 ack管理が閾値ベースである問題は解消してるけど、 そんなのは10年以上前からあるし。
- 268 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- 無罪判決後、47氏の夢 2012年 『Winnyの金子氏が夢見る次世代高速ネットの世界』
ascii.jp/elem/000/000/712/712158/ >金子:本当にTCPがボトルネックなんですよ。みなさんあまり気付いていないですけど、 >SilverBulletで動作させてみると楽勝で10倍くらいの通信速度が出るんですよ。ヘタすると100倍くらい出ますから。
- 269 名前:デフォルトの名無しさん [2013/07/12(金) NY:AN:NY.AN ]
- >>258
多対多だおω
- 270 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- >>258はTCP層だけしか見てないから仕方ない
- 271 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- TCPコネクションが <自IPアドレス, 自ポート番号, 他IPアドレス, 他ポート番号>という
組(tupple)でモデル化されることは、このスレ住人にとっては常識だと思う。 で、TCP層の利用者(user)であるアプリケーションの視点からは、 TCPコネクションは相手アプリケーションとの間の「1対1」関係に見えるし、同時に TCPコネクションの集合を扱うTCP層の提供者(provider)であるTCPスタックの視点からは、 自集合と多集合との間の「多対多」に見える。
- 272 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- ベストエフォート側のネットワークで、
みんな帯域を譲りあいながら使ってるわけだからさ、 じゃないとslow-startとか必要ないわけよ。
- 273 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- >>266
>パケットロスに対する速度低下 それは確かにそうだね
- 274 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- >>271
ふつう、全単射を「多対多」とは言わんわな。
- 275 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
- 言わないな
- 276 名前:デフォルトの名無しさん mailto:sage [2013/07/13(土) NY:AN:NY.AN ]
- TCPを多対多とか言う奴はUMLの多重度も正しく書けないだろ
- 277 名前:デフォルトの名無しさん mailto:sage [2013/07/13(土) NY:AN:NY.AN ]
- 輻輳を意識したプロトコルなんだから
1対1のことだけ考えてる訳ではないよ
- 278 名前:デフォルトの名無しさん mailto:sage [2013/07/13(土) NY:AN:NY.AN ]
- >>277
全くその通りだが、それは論点ではない
- 279 名前:デフォルトの名無しさん mailto:sage [2013/07/13(土) NY:AN:NY.AN ]
- 速度低下の原因が輻輳であるならば
1対1の場合なら速度低下は起きない と言っているということになる それではいったい47氏の主張と どこが違うと言えると言うのか
- 280 名前:デフォルトの名無しさん mailto:sage [2013/07/13(土) NY:AN:NY.AN ]
- 何が言いたいのか伝わって来ない
- 281 名前:デフォルトの名無しさん mailto:sage [2013/07/13(土) NY:AN:NY.AN ]
- 流れぶった切って宣伝です
C++で通信ライブラリのようなものを作っております よかったらお試しください ichishino.nobody.jp/
- 282 名前:デフォルトの名無しさん mailto:sage [2013/07/13(土) NY:AN:NY.AN ]
- >281
頑張ったところを教えて
- 283 名前:デフォルトの名無しさん mailto:sage [2013/07/13(土) NY:AN:NY.AN ]
- どっかのTCP/IPスタックがお馬鹿ってだけじゃあ
- 284 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- >>281
これは酷い 某技術書のサンプルコードとほとんど同じコードばかりじゃねえかw
- 285 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- WinSockで通信プログラム作ってるんですけど
ポート1つで通信するとした場合 ホスト側でソケット2つ用意してクライアント2人と繋げたいんですけど どうしても片方のソケットにしか二人分のデータが飛んでこないんですけど どうしたらいいですかね
- 286 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- マヌケな発言はやめてくれ
力が抜ける
- 287 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- まず服を脱ぎます
- 288 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- このスレに来ていいレベルじゃないな
- 289 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- いつからこのスレがレベルの高いスレだったと錯覚している?
- 290 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- 俺が来た時から
- 291 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- 誰も高いなんて言ってないんだが...
- 292 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- >>289
安心しろ 君がいることがレベルが高くない証明だ
- 293 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- 俺とお前と
- 294 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- 田舎ではまだいるけど東京ではLooseSocksはほぼ絶滅したね。
- 295 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- >>294
へえ、じゃ今はどんなのがはやりなの?こっちは田舎(神戸)だからよくわからないや
- 296 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- いまはNoseFooksだな
- 297 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- 自分からドナドナされにいくのか?
- 298 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- 大五郎〜♪
- 299 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- おれとおまえと
- 300 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- だいごろお〜♪
- 301 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- >>282
ネットワーク通信ですかね サーバーアプリつくれば3000コネクションぐらいだったらいけると思います
- 302 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- 微妙だな。頑張ったと言うわりに10Kは特に意識してないってことか。
- 303 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- この業界は何かと3Kと言われますしね
- 304 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- >>302
テストは10Kでやってるんですが、まあユーザープログラムの実装を入れたらもっと下だろうってことで
- 305 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- 長時間の安定稼働がきついんですよね
- 306 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- 10Kコネクションで、最低でも一週間以上稼働し続けられるものを目指してはいます
- 307 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- で、それを実現するために何苦労したとか、
役立つことは一切語る気はない、ただの宣伝行為という認識でいい?
- 308 名前:285 mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- plsk.net/socket
マルチスレッドにしている部分のソースコードはらせて頂きました。 (現在は10個このスレッドを作成しています) UDP/IPでの通信で同一ポートの使用が条件で 複数のクライアントと通信したいのですが 2箇所から通信してもらっても同じソケットにしかデータが着ません。 ここで質問なのですが @分けることは可能なのでしょうか?(ソケットひとつにつき一人にする) A分けない場合1つのソケットに複数のクライアントからデータが飛んできますが その様な動きはサーバーとしていいのでしょうか?
- 309 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN ]
- ソースは読んでないが、
同じソケットを使え エラー処理はちゃんとやれ
- 310 名前:デフォルトの名無しさん mailto:sage [2013/07/15(月) NY:AN:NY.AN ]
- >>308
不可能、いい #ソースコードの断片から滲み出る初心者臭が酷いな
- 311 名前:デフォルトの名無しさん mailto:sage [2013/07/15(月) NY:AN:NY.AN ]
- bindのエラーコードチェックすればすぐに分かることなのに
- 312 名前:285 mailto:sage [2013/07/15(月) NY:AN:NY.AN ]
- >>309
>>311 書き直した所bindで最初以外の9つのソケットからエラーが出てました エラー処理は大事ですねありがとうございました >>310 1つのソケットでデータを受信することにします ありがとうございます C言語初めてもう5年近くなるのにひどいありさまです
- 313 名前:デフォルトの名無しさん mailto:sage [2013/07/15(月) NY:AN:NY.AN ]
- ソース読んでなかった人間だけど、
ちゃんと文章で説明できてたからエスパー出来た。 それほど酷い有様でもない。
- 314 名前:デフォルトの名無しさん mailto:sega [2013/08/05(月) NY:AN:NY.AN ]
- 特定のポートを使用しているプログラムを全員殺す
というプログラムはどうやって書けばいいかな
- 315 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- 全員って?例えば?
- 316 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- >>315
たとえば、待ちうけや接続で ローカルポート9999 を使用している プログラムを全員殺す って fuser で一覧出して殺せばいいのか ありがとう
- 317 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- 全員って、一つのポートを複数のプログラムで使えたっけか?
- 318 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- 使えますが?
- 319 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- >>318
どうやって使うの?
- 320 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- socket APIで。
TCPの接続は<src IP, src port, dst IP, dst port>の四つ組で識別される。
- 321 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- >>320
複数のプログラムで使えるのは、src portの方?dst portの方? そのとき、send()やrecv()ってどうやるの?
- 322 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- 特定のポートに接続してくる迷惑な相手鯖を全員殺す
というプログラムはどうやって書けばいいかな (迷惑の基準は一秒間に一定回数回以上とかです) ただフィルタするんじゃなくて相手側のプロセス(出来れば鯖ごと)殺したいです
- 323 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- >>321
あまりにも初歩的だからマニュアル嫁。
- 324 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- 自分の管理下じゃない、相手プロセスを殺すのは無理
案1) IPメモって 上位のところに abuse 報告 案2) 接続ポートを特定化しないようにする細工がかけられればそれで自衛
- 325 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- IP特定できてるならダミー鯖を用意してそっちに誘導かなぁ
- 326 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- >>321
せっかく>>320がTCPコネクションの概念を明解に書いてくれているのだから、 その意味を(ネットの情報や書籍を参考にして)勉強してみたほうがいいと思うよ
- 327 名前:321 mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- 今までいくつもソケットを使うアプリを作ってきたけど、同じポートを使うという
発想がなかったから全く想像つかないんです。 同じポート番号でlistenするってことなの?
- 328 名前:321 mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- あ、ひょっとして、connectで同じポート番号を使ったプロセスをkillしたいってことなのかな?
今使ってるポート番号じゃなくて。
- 329 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- 何寝言いってるんだか
- 330 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- どんな糞アプリ作ってきたんだよ?
- 331 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
- ポート80を使用しているプログラムを全員殺す=世界中のWebサーバを殺すってことだろ。
- 332 名前:デフォルトの名無しさん mailto:sage [2013/08/06(火) NY:AN:NY.AN ]
- apache MPMを調べてみると良い。コードも読める。preforkが分かりやすい。
- 333 名前:デフォルトの名無しさん mailto:sage [2013/08/10(土) NY:AN:NY.AN ]
- 俺もソケットよくわかんね
教科書通りだとforkして平行宇宙せよってなってるし 実際試してもそれで同一ポートでの通信が出来ちゃうんだけど 四つ組じゃそれぞれのクライアントを識別するのはどうやってんだろうって
- 334 名前:デフォルトの名無しさん mailto:sage [2013/08/10(土) NY:AN:NY.AN ]
- 難しいことなど何もないよ
まずその教科書を投げ捨ててプログラミングしろ
- 335 名前:デフォルトの名無しさん mailto:sage [2013/08/10(土) NY:AN:NY.AN ]
- シグナルとかが絡むとどうしたらいいかわからなくなる
例えばSIGPIPEが来たときreadしてるスレッドから来たreadの終了を表すものなのか そのほかスレッドでの要因なのか判断する方法とかわからなすぎる
- 336 名前:デフォルトの名無しさん mailto:sage [2013/08/19(月) NY:AN:NY.AN ]
- >>335
もしよければ教えるけど
- 337 名前:デフォルトの名無しさん mailto:sage [2013/08/19(月) NY:AN:NY.AN ]
- WindowsSocketのGracefulShutdownを実装してSend側をshutdownしてから0が返るまでrecv呼ぼうとしたらそのままブロッキングしてcloseまで辿り着かないんですけど…
|

|