ネットワークプログラミング相談室 Port28
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2012/04/18(水) 17:15:34.85Programming 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辺り
足りなかったら適当に付け足してね
前スレ
ネットワークプログラミング相談室 Port26
http://hibari.2ch.net/test/read.cgi/tech/1269343909/
関連スレ
ネットワークプログラミング雑談
http://hibari.2ch.net/test/read.cgi/tech/1235800707/
Java ネットワークプログラミング 【教えて!】
http://hibari.2ch.net/test/read.cgi/tech/1086238859/
0002デフォルトの名無しさん
2012/04/18(水) 17:16:02.36Port27 ttp://toro.2ch.net/test/read.cgi/tech/1293284816/
Port26 ttp://hibari.2ch.net/test/read.cgi/tech/1269343909/
Port25 ttp://pc12.2ch.net/test/read.cgi/tech/1255459388/
Port24 ttp://pc12.2ch.net/test/read.cgi/tech/1246895188/
Port23 ttp://pc12.2ch.net/test/read.cgi/tech/1230466044/
Port22 ttp://pc11.2ch.net/test/read.cgi/tech/1222603744/
Port21 ttp://pc11.2ch.net/test/read.cgi/tech/1204287577/
Port20 ttp://pc11.2ch.net/test/read.cgi/tech/1186418855/
Port19 ttp://pc10.2ch.net/test/read.cgi/tech/1159692799/
Port18 ttp://pc11.2ch.net/test/read.cgi/tech/1171029896/
Port17 ttp://pc8.2ch.net/test/read.cgi/tech/1148944560/
Port16 ttp://pc8.2ch.net/test/read.cgi/tech/1136005644/
Port15 ttp://pc8.2ch.net/test/read.cgi/tech/1128088448/
Port14 ttp://pc8.2ch.net/test/read.cgi/tech/1118469143/
Port13 ttp://pc8.2ch.net/test/read.cgi/tech/1109793931/
Port12 ttp://pc5.2ch.net/test/read.cgi/tech/1102427855/
Port11 ttp://pc5.2ch.net/test/read.cgi/tech/1096187183/
Port10 ttp://pc5.2ch.net/test/read.cgi/tech/1090385857/
Port9 ttp://pc5.2ch.net/test/read.cgi/tech/1080658835/
Port8 ttp://pc5.2ch.net/test/read.cgi/tech/1073560271/
Port7 ttp://pc5.2ch.net/test/read.cgi/tech/1063035045/ ★行方不明
Port6 http://pc5.2ch.net/tech/kako/1052/10521/1052106444.html
Port5 http://pc2.2ch.net/tech/kako/1040/10402/1040220302.html
Port4 http://pc3.2ch.net/tech/kako/1034/10342/1034236536.html
Port3 http://pc3.2ch.net/tech/kako/1023/10233/1023359282.html
Port2 http://pc.2ch.net/tech/kako/1006/10062/1006258198.html
Port1 http://pc.2ch.net/tech/kako/970/970344582.html
0003デフォルトの名無しさん
2012/04/18(水) 17:16:24.06UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI
http://www.amazon.co.jp/exec/obidos/ASIN/4894712059/
そのソースコード
http://www.unpbook.com/src.html
詳解TCP/IP〈Vol.1〉プロトコル
http://www.amazon.co.jp/exec/obidos/ASIN/4894713209/
詳解TCP/IP〈Vol.2〉実装
http://www.amazon.co.jp/exec/obidos/ASIN/4894714957/
詳解TCP/IP〈Vol.3〉トランザクションTCP, HTTP, NNTP, UNIXドメインプロトコル
http://www.amazon.co.jp/exec/obidos/ASIN/4894716674/
TCP/IPによるネットワーク構築
〈Vol.1〉原理・プロトコル・アーキテクチャ
http://www.amazon.co.jp/exec/obidos/ASIN/432012054X/
〈Vol.3〉クライアント‐サーバプログラミングとアプリケーション
http://www.amazon.co.jp/exec/obidos/ASIN/4320028007/
Linux/POSIXソケットバージョン
http://www.amazon.co.jp/exec/obidos/ASIN/4320120841/
Windowsソケットバージョン
http://www.amazon.co.jp/exec/obidos/ASIN/4320029992/
0004デフォルトの名無しさん
2012/04/18(水) 17:16:40.78http://www.amazon.co.jp/exec/obidos/ASIN/4274065618/
Linuxソケットプログラミング?ネットワークプログラミングにおける実践技法
http://www.amazon.co.jp/exec/obidos/ASIN/4894714671/
Webプロトコル詳解?HTTP/1.1、Webキャッシング、トラフィック特性分析
http://www.amazon.co.jp/exec/obidos/ASIN/4894715414/
WinSock2.0プログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4797306882/
猫でもわかるネットワークプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4797323604/
IPv6ネットワークプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4756142362/
Visual Basicではじめるネットワークプログラミング超入門
http://www.amazon.co.jp/exec/obidos/ASIN/4839917523/
0005デフォルトの名無しさん
2012/04/18(水) 17:16:56.80★規格
RFC 日本語版リスト
http://www5d.biglobe.ne.jp/~stssk/rfcjlist.html
JPNIC RFC関連リンク集
http://rfc-jp.nic.ad.jp/link/
RFC Editor
http://www.rfc-editor.org/
HTMLなRFC (セクションを直に示すのに便利)
http://www.freesoft.org/CIE/RFC/
RFC 2616 "Hypertext Transfer Protocol -- HTTP/1.1" 日本語訳
http://www.studyinghttp.net/cgi-bin/rfc.cgi?2616
IANA Well known port numbers
http://www.iana.org/assignments/port-numbers
0006デフォルトの名無しさん
2012/04/18(水) 17:17:11.11C10K ヘヴィーロードサーバ
http://www.kegel.com/c10k.html
C10K ヘヴィーロードサーバ(日本語訳)
http://www.hyuki.com/yukiwiki/wiki.cgi?TheC10kProblem
MSDN
http://msdn.microsoft.com/library/en-us/dnsitehelp/html/tochelp.asp
Raw IP Networking FAQ
http://www.whitefang.com/rin/
Java で packet capture
http://netresearch.ics.uci.edu/kfujii/jpcap/doc/
Randomness Recommendations for Security
http://www.faqs.org/rfcs/rfc1750.html
BoostSocket
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostSocket
The Code Project - Internet & Network programming
http://www.codeproject.com/internet/
ネットワークプログラミングの基礎知識 (問題ありのサイト?)
http://X68000.q-e-d.net/~68user/net/
0007デフォルトの名無しさん
2012/04/18(水) 17:17:30.46ethereal - http://www.ethereal.com/
Wireshark - http://www.wireshark.org/
tcpdump - http://www.tcpdump.org/
Windump - http://netgroup-serv.polito.it/netgroup/tools.html
WinPcap - http://www.winpcap.org/
pathchar - ftp://ftp.ee.lbl.gov/pathchar/
pchar - http://www.employees.org/~bmah/Software/pchar/
Packetyzer - http://www.networkchemistry.com/products/packetyzer/
libevent - http://www.monkey.org/~provos/libevent/
★プロトコル
TTCP
http://www.sean.de/Solaris/ttcp.html
http://www.kohala.com/start/ttcp.html
UDP Hole Punching
http://homepage3.nifty.com/toremoro/p2p/firewall.html
★IP, TCP実装
http://www.iti.fi/documentation/miniip.html
http://www.sics.se/~adam/uip/
http://www.codeguru.com/Cpp/I-N/network/tcpip/article.php/c5447/
http://www.geocities.jp/bruce_teller/security/garakuta.htm
0008デフォルトの名無しさん
2012/04/18(水) 17:19:53.47ネットワークプログラミング相談室 Port27
http://toro.2ch.net/test/read.cgi/tech/1293284816/
0009デフォルトの名無しさん
2012/04/21(土) 14:33:05.88PCによってキャプチャできたりできなかったりします。
ネットワークカードによってキャプチャできないような
ものがあるのでしょうか?
0010デフォルトの名無しさん
2012/04/21(土) 23:21:30.10ワイヤーシャークとかでキャプチャしてみれば自分のプログラムが
おタコなのかどうかわかるだろう。
0011デフォルトの名無しさん
2012/04/21(土) 23:59:44.90いいえ。
0012デフォルトの名無しさん
2012/04/22(日) 02:44:51.03NICの指定と設定が間違ってる
0013デフォルトの名無しさん
2012/04/27(金) 22:47:04.63プライベートアドレスは、ifaddrsなどで取得できるのはわかるのですが、
グローバルアドレスの場合は、プログラムからどのように取得すればよいのでしょうか?
ルータにアクセス?して取得する方法があるのでしょうか。。。
0014デフォルトの名無しさん
2012/04/27(金) 23:42:44.340015デフォルトの名無しさん
2012/04/27(金) 23:57:22.150016デフォルトの名無しさん
2012/04/28(土) 00:26:20.73プライベートアドレスもグローバルアドレスも取得方法は同じ。
0017デフォルトの名無しさん
2012/04/28(土) 01:43:36.920018デフォルトの名無しさん
2012/04/28(土) 07:08:51.410019デフォルトの名無しさん
2012/04/28(土) 10:24:23.98皆さん、ありがとうございました。
試行錯誤して試してみます!
0020デフォルトの名無しさん
2012/04/29(日) 14:40:57.11あれなんて名前だっけか? どわすれした
002120
2012/04/29(日) 15:02:57.110022デフォルトの名無しさん
2012/05/01(火) 11:11:35.620023デフォルトの名無しさん
2012/05/01(火) 13:16:25.30帯域制限のこと?
ロジック?
0024デフォルトの名無しさん
2012/05/01(火) 13:21:49.64アルゴリズムな
0025デフォルトの名無しさん
2012/05/01(火) 13:21:51.110026デフォルトの名無しさん
2012/05/01(火) 13:35:30.160027デフォルトの名無しさん
2012/05/01(火) 13:40:36.970028デフォルトの名無しさん
2012/05/01(火) 13:40:38.10アプリケーションかと思った
0029デフォルトの名無しさん
2012/05/01(火) 13:41:03.900030デフォルトの名無しさん
2012/05/01(火) 13:43:40.610031デフォルトの名無しさん
2012/05/01(火) 14:22:53.45アカウント変更とコメントを出来るツールって作れますか?
0032デフォルトの名無しさん
2012/05/01(火) 14:37:26.380033デフォルトの名無しさん
2012/05/01(火) 14:43:00.780034デフォルトの名無しさん
2012/05/01(火) 15:36:38.49バーカ
0035デフォルトの名無しさん
2012/05/01(火) 15:46:32.07あれはこのスレの守備範囲なのか?
いちおうソケットだよな?
0036デフォルトの名無しさん
2012/05/01(火) 15:56:58.94プログラミングは関係ないからなぁ・・・
0037デフォルトの名無しさん
2012/05/01(火) 16:52:01.71悔しかったの? (w
0038デフォルトの名無しさん
2012/05/01(火) 17:28:34.62子ね低脳
0039デフォルトの名無しさん
2012/05/01(火) 18:32:38.05>>37
0040デフォルトの名無しさん
2012/05/02(水) 15:13:50.420041デフォルトの名無しさん
2012/05/04(金) 14:32:56.200042デフォルトの名無しさん
2012/05/04(金) 14:36:54.17サーバ側に受信ポートを変えて同じEXEを10個立てて、
1000個のクライアントプロセスから10kbのファイルを10個ずつ送信を
行っているのですが、6000ファイルくらい送ると、
クライアント側のconnectがエラーになり始めます。
※connectのerrnoは2(no such file or directory)
これはサーバ側がいけないんでしょうか。
サーバ側のタスクマネージャを見ていても、CPUは張り付いていないし
メモリも食ってないし、帯域もそんなに使用していません。
調査方法でも良いので、どなたかわかりませんでしょうか。
0043デフォルトの名無しさん
2012/05/04(金) 14:40:49.50TIME_WAIT状態のが沢山残っているのでしょう。
netstatで見るとわかると思います。
これを防ぐにはTIME_WAIT時間を短くするか
クライアント側からshutdownさせれば良いはず。
0044デフォルトの名無しさん
2012/05/04(金) 14:42:19.83OS 位書けよ…
まあ、OS 書かない奴の大半は Windows だろうからそれを仮定するけど、
connect( ) 失敗時に見るのは、errno じゃなくて、 WSAGetLastError( )
じゃないのか?
0045デフォルトの名無しさん
2012/05/04(金) 14:48:58.41OSはz/OSです
0046デフォルトの名無しさん
2012/05/04(金) 15:01:03.82>>44 すみません、Windows2008ServerR2 同士 です
0047デフォルトの名無しさん
2012/05/04(金) 15:03:18.36クライアント側もz/OS?何台のマシンでやってるの?
0048デフォルトの名無しさん
2012/05/04(金) 15:06:59.57そんなOSないしw
TIME_WAIT周りに不具合があるみたいだな。
http://salaryman-life.blogspot.jp/2012/04/windows-server-2008-timewait.html
CLOSE_WAIT が残っているのはロジック見直した方がよいと思う。
切断手順がおかしいか
0049デフォルトの名無しさん
2012/05/04(金) 15:07:06.40(z/OSではないです)
0050デフォルトの名無しさん
2012/05/04(金) 15:10:30.030051デフォルトの名無しさん
2012/05/04(金) 15:11:59.55レジストリで
・使えるローカルポート数を増やす(デフォルト5000個のはず)
・TIME_WAIT時間を短くする(Windowsのデフォルトは凄く長かったと思う)
くらいしかないだろうなあ
0052デフォルトの名無しさん
2012/05/04(金) 15:15:52.41OS/360にしとけば良かったw
ゴメリンコ
0053デフォルトの名無しさん
2012/05/04(金) 15:17:12.23だから、Windows 系なら errno じゃなくて、WSAGetLastError( ) 見なよって
書いてあるんだが…
話は、それからだと思う。
0054デフォルトの名無しさん
2012/05/04(金) 16:16:18.79WSAGetLastErrorだと、 10061 が返ってきています。
0055デフォルトの名無しさん
2012/05/04(金) 16:58:27.3410061 WSAECONNREFUSED Connection refused.
まんまですな。
で、Shutdown() しているのはどちらから?
0056デフォルトの名無しさん
2012/05/04(金) 17:11:54.57接続切断回数を減らすか
>>51 の言っているようにレジストリをつつくかだな
TcpTimedWaitDelay MaxUsePorts ぐぐれ粕
0057デフォルトの名無しさん
2012/05/04(金) 18:32:50.40WSAECONNREFUSED だから、サーバー側で Listen しきれてないんだろうな。
他の人も言ってる様に CLOSE_WAIT 状態が続いてるのは普通はないから、
クローズ処理を見直したほうがいいと思う。
自分で良くわからないなら、まずはサーバー側とクライアント側の netstat の
概要と、サーバー/クライアントの切断処理を晒せばここの人が何とかしてく
れるかも。
0058デフォルトの名無しさん
2012/05/04(金) 18:42:06.98005942
2012/05/07(月) 22:59:56.89ソースコードを見直したところ、connectリトライや切断の際に
処理がおかしい箇所があったため、見直して修正しました。
そしたら、CLOSE_WAITはなくなりましたが、TIME_WAITは
かなり発生しています。
また、connectエラー(10061)は相変わらず出ます。
レジストリをいじって、TcpTimedWaitDelay を30にしたところ
だいぶ減ったのですが、10061エラーはあまり改善していません。
調べてみたところ、TIME_WAITは出ても問題ない、どうやっても
出てしまうもの。という記述を多くみました。
とすると、やはりTCPの仕組み上の限界なのでしょうか。
0060デフォルトの名無しさん
2012/05/07(月) 23:41:56.30CLOSE_WAITとTIME_WAITが同時にあるのはおかしい常態だけど
どんな接続や切断の仕方している?
接続はクライアントから? サーバから? 切断は?
どの位の時間間隔で接続数は?
それからTIME_WAITは先に切断要求を出した方に残るのは正常な状態。
0061デフォルトの名無しさん
2012/05/07(月) 23:44:16.25tcpはリトライなんかしちゃいかんよ。
0062デフォルトの名無しさん
2012/05/07(月) 23:57:52.99常にリトライしないとか言うアホは放置で。
0063デフォルトの名無しさん
2012/05/07(月) 23:58:23.77TcpTimedWaitDelayが30秒だと30秒以内の間隔で連続して
接続・切断を繰り返すとソケットが破綻するのはわかるかな?
0064デフォルトの名無しさん
2012/05/08(火) 00:09:21.35ごめん、言葉足らずだった。
connectから応答がないときのリトライ。
接続できないからと数秒間隔でリトライとか。
Windowsの場合、connectは20秒なんで20秒で繋がらない
状態の場合は直ぐにリトライしても繋がることはほとんどないが。
006542
2012/05/08(火) 00:25:29.88CLOSE_WAITはなくなって、TIME_WAITだけある状態です。
・接続は、クライアントからconnectしています。(bind無し)
・切断は、クライアント
→セッション終了を示すコードをsendで送ったあとは
自らshutdown(cs,2); closesocket(cs); で閉じてます。
サーバ
→セッション終了を示すコードがrecvで届いたら、
こちらも自らshutdown(cs,2); closesocket(cs); で閉じているので
なので、切断は同期があまり取れていないのですが、まずいでしょうか。
>>61
connectでエラーが帰ってきたら、5秒待って再度connectしています。
これはまずいでしょうか。。。
>>63
確かに。。。明らかに30秒以内で接続・切断を繰り返しています。
10KB*10ファイルを1セッションで送るプロセス*1000個を同時起動
なので、やはり多すぎでしょうか。。。
0066デフォルトの名無しさん
2012/05/08(火) 06:34:00.32shutdown は SD_SEND でやるのがお行儀の良いやり方だけど
SD_BOTH でも問題は発生することはないんじゃないかな。
>セッション終了を示すコードをsendで送ったあとは
これは何?
connect()は問題なし。
>なので、やはり多すぎでしょうか。。。
切れ目無く連続でやると破綻するでしょうな。
0067デフォルトの名無しさん
2012/05/08(火) 07:14:08.370xFFを「終了の合図」と決めておいて
クライアント側は
0xFFを送る → shutdown
サーバー側は
0xFFを受け取る → close
ということだろう。
普通に作るならば、クライアント側から切断するのであれば
サーバー側はCLOSEのサイン(recvが0)を待てば良いだけな気がするし
そもそもSENDをshotdownするなら、終了の合図なんて要らないんだけどね。
まあ、将来の可能性も含め、切断せずに繰り返し送受信することを考慮するなら、
そういうやりかたもあるかとも思うけど、
切断時に、両方ともCLOSE前に自分で切ってるのはどうなんだろうね。
0068デフォルトの名無しさん
2012/05/08(火) 07:35:58.05データグラム ソケットで送信されたメッセージが、内部のメッセージのバッファーまたはほかのネットワークの制限を超えています。または、データグラムの受信に使われるバッファーがデータグラムより小さく設定されています。
というエラーが出ることがあるんですがこれはどうすればいいでしょうか?
0069デフォルトの名無しさん
2012/05/08(火) 11:30:47.29C#に限らないんじゃ?
0070デフォルトの名無しさん
2012/05/08(火) 12:24:29.64指定した SocketFlags を使用し、バインドされた Socket から指定したバイト数のデータを受信して、受信バッファ内の指定したオフセット位置に格納します。
007142
2012/05/08(火) 13:19:51.41仰るとおりの終了の合図をやっています。
切断時に両方からshutdown , closesocket はまずいのでしょうか。
あまりそのあたりに触れているサイトが無くて困っております。
また、今再度確認していて気づいた点があります。
1000プロセスの終盤(残り10プロセスあたり)になると、
connectエラーは起こらないのですが、recv(の前のselect)が
5秒待っても届かずタイムアウトが猛烈に発生します。
この場合、TIME_WAITは30秒経過したからか、殆どなくなって
ESTABLISHEDばかりですが、なぜか非常にrecv,sendが遅く
なっておりました。
NICやHUBが限界なのかなと思えてきました。。。
0072デフォルトの名無しさん
2012/05/08(火) 13:57:00.46>>67が言ってるように、サーバー側の切断は「終了の合図」でやるのではなく、
recvで0が返ってきた時にやるようにすれば問題ないと思うけど。
0073デフォルトの名無しさん
2012/05/08(火) 14:03:01.27普通にsend側で分割する。receive側でサイズ指定してもダメ。
0074デフォルトの名無しさん
2012/05/08(火) 19:23:20.79>切断時に両方からshutdown , closesocket はまずいのでしょうか。
問題ないです。
>あまりそのあたりに触れているサイトが無くて困っております。
Winsockと言えばここでしょう。サンプル見れば切断手順がわかると思います。
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/
>1000プロセスの終盤(残り10プロセスあたり)になると、
1台のPCで1000プロセスだとそもそも無理があると思いますが。
>connectエラーは起こらないのですが、recv(の前のselect)が
>5秒待っても届かずタイムアウトが猛烈に発生します。
select()のタイムアウトとは?
>NICやHUBが限界なのかなと思えてきました。。。
そりゃ無いです。ファイルコピーなんか何百ギガも転送したりしますんで。
0075デフォルトの名無しさん
2012/05/08(火) 19:26:00.660076デフォルトの名無しさん
2012/05/08(火) 20:04:13.19昔、俺もやらかしたな
ネットワーク構成図に載ってないFWが間にあって、通信を殺されてたww
0077デフォルトの名無しさん
2012/05/08(火) 20:12:44.700078デフォルトの名無しさん
2012/05/08(火) 20:57:32.00クライアント側は1台で1000コネクションなんてことは無いでしょうから
TIME_WAITで破綻なんかしないのでは?
テストのやりかたが悪いと思う。
0079デフォルトの名無しさん
2012/05/10(木) 23:29:09.16すべて取得する手段はどのようなものが考えられるのでしょうか。
0080デフォルトの名無しさん
2012/05/11(金) 00:29:09.08netstat -a
0081デフォルトの名無しさん
2012/05/11(金) 01:21:24.110082デフォルトの名無しさん
2012/05/18(金) 00:54:20.27サーバ側をAndroid、クライアント側をWindowsXP、IPとPort固定で接続しています。
クライアントからサーバに接続しようとすると、初回はだいたいうまくいくのですが
BindException: address already in useが出て接続できない時があります。
ServerSocketクラスのsetReuseAddressやsetSoLingerなどのメソッドを試してみましたが
それでも接続できないことがあります。
Java(というかTCP)の仕様なのでしょうか?
希望としては接続・切断を繰り返しても問題なく接続できるようにしたいのですが、、
いい方法があれば教えてください。
0083デフォルトの名無しさん
2012/05/18(金) 05:47:04.16少し前にもあったけど、どの程度の頻度で接続を繰り返しているのか?
切断手順に誤りはないか?をまずは確認してください。
頻繁に接続切断を繰り返したり、数分間切断された状態が続くとやばい
とかなら、素直にUDP使っとけやと思います。
0084デフォルトの名無しさん
2012/05/18(金) 14:11:54.13>IPとPort固定で接続しています。
もしかしてクライアント側も特定ポートにバインドしてるとか?
>BindException: address already in use
はまさにそれっぽいんだが
0085デフォルトの名無しさん
2012/05/18(金) 20:20:53.96次はサーバ側が多重化されていないので問題が発生する
とエスパーしてみる。
008682
2012/05/19(土) 01:31:24.31>>83
30秒〜1分くらいです。
切断手順は、shutdown→closeみたいな感じでしょうか。
今はcloseだけ行っています。
>>84
クライアント側もサーバのポートを指定して、サーバに接続しています。
サーバ側でBindは呼んでいますが、クライアント側では意識してBind呼んだりは
していません。
0087デフォルトの名無しさん
2012/05/19(土) 08:10:23.65>今はcloseだけ行っています。
お行儀わるいぞ。こうだろ。
shutdown(send) → recv(0) → shutdown(recv) → close
0088デフォルトの名無しさん
2012/05/19(土) 21:29:36.96そんなことやんねーよバーカ
何年前の世界に生きてんだ
0089デフォルトの名無しさん
2012/05/19(土) 22:26:25.38そ、そうなのか・・・w
0090デフォルトの名無しさん
2012/05/19(土) 23:02:07.68相手が切断したことを確認する必要があるかどうか
無いならいきなりcloseでいい
0091デフォルトの名無しさん
2012/05/20(日) 00:05:07.59俺の過去が見えるのか!
0092デフォルトの名無しさん
2012/05/20(日) 04:09:43.58無知とは言え無茶しすぎだろう。
自分の管理下のpcや鯖相手に好き勝手試すのはどうぞ存分に遣ってくれと思うけど、ネット上の鯖とかには控えめにな。サーバ攻撃受けたと判断されて通報されそうだわw
0093デフォルトの名無しさん
2012/05/20(日) 07:19:33.49札幌市立啓北商業高校の野島(横濱)えり Microsoft USA co.tp.
弖十=TEN10(teto)=優多野手頭=野慈蚕=帝跿(徒)=衛鴉朧 笑狸乃雉匯
0094デフォルトの名無しさん
2012/05/20(日) 09:17:27.67shutdown(both)も要らないのか?
0095デフォルトの名無しさん
2012/05/20(日) 09:44:54.47大した手間じゃないんだから定石通りの
切断手順を踏んだ方が良いと思うけどね。
0096デフォルトの名無しさん
2012/05/20(日) 09:53:02.04close内で勝手に呼び出す
>>95
カーネル内部で定石通りに勝手にやる
0097デフォルトの名無しさん
2012/05/20(日) 10:08:01.05カーネル側でちゃんと処理してくれないOSもあるのか?
でなきゃTIME_WAITもあるし常にclose()のブチ切りで良くなる。
0098デフォルトの名無しさん
2012/05/20(日) 13:18:31.48>30秒〜1分くらいです。
>サーバ側でBindは呼んでいますが、クライアント側では意識してBind呼んだりは
>していません。
だとすると、それにも関わらずBindException: address already in use
になるのは変だね。実は切断がちゃんと出来てないとか、クライアントの
マシンで別のアプリが大量にポート消費してるとか?netstatは見てみた?
0099デフォルトの名無しさん
2012/05/20(日) 13:26:10.26Bind()しているのはサーバ側のリスナーのポートだけじゃない気がするw
0100デフォルトの名無しさん
2012/05/20(日) 17:39:30.12だから基本的にはclose()ブチ切りで問題ない
shutdown()を使うべきなのは、データ送信後に相手が
受け取れたかどうかを見届けたいときくらいなものだ
0101デフォルトの名無しさん
2012/05/20(日) 17:55:57.93shutdown(SD_BOTH)の存在価値は全くないと・・・
0102デフォルトの名無しさん
2012/05/20(日) 18:26:28.33ぶち切りなら shutdown( ) は不要とか言ってるアホはスルーでいい。
プログラムの作りによって、通信はやめたいけど、資源の解放はあとの方でまとめてや
るなんてことはいくらでもありうる。
※ しかし、なんで shutdown( ) なんて名前なんだろう?
※ 素直に disconnect( ) とかでいいように思うが、8文字制限か?
0103デフォルトの名無しさん
2012/05/20(日) 18:27:35.850104デフォルトの名無しさん
2012/05/20(日) 19:06:12.75そういうときだけshutdown使えばいいじゃん
適材適所って言葉知ってる?
0105デフォルトの名無しさん
2012/05/20(日) 19:27:29.762.6 shutdown() はどういうときに使うべきなのですか?
http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-2.html
winsockだと大丈夫かな。
0106デフォルトの名無しさん
2012/05/20(日) 19:31:37.33高速回線にはそぐわないパラメータ値も多いし。
0107デフォルトの名無しさん
2012/05/20(日) 19:40:00.92>適材適所って言葉知ってる?
だから、単純に
shutdown()を使うべきなのは、データ送信後に相手が
受け取れたかどうかを見届けたいときくらいなものだ
0108107
2012/05/20(日) 19:42:07.67途中で送信しちゃった。
>適材適所って言葉知ってる?
だから、
> shutdown()を使うべきなのは、データ送信後に相手が
> 受け取れたかどうかを見届けたいときくらいなものだ
以外のケースもあると書いてあるんだが、日本語理解できない?
それとも、なんか悔しかったのか?(w
0109デフォルトの名無しさん
2012/05/20(日) 20:00:47.130110デフォルトの名無しさん
2012/05/20(日) 20:38:43.69あとでまとめて解放なら放置プレイしてOSに解放させれば良いのでは?
0111デフォルトの名無しさん
2012/05/20(日) 20:48:22.360112デフォルトの名無しさん
2012/05/20(日) 20:51:30.920113デフォルトの名無しさん
2012/05/20(日) 21:09:29.93通信の停止とclose()を別々に行うことはあるね。
あまりいい作りとは思えないけど、手軽なんで周りでも時々見かける。
0114デフォルトの名無しさん
2012/05/21(月) 08:21:07.90なんにせよshutdownしてcloseせず長々と持ってるつくりは
感心できるものじゃないなぁ
0115デフォルトの名無しさん
2012/05/21(月) 16:30:28.64> プログラムの作りによって、通信はやめたいけど、資源の解放はあとの方でまとめてや
> るなんてことはいくらでもありうる。
こんな作りにしたこともしたくなったことも、いまだかつて無い。
0116デフォルトの名無しさん
2012/05/21(月) 16:44:17.440117デフォルトの名無しさん
2012/05/22(火) 07:58:43.54一万セッションぐらい通してみて誰か耐久試験でもやってくれw
ftpなんかも制御持ち切りでデータのほうばっかで流してるうちに、切られてたりはするな。
ゲームとかでも描くパーツの制御にそれぞれ制御セッション貼って、データだけいろいろ送って、状態推移に使ってたりして。
>>112
tftpなんて毎回貼り直しでもいいくらいヌルいね。
httpなんかでも地図データ拾うのに使い捨ての様にセッション貼ってるけど。
0118デフォルトの名無しさん
2012/05/22(火) 10:52:40.38その耐久試験ならすでに何億回とやってる。
0119デフォルトの名無しさん
2012/05/22(火) 17:23:16.46shutdownだけしてcloseする処理はありうる。
ずっと待ち受け続けられるから。
ただクライアントサーバ方式全盛だから、
こういうランデブー型の双方からconnectする通信方式は少ないな。
ちなみにTCPのRFCにはランデブー型APIについて書いてあった。
BSDソケットはこの辺を生真面目に設計、実装していると思われる。
0120デフォルトの名無しさん
2012/05/22(火) 17:24:27.51> shutdownだけしてcloseする処理はありうる。
< shutdownだけして、closeせずにsocketを維持し続ける処理はありうる。
0121デフォルトの名無しさん
2012/05/22(火) 17:28:26.00いや、そんな行儀の悪い対向はそうそういないだろうよ・・・
shutdown送ってんのにペラペラ喋り続けるやつは
問答無用でぶっ殺すわ・・・
0122デフォルトの名無しさん
2012/05/22(火) 17:40:17.110123デフォルトの名無しさん
2012/05/22(火) 17:41:41.220124デフォルトの名無しさん
2012/05/22(火) 20:21:48.69close()でぶち切りしてもプロセスをKillしてもOS側で必要な切断手順は
やってくれるのでプロトコルの途中でのぶち切りにはならない。
0125デフォルトの名無しさん
2012/05/22(火) 21:05:49.86ttp://msdn.microsoft.com/en-us/library/windows/desktop/ms724935%28v=vs.85%29.aspx
0126デフォルトの名無しさん
2012/05/22(火) 21:13:44.54Graceful Shutdown, Linger Options, and Socket Closure.も読んどけ。
0127デフォルトの名無しさん
2012/05/22(火) 22:24:40.80そんなに悔しかったのか? (w
>>124
いったいどこのプロトコルの話をしてるんだ?
0128デフォルトの名無しさん
2012/05/22(火) 23:08:44.91安いプロトコルスタック買っちゃったら
このあたりの尻拭いしてくれないよね
0129デフォルトの名無しさん
2012/05/22(火) 23:59:18.39何か参考書知りませんか?
LinuxかAIXでプログラム作れたら嬉しいです
0130デフォルトの名無しさん
2012/05/23(水) 03:56:53.89枯れてるipスタックって結構大事。
aixならibmの営業捕まえて研修受けてこい。もちろんお金は掛かるけど。
簡単にsslでproxyできたらsslの意味無くなると思うけどね。
あんたが銀行サイトにsslで繋げて安全と思ってるのに、途中でproxy挟まれて中身見れてたら意味無いでしょ。
0131デフォルトの名無しさん
2012/05/31(木) 01:50:51.64以前TCPを利用した対戦ゲームを作って友人と遊んでいたのですが、
引越しで環境の変化により接続できなくなりました。
原因はマンションの回線を使っているためだと思われます(そもそもポート開放できない
が、プログラムの組み方でその辺の問題を回避できたりしますか?
ネットゲームや、DS・PS3等のネット通信はできるので、接続は絶望的ではないのかなと思い質問しました。
TCPでの接続ができないとしたら、他の通信方法などがあれば教えてもらえると嬉しいです。
0132デフォルトの名無しさん
2012/05/31(木) 11:17:56.93では次の方どうぞ
0133デフォルトの名無しさん
2012/05/31(木) 17:59:17.46VPNでつないどけ
0134デフォルトの名無しさん
2012/05/31(木) 18:14:35.510135デフォルトの名無しさん
2012/05/31(木) 18:15:02.940136デフォルトの名無しさん
2012/05/31(木) 23:07:04.790137デフォルトの名無しさん
2012/06/01(金) 19:47:51.93SoftEtherでも使っとけ
0138デフォルトの名無しさん
2012/06/01(金) 20:21:20.48誰でも使えるpublicなサーバーとかあるんだっけ?
0139デフォルトの名無しさん
2012/06/02(土) 13:57:42.79物理層を伝書鳩にすればいいと思うよ。
0140デフォルトの名無しさん
2012/06/02(土) 14:08:51.19それでもダメだろ。面白いこと言ったつもりだろうけど、よく考えろ。
0141デフォルトの名無しさん
2012/06/02(土) 14:51:32.950142デフォルトの名無しさん
2012/06/03(日) 00:12:26.49送られてきたデータをパースするときは、どんな感じでパースしてますか
普通に固定長ファイルを扱う感じでやろうかと思うのですが
0143デフォルトの名無しさん
2012/06/03(日) 00:19:46.49DNSはバイナリですがやっぱり可変長です。
0144142
2012/06/03(日) 00:30:12.12回答ありがとうございます。
ネットワークプログラミングってパフォーマンスを考えなければ簡単そうですね
ちょっと面倒なファイルの操作ってイメージ
0145デフォルトの名無しさん
2012/06/03(日) 00:32:30.070146デフォルトの名無しさん
2012/06/03(日) 03:44:27.11ローカルファイル扱いとは
本質的に違うところが随分あります。
0147デフォルトの名無しさん
2012/06/03(日) 08:31:26.79ネットワークプログラミングなので、一律に「分散コンピューティング」とか言うのは、
すごく違和感がある。
0148デフォルトの名無しさん
2012/06/03(日) 21:32:46.41それともリクエストをやり直すだけでOKですか?
また、こういう情報はどこに記載されています?
0149デフォルトの名無しさん
2012/06/04(月) 10:24:07.140150デフォルトの名無しさん
2012/06/04(月) 10:35:13.70RFCの何番かくらい教えてやれよ・・・
0151デフォルトの名無しさん
2012/06/05(火) 10:50:32.49UDPでブロードキャストしまくるのって下品?
0152デフォルトの名無しさん
2012/06/05(火) 17:42:00.380153デフォルトの名無しさん
2012/06/05(火) 18:49:46.51所詮チャットて程度の帯域利用なんだから。
0154デフォルトの名無しさん
2012/06/05(火) 22:22:52.970155デフォルトの名無しさん
2012/06/07(木) 08:53:40.290156デフォルトの名無しさん
2012/06/07(木) 10:29:33.62それより関連RFCをよく読んで仕様を頭に叩き込んでください
0157デフォルトの名無しさん
2012/06/07(木) 13:47:30.82頭を叩いてまで詰め込むようなことはないような。
0158デフォルトの名無しさん
2012/06/10(日) 22:02:32.030159デフォルトの名無しさん
2012/06/10(日) 23:09:26.190160デフォルトの名無しさん
2012/06/10(日) 23:38:40.730161デフォルトの名無しさん
2012/06/11(月) 13:13:54.370162デフォルトの名無しさん
2012/06/11(月) 15:24:41.21sendto()に10000バイトを指定して実行し、戻り値が10000である事を確認しました。
この状態で送信先のPCにアナライザソフト(PacMon最新版)を入れてデータを確認しましたが、
1パケット分(パケット長1514バイト、データ長1472バイト)しか届いていません。
残りのデータは何処に行ってしまったのでしょうか?
2台のPC共にネットワークカードのジャンボフレームは無効にしてあります。
0163デフォルトの名無しさん
2012/06/11(月) 16:34:09.050164デフォルトの名無しさん
2012/06/11(月) 17:59:30.500165デフォルトの名無しさん
2012/06/11(月) 18:22:28.76おれが食っちまった
0166デフォルトの名無しさん
2012/06/11(月) 21:41:28.71最近はMSDNもメトロデザインなのね。
なんか殺風景なのね。
0167デフォルトの名無しさん
2012/06/11(月) 22:38:29.59天使の取り分
0168デフォルトの名無しさん
2012/06/11(月) 23:03:07.09て言うか、8割以上ぶんどる天使って、悪魔じゃねーのか?(w
0169デフォルトの名無しさん
2012/06/11(月) 23:10:42.040170162
2012/06/11(月) 23:48:49.34送信バイト数を10Kではなく1KにするとWiresharkでも届いてる事を確認できます。
普通は複数パケットに分割されて届くのでしょうか?
それともsedto()の戻り値が10Kなのが変なのでしょうか?
0171デフォルトの名無しさん
2012/06/11(月) 23:49:08.450172162
2012/06/11(月) 23:54:15.09送信バイト数を10Kではなく1KにするとWiresharkでも届いてる事を確認できます。
普通は複数パケットに分割されて届くのでしょうか?
それともsedto()の戻り値が10Kなのが変なのでしょうか?
0173デフォルトの名無しさん
2012/06/11(月) 23:58:59.12…たとえそれがNIC(って最近オンボードの方が多いけど)に渡る前であっても、
send(to)に渡した直後であってさえも、だ…
0174デフォルトの名無しさん
2012/06/12(火) 00:00:07.88Programming 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/
以下略
0175デフォルトの名無しさん
2012/06/12(火) 00:16:20.070176デフォルトの名無しさん
2012/06/12(火) 01:38:38.83環境依存です。
今なら複数パケットに分割して配信する環境の方が多いでしょう。
実際にどうなるかは、経路上のネットワーク機器次第なので、
インターネットでどうなるかは運次第ですね。
0177デフォルトの名無しさん
2012/06/12(火) 02:14:31.19>今なら複数パケットに分割して配信する環境の方が多いでしょう。
UDPを分割配信する処理系があるならぜひ教えてもらいたいものです
0178デフォルトの名無しさん
2012/06/12(火) 07:23:24.730179デフォルトの名無しさん
2012/06/12(火) 08:44:13.73WindowsとかLinuxとか
0180デフォルトの名無しさん
2012/06/12(火) 09:37:02.65IPフラグメンテーションという仕組みがあり、UDPパケットのサイズが大きく
MTUのサイズを超えてしまう場合には、複数のIPパケットに分割して格納される。
ただしルーター側で無効にしている場合もあります。
PacMonやWiresharkでUDPパケットをキャプチャー出来ないのは、
おそらくIPフラグメンテーションで分割されたUDPパケットを解析する
機能が無いからです。
IPパケットを自力で解析すれば、そこには分割されたUDPパケットが
格納されてると思います。
0181デフォルトの名無しさん
2012/06/12(火) 11:30:00.93>IPフラグメンテーションという仕組みがあり、UDPパケットのサイズが大きく
>MTUのサイズを超えてしまう場合には、複数のIPパケットに分割して格納される。
>ただしルーター側で無効にしている場合もあります。
・その分割されたパケットはどこで(ex: 受信側のUDPスタック)組み立てるの?
・分割された複数パケットの到着順序が崩れたり(or 反転したり)、ロストした場合はどう振る舞うの?
・これらはプロトコル仕様書(RFC)のどこに記述されているの?
IPフラグメンテーション機能が活躍するのはTCPの場合だけだよ
UDPやICMPといったプロトコルの場合、
・送信側UDPスタックでは、IPヘッダ内にあるフラグメント禁止ビットをオンにしてパケットを送信
・途中のルータはフラグメントが必要になった場合、(フラグメント禁止だから)パケットを破棄し、
送信元へはICMPの未到達(unreachable)メッセージを返す
というのが一般的な実装だと記憶していたのだけどなあ....
0182デフォルトの名無しさん
2012/06/12(火) 12:14:47.34>・その分割されたパケットはどこで(ex: 受信側のUDPスタック)組み立てるの?
受信側のIPスタックが組み立てるにきまってるだろ。
>・分割された複数パケットの到着順序が崩れたり(or 反転したり)、ロストした場合はどう振る舞うの?
複数パケットの到着順序が崩れたら、正しい順番に並びかえる。
ロストしたら破棄される。
>・これらはプロトコル仕様書(RFC)のどこに記述されているの?
STD-5だよ。
>・送信側UDPスタックでは、IPヘッダ内にあるフラグメント禁止ビットをオンにしてパケットを送信
>・途中のルータはフラグメントが必要になった場合、(フラグメント禁止だから)パケットを破棄し、
> 送信元へはICMPの未到達(unreachable)メッセージを返す
それこそRFCの何処に書いてあるんだよ?
0183デフォルトの名無しさん
2012/06/12(火) 12:49:36.11APでやれよ162
0184デフォルトの名無しさん
2012/06/12(火) 13:23:15.95暇つぶしならどうでも良いけど。
0185デフォルトの名無しさん
2012/06/12(火) 13:29:56.41UDP/IP
0186デフォルトの名無しさん
2012/06/12(火) 13:57:16.62>受信側のIPスタックが組み立てるにきまってるだろ。
ほう、IPスタックに分割されたパケットを組立てる機能があるとは初耳だ
自分の知識ではIPパケットの組み立ては(受信側の)TCPスタックの機能なんだけどね....
それはどこに書いてあるの?(RFCならbestだけど、解説文書へのリンクでもokだよん)
>複数パケットの到着順序が崩れたら、正しい順番に並びかえる。
これも「どこ」で処理されるの?UDPスタック? それとも アプリケーション?
自分の知識ではパケット順序性の保証はTCPスタックの機能(責任)なんだけど、
今の議論の文脈だと「TCPは無関係」だよね?
>STD-5だよ。
RFC番号をヨロシク
>それこそRFCの何処に書いてあるんだよ?
まず自分のカキコに誤りがあったので訂正する
送信元へ返されるICMPメッセージについて、>>181では「未到達(unreachable)」と書いたけど、
これは "fragmentation needed and DF set" に訂正する
次に、この自分は知らないよ
少なくとも RFC 768 - User Datagram Protocol に、IPフラグメントに関する記述は無い
というか、そもそもUDPではパケットが分割されることを想定して設計されていない
送信元が分割(フラグメンテーション)が起きない長さで送出することを期待している
これを実現するのが RFC1191 - Path MTU Discovery だ
日本語で書かれた解説へのリンクを紹介しておく
@network Cisco・アライド実機で学ぶ > TCP/IP入門 > Path MTU Discovery
http://atnetwork.info/tcpip/tcpip91.html
0187デフォルトの名無しさん
2012/06/12(火) 14:05:48.190188186
2012/06/12(火) 14:08:47.79X: 次に、この自分は知らないよ
O: 次に、これが何処に書いてあるのか自分は知らないよ
あと、"fragmentation needed and DF set" の DF は don't fragment の略語
0189162
2012/06/12(火) 14:34:51.96難しくて理解できていませんが・・・
1,環境依存である。
2,送信側から10Kを送信しても途中の機器が10KバイトのMTUに対応していない場合には、
分割される。(UDPも分割される???)
3,分割されない場合には破棄されて、ICMPエラー通知が届く。
1と3の状況なのかなぁと思っています。
対応しているMTUを越えた場合に全部が破棄されずに先頭1514バイトだけが届くなんて事はありえますか?
0190デフォルトの名無しさん
2012/06/12(火) 14:37:29.550191デフォルトの名無しさん
2012/06/12(火) 14:40:52.00>ほう、IPスタックに分割されたパケットを組立てる機能があるとは初耳だ
そうか。勉強になってよかったな。
その事もSTD-5に書かれてるから読んだ方がいいよ。
>>複数パケットの到着順序が崩れたら、正しい順番に並びかえる。
>これも「どこ」で処理されるの?UDPスタック? それとも アプリケーション?
IPスタックが処理するんだよ。
>RFC番号をヨロシク
(´・ω・`)
>まず自分のカキコに誤りがあったので訂正する
細かい間違いを論ったりするほど狭量じゃないから安心していいよ。
0192デフォルトの名無しさん
2012/06/12(火) 17:31:31.80どこの惑星の話?
0193デフォルトの名無しさん
2012/06/12(火) 17:33:02.360194デフォルトの名無しさん
2012/06/12(火) 18:10:55.250195デフォルトの名無しさん
2012/06/12(火) 19:55:04.85残念ながらわが国にはそういう輩がSEやプログラマーと名乗っているのだよ。
他の技術系の職種では信じられない事であるがな。
0196デフォルトの名無しさん
2012/06/12(火) 20:00:50.080197デフォルトの名無しさん
2012/06/12(火) 22:42:51.01>先頭1514バイトだけが届くなんて事はありえますか?
180にも書いたが、恐らくはちゃんと10KB全部ちゃんとネットワーク上を流れている。
ただ189の知識不足できちんと解析できていないだけ。
184や186の言うとおり、UDPはMTUサイズを超えないように使うのが一般的だし、
MTUサイズを超えた場合は通信障害が起きやすくなる。
素直にUDPパケットが1KB程度になるようにプロトコルを設計しなおした方がいい。
0198デフォルトの名無しさん
2012/06/12(火) 23:42:43.04ドライバ作ってるとかならそうなんだろうけど
0199デフォルトの名無しさん
2012/06/13(水) 00:22:36.43UDPはデータは消えてなくなっても文句を言えない仕様だから
結構意識する必要がある
でかいパケットはまず間違いなく後ろカットされるし
0200デフォルトの名無しさん
2012/06/13(水) 00:26:07.44また別の話だと思うがな。
0201デフォルトの名無しさん
2012/06/13(水) 00:53:56.64プログラム側は一度に送ろうが小出しにしようが関係が無い
0202デフォルトの名無しさん
2012/06/13(水) 09:44:46.78まさに今回の現象(>>162)が解説されている
Q: 5.8 データグラムの最初の部分しか届かないんですが、どうしてなんでしょうか?
A: プラットフォームによっては(MTU値のため)データグラムを分解し、
そして相手側で再構成させるIP断片化をサポートしているものもありますが、
しかし全ての実装がこれをサポートしているわけではありません。
で、Windows実装はというと、同じ>>1の「Winsock Programmer's FAQ (日本語訳)」によれば、
Q: 3.6 - UDP って何? どんな制限があるの?
A: プロトコルスタックは、UDPデータグラムの大きさがネットワークのMTUより大きいときは、
データグラムを分割します。通信相手側のスタックはその分割片から完全なデータ グラムを
再び組み立ててから受信側のプログラムに渡します。もし分割片の一部が失われたり
壊れていたりしたときは、そのデータグラム全体が捨て去られます。このため、
巨大なデータグラムを送るのはあまり実用的ではありません。例えば、8KのUDP データグラムは、
Ethernet 上に送信されると、6つの塊に分割されます。もしこの6個の分割片のう ち一つでも
喪失したり壊れたりすると、8Kのデータグラム全体が捨てられてしまうのです。
とあり、Windows実装では(効率性を無視すれば)分割/再構成ともサポートされていると解釈できる
でも、これでは今回の現象(>>162)を説明できない
正しく実装されているなら、全データ(10KB)が到着するか全て破棄されるかのどちらかになるはず
>>162の現象把握のどこかに見落としがあるのか、それともこれらFAQ集に誤りがあるのか....???
0203デフォルトの名無しさん
2012/06/13(水) 10:06:48.980204デフォルトの名無しさん
2012/06/13(水) 11:48:37.98再構築はOS側のスタックで行われるが、
>>162はアナライザで見てるから。
0205デフォルトの名無しさん
2012/06/13(水) 18:07:17.02何年も前の話がループしてるのか
0206デフォルトの名無しさん
2012/06/13(水) 20:21:46.410207デフォルトの名無しさん
2012/06/13(水) 20:44:46.610208デフォルトの名無しさん
2012/06/13(水) 20:47:29.160209デフォルトの名無しさん
2012/06/13(水) 20:49:27.900210デフォルトの名無しさん
2012/06/13(水) 21:02:27.100211デフォルトの名無しさん
2012/06/13(水) 21:05:45.8510000バイトの中身を比較したとは書いてないところが...
0212デフォルトの名無しさん
2012/06/13(水) 21:52:55.96落ち着いて>162を読み返すんだ
0213デフォルトの名無しさん
2012/06/13(水) 22:28:24.48受け取ったとは書いてないような?
0214デフォルトの名無しさん
2012/06/13(水) 22:42:37.33落ち着け
比較した結果もそこに書いてある
0215212
2012/06/13(水) 22:44:25.94深呼吸した
0216デフォルトの名無しさん
2012/06/13(水) 23:33:17.000217デフォルトの名無しさん
2012/06/13(水) 23:34:57.150218デフォルトの名無しさん
2012/06/13(水) 23:41:27.510219デフォルトの名無しさん
2012/06/13(水) 23:44:18.80できないなら、それ踏まえて、別な方法考えないと
0220デフォルトの名無しさん
2012/06/13(水) 23:50:16.10分割しようがしまいが受信できる保証はないが?
0221デフォルトの名無しさん
2012/06/14(木) 00:07:55.50・10000バイト、Winsockにデータを与えた(この時点で送信などしていない)
・データを受け取りましたと返した(同上)
・相手の状態見たらさきっぽだけ出てきた(少なくとも、さきっぽだけ送信側が送信した)
なにもおかしくないよね
0222デフォルトの名無しさん
2012/06/14(木) 00:25:15.63やりますとは書いてあるけど、実際やってどうなるかの保証はないでしょ、UDPだから
MTUが512を想定して、考えたな、昔
0223デフォルトの名無しさん
2012/06/14(木) 10:35:38.37アナライザで見ただけ。
最初に受け取るコードかいてりゃこんなとこ来てないw
0224デフォルトの名無しさん
2012/06/14(木) 10:51:40.650225デフォルトの名無しさん
2012/06/14(木) 11:03:22.93このスレの住人の得意技だね
0226デフォルトの名無しさん
2012/06/14(木) 11:30:24.99アナライザに10000バイト表示されればいいの?
0227デフォルトの名無しさん
2012/06/14(木) 12:02:36.32すでに何人からか指摘があるけど、断片化が発生しないよう十分に小さなサイズでsendtoすること
もし大きなデータを送信したいのならアプリ側で分割/組み立て機能を実装する(TFTPのように)
IP層での断片化はRFCで仕様としては定義されているけど、その実装は必須ではないから環境依存
0228デフォルトの名無しさん
2012/06/14(木) 12:07:03.04アナライザの使い方間違っているとしか思えないんだが
0229デフォルトの名無しさん
2012/06/14(木) 12:08:50.04・本読まない
・仕様はいわずもがな
・実装もしらない
・調べる気もない
・金を払うきもない
0230デフォルトの名無しさん
2012/06/14(木) 12:15:52.0710000バイト受け取った か 何も受け取らなかった の 2択ですしー
0231デフォルトの名無しさん
2012/06/14(木) 12:16:53.78ICMP Echo(ping)で試してみれば良いのに。
WindowsでもLinuxでも10kバイトくらいなら何の問題もないが。
0232デフォルトの名無しさん
2012/06/14(木) 12:32:32.97いや、IPパケットの分割そのものはTCPで必須だから、どのアナライザでも見えるはずなんだよ
でも、「UDPデータグラムの分割(=断片化)」というのは常識的には想定されていないグレーゾーンだから、
アナライザ側での対応も解析可否を即答できる人はかなり限定されるんじゃまいかと
どうしても知りたいのならフリーならフォーラムへ有償ならベンダーへ問い合わせしたほうがいいと思う
自分なら最も素朴で実績のあるアナライザである、UNIX(Linux or Mac)のtcpdumpを使うけどね
最悪、-xオプションで全フレームを16進ダンプして自力で解析プログラムを組むことも考える
0233229
2012/06/14(木) 14:27:54.70・パケットアナライザーも使えません
いうことありません
0234デフォルトの名無しさん
2012/06/14(木) 20:10:26.38昔、TCPサーバアプリを作る時に過去スレ全部見たな〜
おかげで初めて作ったTCPアプリだったが何年も何の問題もなく動いている。
0235デフォルトの名無しさん
2012/06/14(木) 20:35:16.980236デフォルトの名無しさん
2012/06/14(木) 20:48:20.36IPフラグメントの話で、なんで上位層のTCPとかUDPとかが出てくるんだろう?
0237デフォルトの名無しさん
2012/06/14(木) 21:06:58.41何、言ってんのか、わからんのだけど
0238デフォルトの名無しさん
2012/06/14(木) 21:36:05.26この意味がわからん。
0239デフォルトの名無しさん
2012/06/14(木) 22:09:52.82このスレで紹介されているサイトや スティーヴンスの本も読んだよ。
ここは90%以上ゴミレスだけど時々神が降臨されるのさ。
0240デフォルトの名無しさん
2012/06/14(木) 23:16:42.70ソースは?
0241デフォルトの名無しさん
2012/06/15(金) 00:51:01.82>>181が馬鹿な回答するから、質問者を混乱させてるんじゃないか。
0242デフォルトの名無しさん
2012/06/15(金) 01:17:59.73http://wiki.wireshark.org/IP_Reassembly
0243デフォルトの名無しさん
2012/06/15(金) 01:26:17.48データを保証しないといけないからね
IPとして処理される段階ではMTUとかに合わせたサイズになっとる
0244デフォルトの名無しさん
2012/06/15(金) 08:56:02.26何年も前の話がループしてるのか
0245デフォルトの名無しさん
2012/06/15(金) 14:31:37.40>>205
何年も前どころか二日前の話がループしている。
0246デフォルトの名無しさん
2012/06/15(金) 17:34:02.50> TCPの送信段階で分割したような動作になってるだけでしょ
> データを保証しないといけないからね
あのね、UDPの話で始まってるのよ。
状況とTCP/IPの仕様をちゃんと把握してないのに適当にレスする奴多すぎw
>>232とか斜めすぎて意味がわからん。
0247デフォルトの名無しさん
2012/06/15(金) 18:04:05.680248デフォルトの名無しさん
2012/06/15(金) 18:18:00.800249デフォルトの名無しさん
2012/06/15(金) 18:23:39.72・IP層の断片化 (途中経路でも起きる。only IPv4)
・TCP層のセグメント分割 (peerのみで行われる)
を区別できてないだけ。
どちらもMTUが絡むから、初級者によくある混同で、それほど意味不明でもない。
ただしUDPについて推測で発言しているから、相当おかしい内容になってるけれども。
0250デフォルトの名無しさん
2012/06/16(土) 17:25:18.62インターネットに流すならルータがめんどくさいなって思ったら容赦なく捨ててるから届かないって感じだ。
今はicmpで通知しても安物ブロードバンドルータが捨ててしまうからねえ。
送る側で小さくしてみてどのくらいなら通るって試行錯誤しながら送るしかない。ファイルベースなら512バイトずつ読んでるはずだから、512バイト読んでそのまま送ればいいんじゃ無い。
2セクタ読んで1024バイト送ってみてどのくらいパフォーマンス上がるかも環境次第だしねえ。
lteとかwimaxとかで帯域制限された/混雑時の送信ノウハウなんてのも必要なのかもしれない。128kbps制限とかされたらまず送ってもエラーだしね。
0251デフォルトの名無しさん
2012/06/16(土) 17:30:18.320252デフォルトの名無しさん
2012/06/16(土) 17:33:23.120253デフォルトの名無しさん
2012/06/16(土) 17:40:39.59そういう話じゃねーよ。>>181>>232は明らかに仕様を理解してない。
0254デフォルトの名無しさん
2012/06/16(土) 19:27:39.93バカの長文乙
0255デフォルトの名無しさん
2012/06/16(土) 19:31:50.890256デフォルトの名無しさん
2012/06/16(土) 19:35:34.910257デフォルトの名無しさん
2012/06/16(土) 19:40:30.380258デフォルトの名無しさん
2012/06/16(土) 19:40:35.09人に作ってもらって喜んでるガキレベルかもね
0259デフォルトの名無しさん
2012/06/16(土) 21:26:02.57本質ってなに? ちょっとここに書いてみて
0260デフォルトの名無しさん
2012/06/16(土) 21:55:39.820261デフォルトの名無しさん
2012/06/16(土) 22:32:04.03資料あっても必要なとこも探さない読めない系の人が増えてる?
0262デフォルトの名無しさん
2012/06/16(土) 22:54:28.18229,233
0263デフォルトの名無しさん
2012/06/16(土) 23:19:49.73(ill-functionalなhostは経路上にいないと仮定しても)
そしてTCPスタックが馬鹿だと、自分では解決しづらいことがある。
どういう時に起きうるかというと、
ルータの次の経路のMTUが極端に小さいのに、
fragmentationの実装は必須でないので実装してない場合。
(reassemblyの実装は必須)
まあ要するに十分小さいパケットを送っていれば気にする必要はない。
TCPスタックが行なっている解決方法は、
"Fragmentation Considered Harmful"を。
UDPプログラマはこの程度の内容は知っておくべき。
LAN内でしか使わないなら、なんちゃってプログラミングでいいと思うが。
0264デフォルトの名無しさん
2012/06/16(土) 23:27:01.08それがキミの考える「本質」なの?
0265デフォルトの名無しさん
2012/06/16(土) 23:45:24.49君の答えは?
0266デフォルトの名無しさん
2012/06/16(土) 23:48:14.14人に説明を求めて解答が常に得られると思っている蒙昧な者も多い
0267262
2012/06/16(土) 23:52:49.670268デフォルトの名無しさん
2012/06/16(土) 23:56:16.24( ‘д‘)
⊂彡☆))Д´) >>267
0269デフォルトの名無しさん
2012/06/17(日) 00:02:38.85ここで言う「本質」が何を指しているかわからんから、この文自体が
何を言っているかわからないというだけだろ?
別に何か意味があるわけじゃなくて、なんとなくもっともらしい台詞を
書いただけなのかも知れんが。
0270267
2012/06/17(日) 00:06:22.970271デフォルトの名無しさん
2012/06/17(日) 00:06:24.02って言いたいだけだろ。
ここまでのレスで内容が具体的に書かれてないところ見ると、本当かどうかは
かなり疑わしいから、普通にスルーでいいんじゃね?
0272デフォルトの名無しさん
2012/06/17(日) 00:13:53.84君は質問者か?
0273デフォルトの名無しさん
2012/06/17(日) 00:20:41.170274デフォルトの名無しさん
2012/06/17(日) 00:24:37.070275デフォルトの名無しさん
2012/06/17(日) 00:25:28.46そんな事は、その具体的なレス番を示してから言うことだよ。
0276デフォルトの名無しさん
2012/06/17(日) 00:28:58.56スルーしたレス番を示してみな?
0277デフォルトの名無しさん
2012/06/17(日) 00:47:14.93>>273 理解できないからスルーしたんだろ
俺) 内容書いてあるレス番書きなよ
>>275 スルーしたレス番示せ
ひょっとして、馬鹿なの?
まあ、やっぱ脳内レスでしたというオチなんだろうな。
0278デフォルトの名無しさん
2012/06/17(日) 00:55:55.40スルーしたレス番を示してみな?
0279デフォルトの名無しさん
2012/06/17(日) 01:55:08.65それがわかれば十分、相手にした俺が馬鹿だったよ。
0280デフォルトの名無しさん
2012/06/17(日) 03:52:26.83udp要らないじゃない。
まあインターネットでudpで送ってもまず届かないから、lanやネットワーク管理者の管理下にある社内lan程度に留めとけってのは分かるけど。
0281デフォルトの名無しさん
2012/06/17(日) 08:44:55.63途中のreouterであえてUDPをブロックしたり優先度を下げているとかじゃなけりゃ。
0282デフォルトの名無しさん
2012/06/17(日) 10:18:43.710283デフォルトの名無しさん
2012/06/17(日) 10:32:45.220284デフォルトの名無しさん
2012/06/17(日) 10:35:48.730285デフォルトの名無しさん
2012/06/17(日) 10:37:13.45283=281?
0286デフォルトの名無しさん
2012/06/17(日) 15:21:18.06どのあたりが馬鹿なのか、解説してみろ。
0287デフォルトの名無しさん
2012/06/17(日) 15:59:09.14君のレス番は?
0288デフォルトの名無しさん
2012/06/17(日) 16:14:10.70>>281
0289デフォルトの名無しさん
2012/06/17(日) 17:04:23.57そこだけつっこんもしょうがねーだろ
馬鹿の壁
0290デフォルトの名無しさん
2012/06/17(日) 17:20:45.61馬鹿にはできない突っ込みの手本というものを見せてくれ。
0291デフォルトの名無しさん
2012/06/17(日) 17:37:32.280292デフォルトの名無しさん
2012/06/17(日) 17:42:04.990293デフォルトの名無しさん
2012/06/17(日) 17:53:30.34くやしいから何か言い返したくて「馬鹿」と言っているだけ。
0294デフォルトの名無しさん
2012/06/17(日) 21:00:40.40昔はFreeBSDの方が1.1倍いいと言われていたが
0295デフォルトの名無しさん
2012/06/17(日) 21:10:13.68今はFreeBSDの1.2倍いい
ちなみにWindowsは33倍いい
0296デフォルトの名無しさん
2012/06/17(日) 21:12:21.64根拠はある?
0297デフォルトの名無しさん
2012/06/18(月) 12:00:30.440298デフォルトの名無しさん
2012/06/23(土) 22:14:47.790299デフォルトの名無しさん
2012/07/17(火) 10:20:52.610300デフォルトの名無しさん
2012/07/20(金) 13:11:51.43ポートを開放しているPC-Aとポート未開放のPC-Bがあるとき、
1)B→Aに送信
2)Aは受信後、送信元(B)に送信
3)Bが受信
としたとき、2〜3番のA→BについてもUDPホールパンチングによって可能となった
と考えていいのかな?
0301デフォルトの名無しさん
2012/07/20(金) 14:21:42.490302デフォルトの名無しさん
2012/07/20(金) 14:38:36.30(1)についてもUDPホールパンチングによって可能となったと考えているのか?
0303デフォルトの名無しさん
2012/07/20(金) 14:57:51.74>>302
「も」は一般的に例に挙げられるポート未開放のクライアント同士の通信に対しての「も」だよ
0304デフォルトの名無しさん
2012/07/20(金) 17:37:03.54> UDPホールパンチングの説明ってポートを開放していないクライアント同士の例ばっかりだけど、
でないことが分かる。
0305デフォルトの名無しさん
2012/07/29(日) 23:11:40.41IPMsgみたいなことをやりたくて、
1.A機種でServerSocketを待受て、AからUDP送信
2.B、C、D機種で受信
3.B、C、Dで受信したパケットオブジェクトから、Aのアドレスを取得して、
各機種からAのServerSocketめがけてTCP接続
→ エラー発生(することがある)
結果、
・B、C、Dすべてで、応答成功
・B、CはAへ応答を返せたのに、DでだけNo route to hostが出る
・Dは成功したが、B、CでNo ry〜
みたいな症状が出ています
タイミング的なもんか?とは思うんですが、なんかよくわからん
・No ry〜が出るときは、DからAへのpingコマンドでnetwork unreachable、
・AからDへpingすると、接続が回復する(ように見える。次回アプリ実行時にNo ry〜が出ない)
・Dからarp who-hasのブロードキャストが出ているが、Aで受信せず、B、Cでは受信できている
stackoverflow.comでAndroid + No route to hostって質問がいくつかあるけど、
結局解決してないように見える
なので、2chで解決するべ
0306デフォルトの名無しさん
2012/07/31(火) 00:43:37.010307デフォルトの名無しさん
2012/08/05(日) 11:23:49.49ジャッチメント(規律委員)は全員しておくこと 1円でしておくこと
最新情報 大金をすべてしておくこと
下に、無限超を数字にして、沢山書いて、数十枚、数百枚、数千万枚、数千京京京にして、銀行や松井証券など
に提出、FAXすればいいよ。上に京万枚と書いておくこと
最新情報 大金
http://sky.geocities.jp/mannga9999/keizai2.txt
経営板で、アイスクリーム屋と、クリーニングの板見ればいい。
ほい。
http://yuzuru.2ch.net/test/read.cgi/sakura/1158988790/
あとは、財閥の登記するだけ。kore
これノウハウ。教えていってたから、教えたおん。よ。
まーちゃんに、募金すること
突っ張りすぎて、中国の元が無価値になっぞ。実態のない経済は滅ぶ 今、元はマイナス。
http://blogs.yahoo.co.jp/mymymy90jp/2857425.html
これ改造して、大富豪ソフト作れない?金のレートが下がる時は、レートも下がるので、落ちる角度を計算してMその前にもどす機能があると、世界不況のときにも、できる。
http://www.vector.co.jp/soft/dl/win95/business/se312001.html
探せば、ソフトあるよ。瀬谷貴文が完成させている。
絶対命令
http://yuzuru.2ch.net/test/read.cgi/sakura/1158988790/
http://yuzuru.2ch.net/test/read.cgi/sakura/1158988790/
http://yuzuru.2ch.net/test/read.cgi/sakura/1158988790/
http://yuzuru.2ch.net/test/read.cgi/sakura/1158988790/
http://yuzuru.2ch.net/test/read.cgi/sakura/1158988790/
http://yuzuru.2ch.net/test/read.cgi/sakura/1158988790/
masaの分もやっておくこと
depend on 銀行、matuisyouken monex
最後に、福祉財団、貧しい人を助ける財団をつくること
絶対命令 DC
0308デフォルトの名無しさん
2012/08/05(日) 14:13:01.430309デフォルトの名無しさん
2012/08/07(火) 11:42:50.66送信間隔は50msくらいなんですけどたまにパケットがロストします
特にsendtoはエラーを吐くわけでもなく普通に通信を続行してます
1時間に0から2回程度ロストする現象が起きます
このようなことはUDP通信では普通なのでしょうか?
なんとかロストしない方法があったら教えてください
0310デフォルトの名無しさん
2012/08/07(火) 11:52:18.15ロストしたらもう一度送ればいいと思います
0311デフォルトの名無しさん
2012/08/07(火) 12:17:29.49パケットヘッダのチェエクサムってのはルータを通るたびに変わるんですかい?
他にルータを経由してパケっどヘッダの中身で変わる可能性があるのは
Type of Service, TTL, Header Checksum, Option であってます?
0312デフォルトの名無しさん
2012/08/07(火) 12:32:14.800313デフォルトの名無しさん
2012/08/07(火) 12:50:16.33UDPはロストするもんです嫌ならTCPを使いましょう。
1:1の通信でUDPを使うメリットは殆どないと思いますけど。
0314デフォルトの名無しさん
2012/08/07(火) 12:58:17.65ど素人がアドバイスするのは100年早いですよ。
0315デフォルトの名無しさん
2012/08/07(火) 13:00:13.80NATとかフラグメントとか考えれば
もっといろいろ書き変わるけど。
0316デフォルトの名無しさん
2012/08/07(火) 13:00:39.69マルチキャスト/ブロードキャストよりユニキャストの方が圧倒的に
多く使われている。
0317デフォルトの名無しさん
2012/08/07(火) 13:02:56.60STREAMとDATAGRAMの差も理解できないバカですか?
0318デフォルトの名無しさん
2012/08/07(火) 13:05:05.69TCP(ストリームベース だけど、リトライ等である程度保障)
中間の SCTP ってのがあるけど… まだまだ普及してない印象
ある程度保障されたデータグラムのやり取り という用途は悩ましい
UDP でリトライ機構を考えるか, TCPでデータグラム単位に切り出す機構を考えるか
0319デフォルトの名無しさん
2012/08/07(火) 13:08:55.69>>313の一行目はいいと思う。
2行目は間違い。
0320デフォルトの名無しさん
2012/08/07(火) 13:10:46.780321デフォルトの名無しさん
2012/08/07(火) 13:12:24.73いいえ、50ms間隔で送信という要件が出てきた時点で
TCPが候補に挙がることはあり得ません。
1行目も誤りです。TCPの再送機構にだけ目が行き、
それによってどのようなパケットフローになるかがまったく
考慮されていません。
0322デフォルトの名無しさん
2012/08/07(火) 13:14:44.08逆に言うと
そのあたりがなければTOSとTTLくらいってことですか
ありがとうございました。
0323デフォルトの名無しさん
2012/08/07(火) 13:17:53.52全く解決できてないしw
0324デフォルトの名無しさん
2012/08/07(火) 13:18:27.96PSHフラグあるがな。
0325デフォルトの名無しさん
2012/08/07(火) 13:18:40.660326デフォルトの名無しさん
2012/08/07(火) 13:19:24.85> なんとかロストしない方法があったら教えてください
そりゃこれが直結しない限り解決不能だし。
0327デフォルトの名無しさん
2012/08/07(火) 13:26:23.22すごい結果が待ってる気がするw
0328デフォルトの名無しさん
2012/08/07(火) 13:26:27.330329デフォルトの名無しさん
2012/08/07(火) 13:29:51.9450msがTCPじゃだめでUDPならOKという判断がどこから出てくるのかと
0330デフォルトの名無しさん
2012/08/07(火) 13:31:20.43> なんとかロストしない方法があったら教えてください
の要件で
0331309
2012/08/07(火) 13:31:25.94直結でやってますけど1時間に1回くらいでる頻度を
3時間に1回とかもっと頻度を減らすことは無理ですか?
0332デフォルトの名無しさん
2012/08/07(火) 13:31:55.82回線上ではロストしていないことが前提だけど
SO_RCVBUFとSO_SNDBUFを増やしてみては?
0333デフォルトの名無しさん
2012/08/07(火) 13:32:30.84データサイズがわからないメクラはレス禁止
0334デフォルトの名無しさん
2012/08/07(火) 13:34:20.77OS、ネットワークHW、ドライバを厳選すれば頻度を下げることは不可能ではない
0335デフォルトの名無しさん
2012/08/07(火) 13:35:20.800336デフォルトの名無しさん
2012/08/07(火) 13:41:01.260337デフォルトの名無しさん
2012/08/07(火) 13:41:39.85PSHの作用としては正しいけど、そういう使い方をするものじゃないよ。
0338309
2012/08/07(火) 13:42:36.82使ったことないけどパケットキャプチャソフト使って監視して
ちゃんと受けてるのに消えてるならバッファ容量増やすってことですね
ちょっとやってみます
0339デフォルトの名無しさん
2012/08/07(火) 13:44:01.940340デフォルトの名無しさん
2012/08/07(火) 13:44:45.46netstat
0341デフォルトの名無しさん
2012/08/07(火) 13:45:23.360342デフォルトの名無しさん
2012/08/07(火) 13:45:51.47以下のような、定遅延で高品質なシステムを設計すれば可能かもしれない
・リアルタイムOSを採用して、通信プロセスが途中でスイッチされない優先度を設定する
・コンピュータとネットワーク全体を電磁シールドで包み込む
それが無理なら、素直に>>313が言うようにTCPを採用しなさい
0343デフォルトの名無しさん
2012/08/07(火) 13:46:05.06100%ロストしない環境は構築できないよ。
SATAやPCIEですらパケットロスがあるんだぜ?
0344デフォルトの名無しさん
2012/08/07(火) 13:46:34.10分かりました100年後にまたレスします
0345デフォルトの名無しさん
2012/08/07(火) 13:48:18.4550ms間隔で刈り取れることを前提にバッファサイズが950バイトに
なってるかもしれんw
0346デフォルトの名無しさん
2012/08/07(火) 13:49:09.660347デフォルトの名無しさん
2012/08/07(火) 13:50:59.8820msごとに950バイトのデータを送信って何に使うのですか?
しかもロストしないのが前提って。
0348デフォルトの名無しさん
2012/08/07(火) 13:53:07.950349デフォルトの名無しさん
2012/08/07(火) 13:53:47.93不明な用途では回答できないなら引っ込んでなよ。
0350デフォルトの名無しさん
2012/08/07(火) 13:55:27.97良いこと言った
0351デフォルトの名無しさん
2012/08/07(火) 13:57:18.36よく読まないメクラが多いな
0352デフォルトの名無しさん
2012/08/07(火) 13:58:29.350353デフォルトの名無しさん
2012/08/07(火) 13:59:34.790354デフォルトの名無しさん
2012/08/07(火) 14:00:33.130355デフォルトの名無しさん
2012/08/07(火) 14:05:04.321時間に1,2回再送するだけじゃないのよ?
0356342
2012/08/07(火) 14:07:31.25ん?50msという定数を速い or 遅い、どちらで判断しているのかな?
こういった定数は前提環境によって基準が変わるから、まずそれを明確にしてほしいね
自分としては、>>309に「信頼性のある(=ロストしない)通信」という要件が出てきた時点で、
第一候補としてTCPを選ぶよ
どうしてもUDP上の独自プロトコルを設計する価値のある極めて限られたケースであれば、
ようやくUDP選択を検討し始める
>>344
馬鹿のつまらんヤジはスルー汁!!
0357デフォルトの名無しさん
2012/08/07(火) 14:11:08.130358309
2012/08/07(火) 14:14:26.91Microsoft Network Monitor3.4で受信側PCを監視したら
パケットが届いていませんでした
これは完全にロストってことでどうしようもないですか?
まだロスト率下げる手とかあるんでしょうか?
余りプログラムを触りたくないのでUDPでやりたいんです
0359デフォルトの名無しさん
2012/08/07(火) 14:17:39.10再送ロジックを実装汁よ。
0360デフォルトの名無しさん
2012/08/07(火) 14:18:09.640361デフォルトの名無しさん
2012/08/07(火) 14:19:52.341パケット/1時間より高頻度で発生してるって事じゃん。
0362デフォルトの名無しさん
2012/08/07(火) 14:21:13.330363デフォルトの名無しさん
2012/08/07(火) 14:23:03.780364デフォルトの名無しさん
2012/08/07(火) 14:23:48.74相手からの応答処理とかいろいろ追加してたら20msでの送信も難しくなるし
ロストは仕方ないとして頻度を減らすいいてがあれば…
0365342
2012/08/07(火) 14:30:48.72まだ言ってるかwww
(>>358) >まだロスト率下げる手とかあるんでしょうか?
(>>364) >ロストは仕方ないとして頻度を減らすいいてがあれば…
>>334,342を嫁
>余りプログラムを触りたくないのでUDPでやりたいんです
前段の手段なら完全にハードウェアの話だから、プログラムは無変更で対応できる「かも」しれない
それが嫌なら、素直にTCPを使いなさい
>>359
プログラムをUDPベースからTCPベースへ書き換えるコストと
UDP上の独自プロトコルに再送ロジックを追加実装するコストを比較汁!!
0366デフォルトの名無しさん
2012/08/07(火) 14:31:04.76無いでしょう。
直結ならRS-232C/422で良いのでは。
0367デフォルトの名無しさん
2012/08/07(火) 14:35:55.040368デフォルトの名無しさん
2012/08/07(火) 14:40:04.60やみくもにTCP勧めてるのは宗教家か何かだな。
0369デフォルトの名無しさん
2012/08/07(火) 14:43:34.88TCPはロスが続いた時の復旧がね。
個人的には再送制御を簡単に入れ込んだUDPのほうがおすすめ。
0370デフォルトの名無しさん
2012/08/07(火) 14:45:48.840371デフォルトの名無しさん
2012/08/07(火) 14:46:16.08アナログ的なデータならロストしたところを前後値から補完すればよさそうだしね。
用途が分からなきゃアドバイスもできない。
>>369
TCPの再発明にならなきゃ良いけど
0372デフォルトの名無しさん
2012/08/07(火) 14:46:36.35環境によるだろうし今うまく行ってもあとで困るかもだし。
連番入れて抜けたらそこからやり直してもらう、とかでいいんじゃ?
0373デフォルトの名無しさん
2012/08/07(火) 14:48:41.7220ms間隔で1時間送って1,2個のロスでしょ。
殆どACK応答で再送なんかないでしょ。
0374デフォルトの名無しさん
2012/08/07(火) 14:49:01.13TCPはロスが続くとどんどん再送時間が長くなるんだよ。
ストリームだからその間データは送れないしね。
物理的に復旧してから再送時間の満了までが無駄。
順序性保証との兼ね合いだけど、UDPでガンガン送り続けて
届かなかった分だけ再送で送りなおしてもらうほうが俺の好み。
0375デフォルトの名無しさん
2012/08/07(火) 14:51:20.990376デフォルトの名無しさん
2012/08/07(火) 14:51:28.131時間で1,2個のロスしか絶対にしないことが保証されているならね。
何用のプログラムか知らないけど、それが保証されているならいいけど、
俺は、何かの実運用に使われることを想定してケーブル抜けとかそういう
のを考慮してUDPを推してる。
0377デフォルトの名無しさん
2012/08/07(火) 14:53:34.45そうでもないよ?
TCP並みにやろうとするとすごいことになるけど、
オリジナルの簡単な再送ロジックとか作っておくと、いろいろ使いまわせるよ。
0378309
2012/08/07(火) 14:55:30.76厳密に言うと今は直結もどきなので本当のクロス直結でやってみます
これでロスが減るとうれしいんですが…
ちなみに現状の構成はこうなっています。
スイッチングハブだから直結と同じかと思ってますが違うのですかね?
PC(送信)---スイッチングハブ---PC(受信)
|
モニタ用PC---(無線)---ルータ---(インターネット)
これを、以下のようにしてやってみます
PC(送信)---PC(受信)
0379デフォルトの名無しさん
2012/08/07(火) 14:56:17.680380デフォルトの名無しさん
2012/08/07(火) 14:56:22.16一方的にTCPで送ってTCPのエラーが返ってくるまでだと接続断検知まで
何分も待たされるけどね。普通は相手側からなんらかの応答が返るような上位プロトコルに
するでしょうし。
0381デフォルトの名無しさん
2012/08/07(火) 14:58:41.89スイッチングハブって他のPCのパケットモニターできるの?
0382デフォルトの名無しさん
2012/08/07(火) 15:00:23.420383デフォルトの名無しさん
2012/08/07(火) 15:00:43.31TCPにするにしても、それなりに手が入るんだから
まあどっちにせよがんばれってことで。
0384デフォルトの名無しさん
2012/08/07(火) 15:02:04.95ミラーポートの設定ができる、高い奴ならば。
0385デフォルトの名無しさん
2012/08/07(火) 15:02:50.88まぎらわしい書き方しましたがモニタPCとは受信側PCの受信プログラムを
コンパイルして受信PCに共有フォルダで送るだけのPCです
パケットモニタは受信側PCにMicrosoftのモニタソフトを入れて直接みました
0386デフォルトの名無しさん
2012/08/07(火) 15:04:00.60PC vs 三菱のPLC で、プロトコルは相手側の事情で固定ってモデルで泣いた
0387デフォルトの名無しさん
2012/08/07(火) 15:08:19.07相変わらずマイペースで何が求められているかも明かさないレス主。
0388デフォルトの名無しさん
2012/08/07(火) 15:10:15.750389デフォルトの名無しさん
2012/08/07(火) 15:11:49.83最初の質問から空想してたネットワーク構成と全然違ってびっくりしたW
0390デフォルトの名無しさん
2012/08/07(火) 15:12:46.50MXコンポーネント使わなかったのか
0391デフォルトの名無しさん
2012/08/07(火) 15:13:28.85学生さんにそんなこと要求しても
0392デフォルトの名無しさん
2012/08/07(火) 15:14:00.13全然違うってほど違わないだろ
スイッチングハブなんだからいらないパケットは通らないだろうし
直通と一緒じゃね
0393デフォルトの名無しさん
2012/08/07(火) 15:14:13.96うむす。 MCプロトコルを直接おしゃべりしたよ
0394デフォルトの名無しさん
2012/08/07(火) 15:16:55.88それは泣けるお話だな。いや、良く実装したもんだw
0395デフォルトの名無しさん
2012/08/07(火) 15:17:37.640396デフォルトの名無しさん
2012/08/07(火) 15:22:04.58直接続ならそれが起きる可能性ないからいけるかもな
0397デフォルトの名無しさん
2012/08/07(火) 15:55:08.10まあロスト率が倍になる程度かもね
0398309
2012/08/07(火) 16:00:02.12ハブかケーブルが原因だったようですね
このまま、ロストせずに長時間継続できたら解決です
ありがとうございました
0399デフォルトの名無しさん
2012/08/07(火) 16:07:28.61て解決したか
0400326
2012/08/07(火) 16:23:08.600401デフォルトの名無しさん
2012/08/07(火) 16:26:06.100402デフォルトの名無しさん
2012/08/07(火) 16:27:22.380403326
2012/08/07(火) 16:31:24.210404デフォルトの名無しさん
2012/08/07(火) 16:34:54.44誰も保証してくれないから
0405デフォルトの名無しさん
2012/08/07(火) 16:35:23.39未だにストレートおkになっていないはず
0406326
2012/08/07(火) 16:41:36.640407デフォルトの名無しさん
2012/08/07(火) 16:44:53.94PCのIFカード側にクロス/ストレート接続自動判別機能が居るか?が焦点かと。
0408デフォルトの名無しさん
2012/08/07(火) 16:51:52.501000Base-Tなら、Auto-MDIは必須です。
0409デフォルトの名無しさん
2012/08/07(火) 16:57:56.581000Base-Tなんて誰も言ってないだろアフォ
0410デフォルトの名無しさん
2012/08/07(火) 17:18:50.89そうそう。すごい苦労したわ。
0411デフォルトの名無しさん
2012/08/07(火) 17:58:39.72逆に知らない奴はわざわざクロス探すか作ってたのか?
0412デフォルトの名無しさん
2012/08/07(火) 18:03:38.580413デフォルトの名無しさん
2012/08/07(火) 18:46:33.240414デフォルトの名無しさん
2012/08/07(火) 18:52:15.950415デフォルトの名無しさん
2012/08/07(火) 19:08:17.960416デフォルトの名無しさん
2012/08/07(火) 19:11:51.40ム板屈指の超人気スレみたいじゃないか
0417デフォルトの名無しさん
2012/08/07(火) 20:01:08.940418デフォルトの名無しさん
2012/08/07(火) 20:20:54.010419デフォルトの名無しさん
2012/08/07(火) 20:37:40.91コンピュータなんてナノで動いてるのに無知だな
100マイクロの制御プログラムとか何年も前に造ったことあるよ
0420デフォルトの名無しさん
2012/08/07(火) 20:38:47.62Windowsで?
0421デフォルトの名無しさん
2012/08/07(火) 20:47:00.44もち
0422デフォルトの名無しさん
2012/08/07(火) 20:50:26.23へぇ〜、Windowsでそんな応答時間が保証されるんだ。。
0423デフォルトの名無しさん
2012/08/07(火) 20:53:21.220424デフォルトの名無しさん
2012/08/07(火) 20:58:54.400425デフォルトの名無しさん
2012/08/07(火) 20:59:27.480426デフォルトの名無しさん
2012/08/07(火) 21:00:17.40リアルタイムOS の定義知ってる?
0427デフォルトの名無しさん
2012/08/07(火) 21:00:24.550428デフォルトの名無しさん
2012/08/07(火) 21:02:25.21保証するのは無理だろう。
当然、TCPでは無理だけどUDPなら大丈夫、という状況にはならないはず。
で、timeBeginPeriodかなんかで、20msより短くすれば
「CPUが忙しくなければ20ms以下の間隔で処理できる可能性が高い」くらいにはできるだろう。
当然だけど、TCPならばnagleも無効にしておく必要がある。
0429デフォルトの名無しさん
2012/08/07(火) 21:03:10.78パフォーマンスカウンタ信用できんだろ
0430デフォルトの名無しさん
2012/08/07(火) 21:04:58.01勉強になったな
0431デフォルトの名無しさん
2012/08/07(火) 21:05:43.64タイマは、割り込みを発生させる、変動の少ないもののはず。
0432デフォルトの名無しさん
2012/08/07(火) 21:08:28.81いくらすんの?
0433デフォルトの名無しさん
2012/08/07(火) 21:12:52.38超マイナーじゃないですか。
0434デフォルトの名無しさん
2012/08/07(火) 21:46:29.40そのWindowsはリアルタイムOSなのか?
0435デフォルトの名無しさん
2012/08/07(火) 22:56:58.730436デフォルトの名無しさん
2012/08/07(火) 23:03:41.62標準的なディスクのレイテンシって
今だとどちらも数msくらいで同等だけど、以前はどうだったんだろう?
ネットワーク速度の進化の遅さを考えると、昔はもっと差があったのかな
0437デフォルトの名無しさん
2012/08/07(火) 23:24:24.160438デフォルトの名無しさん
2012/08/07(火) 23:35:12.75リアルタイムOS上の仮想環境でWindowsが動いて
リアルタイム処理が必要な場合は本体側のOSを使う製品が昔合ったな。
今もあるかどうかは知らないけれど当時100万くらいしたはず。
0439デフォルトの名無しさん
2012/08/07(火) 23:46:01.21今もあるよ。
っhttp://www.mnc.co.jp/intime/
0440デフォルトの名無しさん
2012/08/07(火) 23:52:22.9050μで動かせるのか
0441デフォルトの名無しさん
2012/08/08(水) 01:02:44.910442デフォルトの名無しさん
2012/08/08(水) 01:50:54.83そんなんで何の負荷試験ができるのだ?
0443デフォルトの名無しさん
2012/08/08(水) 02:16:15.640444デフォルトの名無しさん
2012/08/08(水) 03:00:19.10NICへの高負荷
0445デフォルトの名無しさん
2012/08/08(水) 07:05:09.96pingで?
0446デフォルトの名無しさん
2012/08/08(水) 10:02:08.29ショートパケットは負荷高い
0447デフォルトの名無しさん
2012/08/08(水) 10:29:59.441パケット/1秒で? 負荷高い?
0448デフォルトの名無しさん
2012/08/08(水) 10:40:29.840449デフォルトの名無しさん
2012/08/08(水) 10:59:17.310450デフォルトの名無しさん
2012/08/08(水) 11:10:56.460451デフォルトの名無しさん
2012/08/08(水) 11:12:25.85DOSアタックってどんな容疑で逮捕?
0452デフォルトの名無しさん
2012/08/08(水) 11:13:10.67○○なものをダウソするとでしょう
0453デフォルトの名無しさん
2012/08/08(水) 11:21:01.63岡崎図書館事件で検索
0454デフォルトの名無しさん
2012/08/08(水) 11:40:41.58一旦しょっ引いたら監禁して自白強要の力技で終了
0455デフォルトの名無しさん
2012/08/08(水) 11:48:38.95DoS攻撃はアクセス制御を回避する必要なんか微塵もないから、ただの業務妨害なんじゃない
0456デフォルトの名無しさん
2012/08/08(水) 11:52:13.100457デフォルトの名無しさん
2012/08/08(水) 11:57:30.08体裁のために取り下げできないんだよな。
0458デフォルトの名無しさん
2012/08/08(水) 12:23:27.320459デフォルトの名無しさん
2012/08/08(水) 12:24:31.230460デフォルトの名無しさん
2012/08/08(水) 12:47:57.92そりゃTCP TIME_WAIT が溜まって?サーバに接続不能になった
おそまつ過ぎるサーバアプリに原因があったのでは
0461デフォルトの名無しさん
2012/08/08(水) 13:01:32.98故意か過失は当人にしか分からない、という事は取り調べでどうにでも出来るという事
0462デフォルトの名無しさん
2012/08/08(水) 13:02:06.261パケット/1秒のpingで高負荷試験している>>444のサーバに攻撃したら楽勝で逮捕。
0463デフォルトの名無しさん
2012/08/08(水) 13:07:35.040464デフォルトの名無しさん
2012/08/08(水) 13:09:00.660465デフォルトの名無しさん
2012/08/08(水) 13:12:28.98フラッドオプションでググれ
0466デフォルトの名無しさん
2012/08/08(水) 13:14:46.19プログラミングにはあまり影響はないけど
知らないってのはヤバイ
0467デフォルトの名無しさん
2012/08/08(水) 13:32:43.221時間に400アクセスで落ちる某図書館のシステムを作ったSEは?
0468デフォルトの名無しさん
2012/08/08(水) 13:35:58.04データつっこんで検索するだけだもんなw
0469デフォルトの名無しさん
2012/08/08(水) 13:43:29.040470デフォルトの名無しさん
2012/08/08(水) 14:22:36.42三菱なんとかってとこだったかな
0471デフォルトの名無しさん
2012/08/08(水) 15:14:29.870472デフォルトの名無しさん
2012/08/08(水) 15:15:39.440473デフォルトの名無しさん
2012/08/08(水) 15:18:42.770474デフォルトの名無しさん
2012/08/08(水) 16:23:44.84>ネットワークプログラム
ワームか
0475デフォルトの名無しさん
2012/08/08(水) 22:05:21.210476デフォルトの名無しさん
2012/08/09(木) 00:09:51.99作れない
0477デフォルトの名無しさん
2012/08/09(木) 00:38:10.220478デフォルトの名無しさん
2012/08/09(木) 10:38:49.270479デフォルトの名無しさん
2012/08/09(木) 10:49:39.77いい入門書はないでしょうか?オライリーの体で覚えるネットワークとか評判いいですけどどうなんでしょう?
0480デフォルトの名無しさん
2012/08/09(木) 11:19:15.450481デフォルトの名無しさん
2012/08/09(木) 11:39:35.04スティーヴンスの遺作を読め
0482デフォルトの名無しさん
2012/08/09(木) 11:45:39.89知ったかぶりする知識をつけるには良い本だと思うが駄本の香りがするし
そもそもプログラミングの本ではないでしょう。
0484デフォルトの名無しさん
2012/08/09(木) 11:51:10.220485デフォルトの名無しさん
2012/08/09(木) 12:59:43.38イーサーネットでファイルを送りたいときの一般的なプログラミングとかあったら教えてください
TCPIPプログラミングだとは思うのですが経験がないのでよくわかりません
0486デフォルトの名無しさん
2012/08/09(木) 13:05:20.060487デフォルトの名無しさん
2012/08/09(木) 13:13:35.35先ずは通信プロトコルからお勉強してください。
0488デフォルトの名無しさん
2012/08/09(木) 13:15:35.070489デフォルトの名無しさん
2012/08/09(木) 13:26:41.03VPNサービス作るならデータリンク層触らないといけないとかは聞いたことありますが
0490デフォルトの名無しさん
2012/08/09(木) 13:31:48.990491デフォルトの名無しさん
2012/08/09(木) 13:38:46.950492デフォルトの名無しさん
2012/08/09(木) 14:23:15.00つーか2〜6層がごっそり抜けていきなりアプリケーション層だよな
0493デフォルトの名無しさん
2012/08/09(木) 14:40:45.90電気信号にプログラムをデコード・エンコードするのは結構難しい
0494デフォルトの名無しさん
2012/08/09(木) 15:41:24.650495デフォルトの名無しさん
2012/08/09(木) 16:01:05.15>電気信号にプログラムをデコード・エンコードするのは結構難しい
それは物理層の責務だよ
そして、>>485の言うイーサネットはデータリンク層のプロトコルだ
素人はネットワークアーキテクチャから勉強し直しなさい
--> http://ja.wikipedia.org/wiki/OSI参照モデル
0496デフォルトの名無しさん
2012/08/09(木) 16:49:21.800497デフォルトの名無しさん
2012/08/09(木) 16:56:38.77汎用IFで直接信号コントロールする場合もあるんだよ。
0498デフォルトの名無しさん
2012/08/09(木) 16:57:14.13OSIは後付け理論なので実際とは合っていない。
0499デフォルトの名無しさん
2012/08/09(木) 16:59:03.39釈迦や孔子が生きていた時代の話ですね。
0500デフォルトの名無しさん
2012/08/09(木) 17:05:25.45でもたまーに今でも「手動で232c受信」をやることがあるよ!
助けて!
0501デフォルトの名無しさん
2012/08/09(木) 17:20:02.63RFC読んだら分かるが、OSI参照モデルは既に常識になってる。
プロトコル階層をまたいだり、逆転したりする場合にも、
OSI参照モデルの言葉でそれが説明されてる。
OSIで死んだのはプロトコル群。CLNSとか。
ASN.1みたいにLDAPの中で生き残ってるエンコーディング方式もある。
0502デフォルトの名無しさん
2012/08/09(木) 17:22:56.80UART買えないほど貧乏なのですか
0503デフォルトの名無しさん
2012/08/09(木) 18:30:11.88基板を作り直すお金が無いほど貧乏
0504デフォルトの名無しさん
2012/08/09(木) 21:01:27.690505デフォルトの名無しさん
2012/08/09(木) 21:41:54.78ソフト実装で38.4Kbps出せたら神認定で良いのか?
0506デフォルトの名無しさん
2012/08/09(木) 21:45:23.01プログラムをデコード・エンコードつうのもよくわからん話だが
物理層の仕事はデータ(ビット情報)と電気信号との変換
そのデータがプログラムなのかどうかなんて関係ない
ま、>>495本人は解ってるだろうけど
>>485
とりあえずTCP/IPだけ勉強しとけば、そのへんは必要ならそのうち解る
必要ないなら解らなくても困らない
0507デフォルトの名無しさん
2012/08/09(木) 21:56:25.12馬鹿乙
0508デフォルトの名無しさん
2012/08/09(木) 22:02:58.01低脳乙
0509デフォルトの名無しさん
2012/08/09(木) 22:07:17.41はじめまして馬鹿
0510デフォルトの名無しさん
2012/08/09(木) 22:10:47.48池沼乙
0511デフォルトの名無しさん
2012/08/09(木) 22:17:48.50506=495
0512デフォルトの名無しさん
2012/08/09(木) 22:21:55.39ハードウェアの知識どころかOSの知識もほとんどないんですがそんなんでやって行けるんでしょうか
標準C/C++のコードが書けるだの能力しかありません
0513デフォルトの名無しさん
2012/08/09(木) 22:23:59.78馬鹿と阿呆の絡み合い
0514デフォルトの名無しさん
2012/08/09(木) 22:25:27.38OSの知識なんて2chにレス出来るだけで十分。
0515デフォルトの名無しさん
2012/08/10(金) 05:16:29.17> そんなんでやって行けるんでしょうか
ん?
ネットワークプログラミングの仕事でもやらされようとしてるのか?
とりあえず、どのOSでやろうとしてるかぐらい書いたほうがいい。
0516デフォルトの名無しさん
2012/08/10(金) 08:41:46.55すいませんどのOSかはまだわかりません
来年からSEPGやることになったのですがなにがなんだかわからない状況です
金融系業務システム(社内ネットワーク?)と組み込みを中心にWeb開発もやってると言っていました
0517デフォルトの名無しさん
2012/08/10(金) 08:57:15.31ていうか、SEPG ってうちだとネットワークの設計までしかやらないけど、
一般にはネットワークプログラミングまでやるもんなのか?
0518デフォルトの名無しさん
2012/08/10(金) 08:58:34.290519デフォルトの名無しさん
2012/08/10(金) 10:29:26.190520デフォルトの名無しさん
2012/08/10(金) 11:16:15.99単なるWebアプリ開発だと思われますな。
おそらくネットワークプログラミングは何の関係も無い。
ドナドナ要員でしょうなぁ。ご愁傷様です。
0521デフォルトの名無しさん
2012/08/10(金) 12:33:18.14http://www.shogakukan.co.jp/magazines/detail/_sbook_2300508112
http://www.shogakukan.co.jp/var/files/storage/images/node_43/node_61/node_122/node_128/node_132/node_184/sapio12/6524796-2-jpn-JP/SAPIO.jpg
0522デフォルトの名無しさん
2012/08/10(金) 18:57:53.71たぶん、専門分野とか関係なくダボハゼのように仕事を取ってくる下請けなんだろ。
0523デフォルトの名無しさん
2012/08/10(金) 20:43:19.970524デフォルトの名無しさん
2012/08/10(金) 20:57:23.32ペーパレスチャートレコーダーに流れてくるデバイスバスの瞬時値を
横から分捕りたいなと。
0525デフォルトの名無しさん
2012/08/10(金) 21:01:33.690526デフォルトの名無しさん
2012/08/10(金) 21:30:38.10モドバス側がTCP Serverで複数接続可能なら出来るかも
0527デフォルトの名無しさん
2012/08/10(金) 21:44:14.090528デフォルトの名無しさん
2012/08/10(金) 23:00:37.84それはMODBUSプロトコルの話かな?
TCPポートを開いて待機している方がサーバです。
0529デフォルトの名無しさん
2012/08/10(金) 23:03:18.22通信用のミドルウエアないの?
0530デフォルトの名無しさん
2012/08/10(金) 23:58:56.780531デフォルトの名無しさん
2012/08/11(土) 00:15:34.180532デフォルトの名無しさん
2012/08/11(土) 00:59:30.86世の中、HTTPばかりだろう
0533デフォルトの名無しさん
2012/08/11(土) 10:59:35.94変数宣言のほうはint fd; の初期化がなされていないためfd代入前に case OP_READを貰うと想定外のread();をしてしまうということでしょうか?
void op(int sock, packet *pkt) {
int fd; // declaration 1st
int n = -1; // declaration 2nd
switch (pkt->hd.cmd_or_stat) {
case OP_OPEN:
rcv(sock, pkt->hd.sz, pkt->data);
pkt->data[pkt->hd.sz] = 0;
fd = open(pkt->data, O_RDWR);
if (fd > 0) pkt->hd.cmd_or_stat = SUCCESS;
else pkt->hd.cmd_or_stat = FAIL;
pkt->hd.sz = 0;
break;
case OP_READ:
if (fd > 0) n = read(fd, pkt->data, 512);
if (n < 0) {
pkt->hd.cmd_or_stat = FAIL;
pkt->hd.sz = 0;
} else {
pkt->hd.cmd_or_stat = SUCCESS;
pkt->hd.sz = n;
}
break;
case OP_CLOSE:
/* the following code is omitted. */
}//end of swith()
}// endof op()
0534デフォルトの名無しさん
2012/08/11(土) 12:35:30.24セキュリティホールは俺の予想では open するファイル名じゃね
仕様不明ゆえに確かなことは言えんけど、
例えば sock から /etc/passwd とか受信してもそのままオープンしちゃっていいんかね
まぁ実効ユーザを適切に隔離してればいいのかもしれんが
0535デフォルトの名無しさん
2012/08/11(土) 13:05:08.720536デフォルトの名無しさん
2012/08/11(土) 13:11:54.760537デフォルトの名無しさん
2012/08/11(土) 13:21:34.042つの問題以外にも突っ込みどころまんさいだな。
0538デフォルトの名無しさん
2012/08/11(土) 13:30:29.77これの8ページのか。
東大だよw
http://www.i.u-tokyo.ac.jp/edu/course/cs/pdf/2009computer.pdf
0539デフォルトの名無しさん
2012/08/11(土) 13:35:43.490540デフォルトの名無しさん
2012/08/11(土) 13:39:17.72typedef struct header {
int cmd_or_stat;
int sz;
} header;
typedef struct packet {
header hd;
char data[512];
} packet;
void mainbody() {
int sock;
packet pkt;
sock = getConnection();
while (rcv(sock, sizeof(header), &pkt)) {
op(sock, &pkt);
snd(sock, sizeof(header) + pkt.hd.sz, &pkt);
}
closeConnection(sock);
}
0541デフォルトの名無しさん
2012/08/11(土) 15:07:14.04バグを別にしても
0542デフォルトの名無しさん
2012/08/11(土) 15:11:09.30東大大学院入試問題なんだが・・
0543デフォルトの名無しさん
2012/08/11(土) 15:17:33.100544デフォルトの名無しさん
2012/08/11(土) 15:27:06.74それがどうかしたのか?
誰が作ってもダメなものはダメだよ。
0545デフォルトの名無しさん
2012/08/11(土) 15:32:45.750546デフォルトの名無しさん
2012/08/11(土) 15:43:32.740547デフォルトの名無しさん
2012/08/11(土) 15:51:43.95最近2chで○○()を良く見かけるけど『()』ってどういう意味?
0548デフォルトの名無しさん
2012/08/11(土) 15:52:53.80中身空っぽわろすって意味
0549デフォルトの名無しさん
2012/08/11(土) 16:00:32.64> ここまで具体的に駄目な点が指摘されていない、いや指摘できなくて単に駄目よばわりして鬱憤を晴らしている件について
>> char data[512];
>> if (fd > 0) n = read(fd, pkt->data, 512);
512 なんて書く奴今時いないんじゃね?
>> while (rcv(sock, sizeof(header), &pkt)) {
>> rcv(sock, pkt->hd.sz, pkt->data);
rcv( ) の戻り値を使っているところとそうでないところがある。
あと、op( ) 内の n の初期化と、実際に使っている case OP_READ: の間が離れすぎ、
初期設定は case OP_READ: 内でやったほうがいい。
0550デフォルトの名無しさん
2012/08/11(土) 16:02:23.36それ考えたのLisperの仕業かな
() ⇒ NIL 空っぽ
0551デフォルトの名無しさん
2012/08/11(土) 16:04:27.50rcv()には戻り値ないけど
0552デフォルトの名無しさん
2012/08/11(土) 16:06:07.87重箱の隅乙
0553デフォルトの名無しさん
2012/08/11(土) 16:08:15.05戻り値ないなら while( ) 内で使っちゃダメでしょ。
想像だが、読み込んだバイト数を返すようになってて、相手が切断したら 0 を
返すようになっているんだと思う。
つまり、ヘッダー読み込んだあとにいきなり切断される状況を考慮していない。
まあ、問題だから、それぐらいはいいかと思うが。
0554デフォルトの名無しさん
2012/08/11(土) 16:09:26.31どこがダメか指摘しろって言うから指摘したら、重箱の隅とか。
出来ない子の典型かよ。(w
0555デフォルトの名無しさん
2012/08/11(土) 16:11:53.64設問にrcv()の戻り値についての記述がないなw
0556デフォルトの名無しさん
2012/08/11(土) 16:14:17.73rcv()は常に成功するとある。
0557デフォルトの名無しさん
2012/08/11(土) 16:23:36.51うん、だから >>553 に書いた想像の域は超えない。
>>556
あるけど、それが何か?
Linux とかの recv( ) で、-1 が返ることはないよ、ぐらいの意味だと思う。
0558デフォルトの名無しさん
2012/08/11(土) 16:40:46.81>>545 が問題作成者だったらまんまと釣られてしまったね。
0559デフォルトの名無しさん
2012/08/11(土) 16:50:07.310560デフォルトの名無しさん
2012/08/11(土) 16:51:00.970561デフォルトの名無しさん
2012/08/11(土) 17:12:31.820562デフォルトの名無しさん
2012/08/11(土) 17:33:41.57昔、某メーカで研究所で開発されたプロトタイプを製品化するプロジェクトに関わったけど、
最初にやったのがコードの整理だった。奴等、確かに技術力はあるけど保守とか考えていないからね。
>>538にはソフトウェア科学専攻とあるし、こんなもんだと思う。
>>549の指摘が重箱の隅(>>552)とか不真面目(>>560)とか言ってるのも学生さんなんだろな。
それでもいいだろうし、社会人になってから勉強して体で覚えるしかない気がする。
0563デフォルトの名無しさん
2012/08/11(土) 17:46:13.530564デフォルトの名無しさん
2012/08/11(土) 17:49:37.560565デフォルトの名無しさん
2012/08/11(土) 17:57:45.230566デフォルトの名無しさん
2012/08/11(土) 17:59:47.53(笑)から笑を取り除いて失笑って説を見たことがある
0567デフォルトの名無しさん
2012/08/11(土) 18:04:18.05その可能性もあるなw
0568デフォルトの名無しさん
2012/08/11(土) 19:03:51.30関数op()はvoid型でopen()/read()システムコールがエラーになった場合、
引数の構造体メンバ pkt.hd,cmd_or_status へFAILを設定するけど、
その値をメインループ内で参照していない。これはop()が戻った直後に検査してループを脱出すべき。
また>>538によればファイルサーバとあるから、errnoを参照して適切なメッセージをsyslog等へ保存すべき。
結論としては、学校のお勉強や試験問題であれば許されるけど、仕事で書かれたコードだとしたら
>>549の指摘を含めてダメダメプログラムだと断言する。
たぶんコードレビューだと、最初の5分で中断して再レビュー要と判定されるレベル。
レビュアーは「こいつもやっぱり学はあっても使えない(=即戦力にならない)」と心の中でつぶやくだろう。
0569デフォルトの名無しさん
2012/08/11(土) 19:28:12.73> 引数の構造体メンバ pkt.hd,cmd_or_status へFAILを設定するけど、
> その値をメインループ内で参照していない。これはop()が戻った直後に検査してループを脱出すべき。
クライアントに返してるだろ、勝手に仕様作るなよ。
5分で、「頓珍漢な発言するなよ、うぜー」と他のレビューアから思われるタイプだな。
0570デフォルトの名無しさん
2012/08/11(土) 19:33:07.330571デフォルトの名無しさん
2012/08/11(土) 19:35:03.090572デフォルトの名無しさん
2012/08/11(土) 20:50:37.42closeConnection関数は、引数で与えられたファイルディスクリプタに関連付けられているコネクションを閉じる。
snd およびrcv 関数は、送信、受信関数であり、
第一引数にコネクションに関連づけられたファイルディスクリプタ、第二引数に送信あるいは受信バイト数、第三引数にデータのアドレスを与える。
これら4つの関数実行(getConnection, closeConnection)は常に成功すると仮定する。
open(ファイル名) return ファイルディスクリプタ、 失敗時 -1 を返す。
read(ファイルディスクリプタ、格納先メモリアドレス、データサイズ) return 読み込んだサイズ。失敗時 −1を返す。
0573デフォルトの名無しさん
2012/08/11(土) 21:23:36.61>問題用のプログラムでエラー処理とか、馬鹿じゃね?
>>568では「試験問題であれば許される」と書いてあるけどな。
>クライアントに返してるだろ、勝手に仕様作るなよ。
クライアントへのエラー応答とは別に、サーバプログラムとしての適切なエラー処理を検討すべき。
>5分で、「頓珍漢な発言するなよ、うぜー」と他のレビューアから思われるタイプだな。
このくらいの指摘でウゼーと感じるようだと成長できないよ。
まあコード品質に関する基準がその程度の組織なら、厳しいと感じるかもしれないけどね。
0574デフォルトの名無しさん
2012/08/11(土) 21:27:26.050575デフォルトの名無しさん
2012/08/11(土) 22:02:57.98しかし、>>540の適切なエラー処理ってどういうのを想定してるんだ?
仮にエラーを検知してwhileループを抜けてエラー処理したとして、
それが仕様で期待される動作なのか?
0576デフォルトの名無しさん
2012/08/11(土) 22:12:13.96ローカルなプロセス間通信であればC言語の構造体を直にパイプやソケットへ流すのは普通。
でも、ネットワークであればCPUアーキテクチャ(エンディアン)やコンパイラ仕様に依存してしまう。
ちなみにUNIX標準のNFS(ファイル共用)では、XDRとよばれる環境非依存な形式が使われている。
0577デフォルトの名無しさん
2012/08/11(土) 22:14:45.98俺知ってるアピールするとかパーかおめ
0578デフォルトの名無しさん
2012/08/11(土) 22:22:50.26>ローカルなプロセス間通信
とローカルでない通信を同じに議論してるの、あほちゃう
0579デフォルトの名無しさん
2012/08/11(土) 22:32:03.14すでに>>553-557で指摘されているけど関数rcv()の仕様が曖昧だから、何とも言えないw
もし成功の意味がC言語の真(0以外)であれば、プログラムは常に無限ループするから問題外。
もし>>553が想像したようにクライアントがcloseしたら0を返す仕様だとしても、
今のままだとエラー応答パケットを送信してコネクション切断が検出されるまでの時間、
サーバプロセスはコネクションに縛り付けられたままになる。
この振る舞いが正しいか否かはプロトコル仕様が提示されていないから、これまた何とも言えないw
ただし、一般的には回復不可能なエラーであればエラー応答パケット送信に続けてソケットをクローズし、
次のサービス要求の受付けを待つのがサーバとしての正しい動作だと(個人的には)思う。
0580デフォルトの名無しさん
2012/08/11(土) 22:41:42.690581デフォルトの名無しさん
2012/08/11(土) 22:56:02.38>そんなもん実務では無視するだろボンクラ
え、実験とか趣味なら無視というのなら分かるけど、実務で無視しちゃうの?
もしかして私は異世界の住人だったのかしら....w
あと、XDRは古い規格で(ほぼ)UNIX限定だからNFS以外ではほとんど使われていないけど、
今の時代ならProtocol BufferやMessagePackみたいに(比較的)手軽な実装が存在するから、
怖がらずに一度挑戦してみることを薦めるよ。
>>578
そのローカルなプロセス間通信とローカルでない通信とを同じ感覚で考えていたのが
出題コードを書いたプログラマで、>>576では「その考え方は間違っていますよ」と指摘している。
日本語読めますか?
0582デフォルトの名無しさん
2012/08/11(土) 23:05:00.50しらんがなー
0583デフォルトの名無しさん
2012/08/11(土) 23:08:43.380584デフォルトの名無しさん
2012/08/11(土) 23:20:22.71実務なら逆に、「サーバーとクライアントの環境合わせるからオッケー」てなもんだろ。
0585デフォルトの名無しさん
2012/08/11(土) 23:42:21.91それが通用するような案件しか関われず、しかも問題意識を持たず実務をこなしていたとしても、
それはそれで本人のエンジニア人生なんだから、まあいいんじゃね........
0586デフォルトの名無しさん
2012/08/11(土) 23:56:33.77異種環境での移植性が要件にあればそうするだろうさ。
0587デフォルトの名無しさん
2012/08/12(日) 01:09:47.050588デフォルトの名無しさん
2012/08/12(日) 01:15:05.870589デフォルトの名無しさん
2012/08/12(日) 01:46:59.87サーバが想定していないファイルにアクセスされる可能性がある
chrootしてあるとかサーバの権限上問題ないといった断りがなければ
セキュリティホールといって問題なさそうなものだけど
0590デフォルトの名無しさん
2012/08/12(日) 09:09:20.660591デフォルトの名無しさん
2012/08/12(日) 10:47:52.67× このくらいの指摘
○ 頓珍漢な発言
0592デフォルトの名無しさん
2012/08/14(火) 09:05:38.010593デフォルトの名無しさん
2012/08/14(火) 10:33:50.090594デフォルトの名無しさん
2012/08/14(火) 11:56:56.680595デフォルトの名無しさん
2012/08/17(金) 06:31:50.98/:\___从__ヽ
i::/ '''''' ''''''' i
|:/ /゚ヽ 、/゚ヽ| このスレ、癒されるなあ。。^^
(6 ,ノ(、_,)、 |
ヽ ト==イ ノ
\_'Uニ´_,/
/ /
/ /
/ /
:/ ヽ:
:/ ヽ: 皆さん、グッジョブです!
:( *‘ω‘*)*‘ω‘*):
./ \,
/ , . 、 'i
./ r´ 人. ヽi
i 人_,、__ノ ヽ、_,,_ノ.|
| / ゚ ゚ .|.|
| /( .з .iノ
0596デフォルトの名無しさん
2012/08/22(水) 06:32:22.540597デフォルトの名無しさん
2012/08/24(金) 20:48:24.55東証で7日に生じたシステム障害では、TOPIX先物やJGB先物など
東証が提供しているデリバティブ商品のすべての取引が停止した。
東証のシステムは、稼働中の機器が故障した場合に予備機に切り替わる仕組みに
なっている。2月の障害ではこの切り替えがうまくいかなかった反省から
システム総点検を実施し、稼働中の機器の電源を切って予備機への切り替えを
確認していた。しかし8月の障害では、稼働中の機器の一部で不具合が
生じただけで機器自体の稼働が停止しないうちに予備機が稼働したため、
機器間の通信が混乱する事態になったという。
0598デフォルトの名無しさん
2012/08/26(日) 03:17:41.500599デフォルトの名無しさん
2012/08/26(日) 04:47:45.85家電屋で売っているルーターと名乗る物は、殆どの場合ルーターではなくNAPTサーバで
ルーターとしての機能は極めて限定的。
ルーターとL3スイッチは機能的には同じものだが、ハードウェアで処理するものがL3スイッチ、
ソフトウェアで処理するものがルーターと名乗っている事が多い。
0600デフォルトの名無しさん
2012/08/26(日) 07:11:30.32L3で動作する以上、必然的にroutingの機能が必要。
・家庭用routerのほとんどはWAN側とLAN側の2ポートしか持たない。
(一部、DMZ用ポートを持つ製品もある)
・それぞれのポートはあらかじめ用途が決まっていて、対称ではない。
・ほとんどすべての製品でNAPTを搭載する。多段NATを検知して
自動的にNAPT/routingを停止する製品も存在するが、明示的に
NAPTを停止できる製品は少ない。
0601デフォルトの名無しさん
2012/09/03(月) 01:01:16.73UDPでjpegの画像ファイルを転送したいのですが
どうすればいいのでしょうか?
ちなみに言語はCです。
よろしくお願いします!
0602デフォルトの名無しさん
2012/09/03(月) 01:03:00.730603デフォルトの名無しさん
2012/09/03(月) 01:05:04.96あと、速度重視で UDP とか言うなら、こっちにも書いとけよ。
0604デフォルトの名無しさん
2012/09/03(月) 01:13:04.59送信データが相手に届くかどうかの保証がない分
0605デフォルトの名無しさん
2012/09/03(月) 01:17:22.50速さが一番重要なのでそこは
かまいません。
jpegをバイナリデータとして転送する
方法が知りたいんです。
0606デフォルトの名無しさん
2012/09/03(月) 01:20:13.730607デフォルトの名無しさん
2012/09/03(月) 01:21:04.11自力でやってみないと、UDPがどういうものなのかはわからんかもね
0608デフォルトの名無しさん
2012/09/03(月) 01:22:15.44tftp でも使っとけよ。
お前にはプログラミングは無理そうだし。
0609デフォルトの名無しさん
2012/09/03(月) 01:24:18.83> 速さが一番重要なのでそこは
じゃあなおさらTCP使え。
まだまだUDPで早い転送プログラム書くのは無理。
10年くらい修行してから出なおせ。
0610デフォルトの名無しさん
2012/09/03(月) 01:24:33.050611デフォルトの名無しさん
2012/09/03(月) 01:24:36.35これでも、ながめてみたら、速度重視君は
0612デフォルトの名無しさん
2012/09/03(月) 01:26:12.73自分でもうすこしやってみます!
TCP,UDPの違いは分かっているつもり
です。
最終的には、画像を連続的に転送して
画像処理を行う事を目標にしているので
リアルタイム性を重視してUDPをチョイス
しているだけです。
0613デフォルトの名無しさん
2012/09/03(月) 01:26:39.170614デフォルトの名無しさん
2012/09/03(月) 01:30:59.50> TCP,UDPの違いは分かっているつもりです。
やってるうちに、ハマりましたって、オチになりそうな
0615デフォルトの名無しさん
2012/09/03(月) 01:32:07.770616デフォルトの名無しさん
2012/09/03(月) 01:38:12.93TCPとUDPの選択としては、
目標の早さを実現できるなら
どちらでもいいんです。
ただリアルタイム性という点では、
UDPに分があると思っただけです。
一度、両方試して比較してみたいと
思います。
色々とアドバイスありがとうございました。
0617デフォルトの名無しさん
2012/09/03(月) 01:39:37.370618デフォルトの名無しさん
2012/09/03(月) 01:39:38.82ローカルで行うことを想定しています。
ありがとうございます。
0619デフォルトの名無しさん
2012/09/03(月) 01:43:17.99jpegだとフォーマットにその手の仕掛けがあるんかね
想像するにFAXみたいなことをやろうとしてるのかな?
0620デフォルトの名無しさん
2012/09/03(月) 01:48:00.71いえ、どちらかといえばストリーミング動画配信
のようなものを実現したいと考えています。
画像処理する上で画像の方が扱いやすいので…
0621デフォルトの名無しさん
2012/09/03(月) 01:49:29.80データが届く順番も保証されてないから
jpeg受信して表示したいとしたら面倒
0622デフォルトの名無しさん
2012/09/03(月) 01:53:56.440623デフォルトの名無しさん
2012/09/03(月) 01:55:33.98色々考えてるとUDPだと
厳しいかもしれませんね。
やはり皆さんが言ってる通り
TCPでやった方が良さ気ですね。
個人的にはUDPは、TCPと実際にどう違うのか
比較してみたくなりました。
色々とありがとうございます!
0624デフォルトの名無しさん
2012/09/03(月) 02:07:45.88ローカルで実験的にやる分には、UDPで出来ることだよ、それは
WANでやると、ボロボロになる可能性大のような
jpegじゃなくでストリーミング向けの画像フォーマット
探すなり、考えるなりしたほうがよくね
0625デフォルトの名無しさん
2012/09/03(月) 13:54:19.970626デフォルトの名無しさん
2012/09/03(月) 15:16:25.10WANどころか、UDPでやると転送が2つ開始しただけで、かなりややこしいことになる。
0627デフォルトの名無しさん
2012/09/03(月) 15:23:18.620628デフォルトの名無しさん
2012/09/03(月) 16:25:07.570629デフォルトの名無しさん
2012/09/03(月) 16:44:17.55UDPで1パケ512バイト以上に出来るなら
0630デフォルトの名無しさん
2012/09/03(月) 16:52:27.90UDP2個使いも出来るかも
0631デフォルトの名無しさん
2012/09/03(月) 16:55:07.41過去からの予測で済ますのか、再送するのか、ロスでほっとくのか
0632デフォルトの名無しさん
2012/09/03(月) 17:09:29.32ロスは放って置いて補間なり無視なり
0633デフォルトの名無しさん
2012/09/03(月) 17:16:51.470634デフォルトの名無しさん
2012/09/03(月) 19:53:13.91調べてみるのがいいんじゃないの?
0635デフォルトの名無しさん
2012/09/03(月) 20:19:16.570636デフォルトの名無しさん
2012/09/03(月) 21:09:46.48/ / / | ::/| :| `、`、 ヽ
/ / / | ::/ |::| `、',ヽ ', ', r┐ r┐ヾ>
,' i | :/' | | ::/ i:| ', i ヽ i ',. | | lニ コ
,' | ! :,' i|| ::/ || || `、 | | | | レ! _| |.
| | |`i'-,,, | | ::/ | | ', | | | ヽ/(___メ>
| | ||.| `二=,,__,,, ,,,__... -!´ト, | | ,、
. | . i | | //:::C, 7::c\ ||ヘ.| | ((
| .| | / {::::::::::::} {::::::::}`、 ,' .| i ))
| /´'| | ヽ::::::ノ ヾ::ノ .| | ((
| { | |:::::::: , .... | | ))
| \', '',''''' __ ::::::::: | i ((
| .:::', ', / ` ー --、 | | ))
/ .:::::::', :: ', / } / | ((
/ ...:::::::::::'、::. ',、( / ,イ|:: : | `
/ ..:::::::::::/'`、:::.. ',`'' - ,,____ノ,,ィ::´:::i ',:::|:: | / 7
`-ー-´/ /:::::::::/ `、、 ', /`、\:::::::::::::::,':::::::,' |::||:: | ┌‐' 'ー┐ト、
 ̄ ̄/ ./:::::,-{ \ `、、 / \::::::::,'::::::/ .|:i'|: | 7 /_7 / 」__〉
/ // \ \ ヽ/ }::::/:::::/ | |:| 〈_/ヽ_/
0637デフォルトの名無しさん
2012/09/03(月) 21:31:48.54.ヾ_`ヽ キ キ /),;彡んた | .ち│
\\ ャ . ,、 ,.-─‐-、 ャ l ,- / でし│ん .!
赤\\ ッ !`ー--/ /´`´`ヽ ッ // 聞もた | .ち│
ち. \`ー、__.`ー-i / ∩ ∩ | ,.-‐´/ い ち...| .ん |
. ゃ `-、_ 7´`ヽ| r─-, .|_,.-,.-´ ,.-‐´ア て に.└─┘
ん オ Y_ ト、_ヽノ / |_,-´ ハ ね
勃 も .__ ホ ヽ / |_二| |_,.-´ __ハ !
起 /;;;;;;;;;;;;;;ヽ ホ |ノ | ,.-‐´:::::::::ヽ_ 大な怖 あ洗皮
す /;;;;;;-‐´`ヾ;_,.-‐´ / /::r‐-::::::イ:::::::i 丈.く.が げっ を
る . {;;! ^ L!^ | (⌒) (ll (::::|の へ/::::::::::}夫て.ら て.て.む
の ヾ、_ ノ▽ /-、-イ | ._||_っ`| く_ )::::::::::::}!も ! .い
よ ./ ヽT二T|/ イ | (ミ / .\┘人,--、/ て
∫ | | / /ー-´ ヽ /  ̄| / ヽ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
_ i⌒i い 拭 __ ま う ┌─┐
.ト;;;;;i.く :.| い け /´ \. ぁ ん .| .ま..|
XT !.ノ か ば .|⌒⌒ヽ |__ : ヽ__ . | .ん |
i7N_ ら |,-、,-、| 人ヽ /::::::::::::l .| .こ .!
7_N ヽー |./ ヽ! (:::::::::::::/| └─┘
 ̄ ̄|/ヽ| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄7--イ/\ ̄ ̄ ̄/ー,-|ノ ̄ ̄ ̄ ̄ ̄
 ̄  ̄ /ー┘! .〉 / /| ヽ,,/`丶、
( | Y | .|/ .|,-くヽ-‐、/
| | | .| /f | r‐Y二/───
| ヽ./ | .| | ト、_____
| | .| .|___l .! |
0638デフォルトの名無しさん
2012/09/03(月) 22:57:21.05再発明しなくても、RFC-3350にRTP(A Transport Protocol
for Real-Time Applications)ってのがあるから、
真似したらいい。
0639デフォルトの名無しさん
2012/09/04(火) 00:40:53.810640デフォルトの名無しさん
2012/09/04(火) 09:36:35.240641デフォルトの名無しさん
2012/09/04(火) 09:49:46.93ホント後を絶たないねこの手の勘違い
0642デフォルトの名無しさん
2012/09/04(火) 10:17:48.130643デフォルトの名無しさん
2012/09/04(火) 10:28:09.840644デフォルトの名無しさん
2012/09/04(火) 10:32:11.48SCTPを教えてやれ
0645デフォルトの名無しさん
2012/09/04(火) 15:45:05.95流し読みしたけど、NTPと同じような方法で遅延計算できるしくみが内包してるのね
なかなか興味深い
0646デフォルトの名無しさん
2012/09/04(火) 23:40:53.250647デフォルトの名無しさん
2012/09/04(火) 23:52:59.900648デフォルトの名無しさん
2012/09/05(水) 00:27:47.930649デフォルトの名無しさん
2012/09/05(水) 04:45:58.17>FA用途の汎用ネットワークプロトコル
なにそれ、すれちそう
0650デフォルトの名無しさん
2012/09/05(水) 22:46:43.020651デフォルトの名無しさん
2012/09/05(水) 23:00:15.95やり取り入れりゃ、ものによっては遅くなったりするわな、UDP
TCP使っても、相手がだんまり決め込む可能性があるってのが味噌
0652デフォルトの名無しさん
2012/09/06(木) 03:10:22.01という仕様を突きつけられた。
0653デフォルトの名無しさん
2012/09/06(木) 07:30:53.200654デフォルトの名無しさん
2012/09/06(木) 08:21:58.88とまじれす
0655デフォルトの名無しさん
2012/09/06(木) 09:16:18.41やれば、良いんじゃね?
TCPにおける再送処理は接続からやり直せば意味あるし、
実際におれも一定時間内に応答が無ければ接続からやり直すって
処理は良く作ってたよ。
0656デフォルトの名無しさん
2012/09/06(木) 17:57:25.67接続しなおせば当然意味あると思うけど
そのままやれって意味わかんないよね
0657デフォルトの名無しさん
2012/09/06(木) 18:39:46.33まぁ、普通は意味が無いけど、場合によっては意味がある。
たとえばプロトコルに通信シーケンスがずれた場合の復旧処置が
含まれている場合。相手側は次のトークンを待っている可能性がある。
後はバッドノウハウだけど、単純に相手側とか、プロトコルスタックの
バグで、後続のデータを受信すると正常に動き始めるとかwww
0658デフォルトの名無しさん
2012/09/07(金) 01:38:36.44http://itpro.nikkeibp.co.jp/article/NEWS/20120906/421101/?top_tl2
イー・アクセスは2012年9月6日、5日午後6時51分から午後11時34分にかけて、
12都府県で携帯電話の音声通話とデータ通信が利用しづらい状況に陥った障害の
原因を公表した。保守作業時の人的操作ミスとソフトウエアの不具合が重なった。
影響数は最大約27万人としている。
同社は「ネットワークオペレーションセンター」(関連記事)で携帯電話網を
遠隔監視しているが、5日の保守作業時に基地局の状態を調べるコマンドの
パラメータを間違えて設定してしまったという。パラメータを誤ったコマンドは
システム側ではじく仕組みとしていたが、ソフトウエアの不具合で有効に機能せず、
そのまま実行されて「基地局が異常な状態に陥ってしまった」(同社)。
同社は影響を受けた基地局の数を非公表としているが、12都府県のある程度
まとまった単位の基地局に対して同コマンドを実行してしまったとみられる。
最終的に問題の基地局を遠隔から再起動させることで対処したが、原因の究明に
手間取り、復旧までに約5時間弱を要する結果となった。
イー・アクセスは今後の再発防止策として、
(1)保守作業方法の事前チェック体制の強化、
(2)作業プロセス上のチェック工程の改善、
(3)ソフトウエアの不具合の改修の3点を挙げた。
(1)と(2)について既に対処済みで、(3)についても速やかに実施するという。
0659デフォルトの名無しさん
2012/09/10(月) 21:55:58.01シーケンスずれてしまって毎回 slow timer 一回待つってやつか?
0660デフォルトの名無しさん
2012/09/11(火) 00:49:37.590661デフォルトの名無しさん
2012/09/11(火) 10:18:39.96どうも大量データを受信したときに取りこぼしが出てしまい
WinPcapを使ってみようと下記を参考にしてみたんですが
やはり取りこぼしが出てしまいます。
取りこぼしが出るのは仕方のないことなんでしょうか?
http://homepage3.nifty.com/teatea/parasite/CSmemo.htm#packet
0662デフォルトの名無しさん
2012/09/11(火) 17:09:24.93これやってんじゃねえの?
0663デフォルトの名無しさん
2012/09/11(火) 23:06:50.73そう
0664デフォルトの名無しさん
2012/09/12(水) 00:17:58.99それなら仕方ないか・・・
0665デフォルトの名無しさん
2012/09/12(水) 00:21:44.18基本的に狙い撃ちみたいなことしないと
0666デフォルトの名無しさん
2012/09/12(水) 04:00:12.19ログを記録してから検索するとかしないと簡単にあふれる。
0667デフォルトの名無しさん
2012/09/12(水) 07:21:03.24まあ取りこぼしは仕方ないみたいですね。
0668デフォルトの名無しさん
2012/09/12(水) 20:39:43.89http://www.lineeye.co.jp/html/product_LE-580FX.html
これでも、半二重 90Mbps、全二重 120Mbps 程度が限界らしい。
0669デフォルトの名無しさん
2012/09/21(金) 20:42:42.27クライアント側(linux 32bit又は64bit)でデータをENCODEし、サーバ側(linux 64bit)でDECODEしています。
ENCODEする際に、OSによりxdr_u_long又はxdr_int64_tを使用しているのですが、サーバ側でどのデータ型で
ENCODEした際のデータ型を知ることはできますでしょうか?
また、DECODEする際にxdr_u_long等の関数を呼び出すと内部のポインタが進んでしまうのですが、戻すことは可能でしょうか。
クライアント側のプログラムの入れ替えができない為、32bit,64bit共にxdr_int64_tを使用する方式に変更できない状況です。
0670デフォルトの名無しさん
2012/09/21(金) 20:47:17.57ttp://docs.oracle.com/cd/E19253-01/816-3978/6ma7kltok/index.html
net経由でやり取りしてるからと、ここで質問してる時点で...
0671sage
2012/09/21(金) 21:19:46.86ありがとうございます。
教えて頂いたページは確認済みです。
以下のリンクの情報でx_privateにデータが格納されている事まで確認しました。
x_privateのサイズから型を予想しようとmalloc_usable_sizeでサイズをとったのですが、
longの時とint64でサイズ同じで判断できなかったため、知っている方がおりましたら、
アドバイスを頂きたいと思っています。
ttp://docs.oracle.com/cd/E19253-01/816-3978/6ma7kltoc/index.html
0672デフォルトの名無しさん
2012/09/21(金) 22:07:48.68linuxの場合
longは
32bitOSで4バイト
64bitOSで8バイト
メモリ確保する時のポインタサイズは
32bitOSで4バイト
64bitOSで8バイト
言葉知ってるだけじゃ、そのうち潰れるよ
XDR ストリームインタフェースはバカなりの解釈だと
32bitアプリと64biアプリの型の隠蔽するのに関数ポインタを使って
場合分けしましょうってことで
受け渡しに使うもんじゃないって読めるな
質問の内容が高度すぎて、バカには何を質問してるのか、わからん
0673デフォルトの名無しさん
2012/09/21(金) 22:23:12.100674デフォルトの名無しさん
2012/09/21(金) 22:41:46.56ありがとうございます。
質問内容がわかりづらく申し訳ないです。
既存のシステムでXDRを使用してデータの受け渡しをしています。
サーバ、クライアント共に32ビットOSです。
ハードウェアの老朽化対応でサーバと一部クライアントのOSを64ビットにすることになりました。
上記のような状態で、交換前のクライアントは32ビットのため、クライアントは32ビットと64ビットが混在しています。
受け渡しデータが環境依存のデータで、32ビット時は4バイト、64ビット時は8バイトのデータをサーバに渡す必要があり、
サーバ側でDECODEする際にENCODEした時のデータ型を判断したいという内容です。
0675デフォルトの名無しさん
2012/09/21(金) 22:47:21.85ただのデータ変換にnetがどうのとか意味不明なの
最初にデータ構造考えた人に質問したほうがいいよ
0676デフォルトの名無しさん
2012/09/21(金) 22:51:07.75タグでもなければ判断しようがない。
0677デフォルトの名無しさん
2012/09/21(金) 23:17:19.32メガドラで出てたんだな
0678デフォルトの名無しさん
2012/09/21(金) 23:44:04.07おそらく根本的な考え違いをしている(>>672も同じく)
すでに他の人(>>675,676)が指摘しているけど、
エンコードされたXDRデータには、そのデータ型を表現する情報は一切含まれていない
たとえばXMLであれば(XML Schema や Relax NG といった)スキーマ定義が無くても
タグがあるから受信側でXMLデータを(ある程度までは)解釈できる
JSONにしても、(リストやハッシュといった)構文からデータ構造を推測できる
しかし(繰り返しになるが)XDRにはこういった柔軟性は存在しない(=XMLやJSONの常識は通用しない)
>>674がやろうとしているのは、あるC言語の構造体のバイナリダンプを渡されて、
その構造体が定義されたヘッダファイル無しにダンプ解析を試みるに等しい
素直に、その既存システムが開発された時に作成されたXDR定義ファイル(*.xdr)を入手しなさい
もしもそのファイルが入手できないことを承知で案件を引き受けてしまったのなら、
その判断を下した馬鹿者の責任だから、傷が大きくならないうちにお客様にゴメンナサイを言うべき
0679デフォルトの名無しさん
2012/09/21(金) 23:49:36.100680デフォルトの名無しさん
2012/09/22(土) 11:42:13.47その「型紙」を寄越せ、っつってんだろ
0681デフォルトの名無しさん
2012/09/22(土) 12:47:03.31そもそも「クライアント側のプログラムの入れ替えができない」とか書いてる割には、
「64ビット時は8バイトのデータをサーバに渡す必要があり」と書いてる。
まあ、マジだったとしても本人よく理解してないだろうし、スルーでいいと思うよ。
0682デフォルトの名無しさん
2012/09/22(土) 15:50:02.41streamなんですよ。
0683デフォルトの名無しさん
2012/09/22(土) 18:38:53.360684デフォルトの名無しさん
2012/09/22(土) 18:39:27.700685デフォルトの名無しさん
2012/09/22(土) 19:02:21.790686デフォルトの名無しさん
2012/09/22(土) 19:16:48.100687デフォルトの名無しさん
2012/09/22(土) 19:21:26.050688デフォルトの名無しさん
2012/09/22(土) 19:22:59.310689デフォルトの名無しさん
2012/09/22(土) 19:30:54.25それじゃあお前は何だ、このガキが
俺はお前さんがこの世に落っこってくる前からコード書いてんだ
0690デフォルトの名無しさん
2012/09/22(土) 19:32:14.200691デフォルトの名無しさん
2012/09/22(土) 21:37:21.890692デフォルトの名無しさん
2012/09/23(日) 02:58:10.78とすると55〜65歳か。 すげぇな・・・
0693デフォルトの名無しさん
2012/09/23(日) 03:00:39.250694デフォルトの名無しさん
2012/09/23(日) 08:06:49.13無理難題だから誰にも解決はできない。
0695デフォルトの名無しさん
2012/09/23(日) 09:10:35.550696669
2012/09/23(日) 09:23:22.14int64でデータを取得し、上位4バイトの値の有無でOSの32ビット、64ビットを判定することにしました。
お騒がせしました。
0697669
2012/09/23(日) 09:44:10.40みなさんのアドバイスで、streamからの判断できないことがわかったため、
データ構造から判定することにしました。
4バイトを超えない値が格納されるデータが2連続している場所(OSにより、領域は4*2または8*2バイト使用)があるので、
そこからINT64で取得して上位4バイトの有無を調べます。
※0が格納される事がなく、値が4バイトの範囲内に必ず収まり、2連続しているというデータ上の仕様があったため、可能でした。
0698デフォルトの名無しさん
2012/09/23(日) 11:35:34.31packしたところで変わらんと思うんだが
0699デフォルトの名無しさん
2012/09/23(日) 12:58:56.01必ず0である保証がないと成立しないね。
同様に64bit Linuxが送ってくる64bitポインタの上位32bitが
必ず0以外である保証もないと成立しない。
いろいろ危うい前提条件に立った判定方法だと思う。
設計段階からやり直したほうがよさそう。
0700デフォルトの名無しさん
2012/09/23(日) 13:37:28.600701デフォルトの名無しさん
2012/09/23(日) 14:46:09.740702デフォルトの名無しさん
2012/09/23(日) 16:27:26.97クライアント側はいじれないって前提読めよ。
0703デフォルトの名無しさん
2012/09/23(日) 16:40:18.78だとしたらなおさら「それはできません」以外の答えはないと思う。
0704デフォルトの名無しさん
2012/09/23(日) 16:43:19.600705デフォルトの名無しさん
2012/09/23(日) 17:19:16.81>だとしたらなおさら「それはできません」以外の答えはないと思う。
仕事したことない奴が言うことだな。
0706デフォルトの名無しさん
2012/09/23(日) 17:33:27.680707デフォルトの名無しさん
2012/09/23(日) 17:39:41.39会社ならそれでいいんだろうけどねぇ。
0708デフォルトの名無しさん
2012/09/23(日) 17:53:46.64どこがご不満で?
xdr streamのごくありきたりな使い方ですが?
0709デフォルトの名無しさん
2012/09/23(日) 17:54:39.91> ※0が格納される事がなく、値が4バイトの範囲内に必ず収まり、2連続しているというデータ上の仕様があったため、可能でした。
が、保証されてりゃ十分だろ。
もちろん今後の仕様変更には注意が必要だから、お客さんにはよく言い含める必要はあるけど、
それはまた違う話だしね。
0710709
2012/09/23(日) 17:56:36.11>>708
ありきたりじゃないと思うが…
普通、最初の方にバージョンとか、特性とかの情報を埋め込んでおくのが常套手段と思う。
0711デフォルトの名無しさん
2012/09/23(日) 17:58:53.02クライアント側プログラム変更できないのに、なんで64ビットに出来るんだよ。
変更できてるじゃん。
この時点で質問の前提がウソ。
0712デフォルトの名無しさん
2012/09/23(日) 18:01:29.380713デフォルトの名無しさん
2012/09/23(日) 18:45:21.2432bit中上8bitとか1bitを別の目的で使っていたシステムみたいだね。
でもint64はポインタじゃないよ?
0714デフォルトの名無しさん
2012/09/23(日) 18:56:13.96システム知らんけど、
64bit側でもint32に入りきる範囲の正の数値しか扱っていない前提なら、
int64でエンコードされていても上位32bitはALL0になるのは保証される
0715669
2012/09/23(日) 19:37:00.83・現在、32ビットでサーバ、クライアントが稼働中。クライアント台数多
・ハードウェア老朽化で移行作業をすすめている。64ビットOSに変更
・32ビットOSから64ビットOSに変更する事は決定事項で口を出せる立場にはいない
・稼働中のクライアントプログラムの入れ替えはできない。
・新規に追加されるクライアントは64ビットのOSで追加する。
・最初に更改されるのはサーバ(64ビットになる)
上記の状態で、調査を実施し、一部の通信データでlongが使用されていた。
これは、32ビットと64ビットでサイズが異なってしまうため、32ビット分しか使用されていないか調査した。
※問題なければ、intにキャストして解決しようとしていた。
しかし、全体の中の一部だけOS依存のデータがあり、8バイトになってしまうものがあった。
上記理由のため、64ビット版ではクライアント側、OS側共にlong部分をINT64に変更する必要がでた。
まずはサーバ移行のため、32ビット版だけに対応していれば、すぐには問題がでないが、段階的に64ビットの
クライアントが導入された際に問題がでるため、対応方法を検討していました。
XDRは使用した事がなく、調査したが対応策を発見できなかった為、使用経験がある方からのアドバイスを頂きたく、相談しました。
今回の対応方法はデータ仕様依存があるので、仕様変更された際には保証ができませんが、>>709さんが書いてあるとおり、
現時点では問題ないと認識しています。
0716デフォルトの名無しさん
2012/09/23(日) 19:44:59.34ありがちな崩壊しているシステムなのだろう
0717デフォルトの名無しさん
2012/09/23(日) 19:52:49.270718デフォルトの名無しさん
2012/09/23(日) 20:01:32.51最初の仕様考えた奴が、あまりこういう経験なかったんだろ。
0719デフォルトの名無しさん
2012/09/23(日) 20:04:22.62717はデスマでいってよし
0720デフォルトの名無しさん
2012/09/23(日) 20:34:12.72読んだ限り、「64bitOSにしたから64bit版に変えたい」という以外に見当たらないような。
0721デフォルトの名無しさん
2012/09/23(日) 20:35:02.73頭固くて馬鹿そうだねえ。
0722デフォルトの名無しさん
2012/09/23(日) 20:43:00.94デスマになる理由分かる?
投資労さん
0723デフォルトの名無しさん
2012/09/23(日) 21:23:03.51動かすのは制約条件に入ってないから全然問題ないじゃん。
必死になってクライアントプログラムの64ビット化進めるメリットなんてまるでない。(営業上の理由?)
アホかと1000回言いたい。
0724デフォルトの名無しさん
2012/09/23(日) 21:34:14.02人間にわかるわけがない。
営業上の理由かもしれないし、そもそも 64bit 版では 32bit の
プログラムが動かないOSかもしれない。
0725デフォルトの名無しさん
2012/09/23(日) 21:38:48.39よそのデスマ、めしうまー
0726デフォルトの名無しさん
2012/09/23(日) 21:46:11.920727669
2012/09/23(日) 21:52:53.90新しいクライアントの64ビット化に対応するのは必要な部分のみです。
既存で動いているので、基本は新OSで再コンパイルだけで終わらせたいと思っています。
しかし、>>715に記載しているのですが、OS依存のデータが一部あり、OSが変わった事で4バイトだった物が8バイトになってしまったものがあります。
対応しないで4バイトで切り捨てした場合、動作が保証できなくなる不都合があり、必要最低限の対応を行うという物です。
0728デフォルトの名無しさん
2012/09/23(日) 22:13:26.63具体的に「何が8バイトになったのか」を示さないと。
散々いわれてるけど「64bitOSでも32bitプログラムはそのまま動く(大半は)」ので
いわゆる64bit処理系で起こる「ポインタが64bit」「longが64bit」というのは
「64bitプログラムにしたから起こること」であって
「32bitプログラムのままではいけない理由」にはならない。
0729デフォルトの名無しさん
2012/09/23(日) 22:18:01.64十分な理由ではあるけれど、
それなら「OS依存のデータ云々」は関係ないよね。
0730デフォルトの名無しさん
2012/09/23(日) 22:18:49.64馬鹿ユーザに馬鹿害虫
0731デフォルトの名無しさん
2012/09/23(日) 22:32:11.89例えばそのプログラムが物理メモリーの最大値を返すとか言うのが想像できないんだろ。
※ 一部の 32bit OS では、4GB 以上の物理メモリーをサポートするけど、一例だからね。
0732678
2012/09/23(日) 22:41:44.12(ネットワーク上を流れる)外部データ表現と(OS内部の)内部データ表現との違いを間違って理解している
XDR(eXternal Data presentation)は通信規格だから、
(一般的な)整数型は(OSの違いとは無関係に)32bit固定と明確に仕様が定義されている
(これはC言語上でのデータ型 short/int/long のどれであっても同じで、通信データとしては全て32bit)
そして、long型のOS内部表現では大きさが32bit/64bitとかエンディアンといった差異が
存在するから、それらを吸収させる為に xdr_xxx という変換関数がライブラリとして提供されている
だから「32ビットと64ビットで(通信データの)サイズが異なってしまう」なんてことはありえなくて、
普通は xdr_long を呼ぶコードには何ら修正を加えること無くリコンパイルするだけで終わる
以下は「Solaris 64 ビット開発ガイド」p.64 からの引用(題名でググればPDFで読める)
XDR ルーチンの xdr_long(3NSL) は問題と思われるかもしれません。しかし、これは
既存のプロトコルとの互換性を持たせるために従来どおり 32 ビットとして取り扱われます。
64 ビットバージョンのルーチンが 32 ビットに格納できない long 値を
コード化するように要求された場合、そのコード化処理は失敗します。
0733デフォルトの名無しさん
2012/09/23(日) 23:20:32.490734デフォルトの名無しさん
2012/09/24(月) 00:48:10.2132ビットプログラム/64ビットOSになると64ビット必要になるというのは何だろう。
物理メモリなんてくだらない情報は適当な32ビット値返しときゃいいし。
0735デフォルトの名無しさん
2012/09/24(月) 05:03:41.05> 物理メモリなんてくだらない情報は適当な32ビット値返しときゃいいし。
そんなに悔しかったのかよ (w
0736デフォルトの名無しさん
2012/09/24(月) 08:19:15.21まぁ、手っ取り早く移植したいなら、
typedef int longとでもすれば済む話だしな。
0737デフォルトの名無しさん
2012/09/24(月) 10:21:12.21全ライブラリにそう書いて回るの? 大変だね
0738デフォルトの名無しさん
2012/09/24(月) 10:44:26.210739デフォルトの名無しさん
2012/09/24(月) 10:58:58.780740デフォルトの名無しさん
2012/09/24(月) 11:09:20.020741デフォルトの名無しさん
2012/09/24(月) 11:39:38.0164bitのクライアントは64bitのサーバーに接続する。
なんというすばらしい発想の転換
0742デフォルトの名無しさん
2012/09/24(月) 12:07:03.600743デフォルトの名無しさん
2012/09/24(月) 13:31:21.220744デフォルトの名無しさん
2012/09/24(月) 15:58:49.04int,long
ごちゃまぜなんじゃね
0745デフォルトの名無しさん
2012/09/24(月) 16:05:58.570746デフォルトの名無しさん
2012/09/24(月) 16:07:36.930747デフォルトの名無しさん
2012/09/24(月) 16:18:25.17これ使って、ハマらないようにしましょうって、言ってるのもわからないんだ
0748デフォルトの名無しさん
2012/09/24(月) 22:24:01.45>>733
0749デフォルトの名無しさん
2012/09/24(月) 22:30:52.180750デフォルトの名無しさん
2012/09/24(月) 22:32:05.160751デフォルトの名無しさん
2012/09/24(月) 22:50:14.09逝ってるな64bitOSなら
32アプリが動くような環境作ればいいだけ
移植もへったくれもない
0752デフォルトの名無しさん
2012/09/24(月) 23:01:13.20速攻追放した方がいいよ。この先もどんどんコストかかるような
バカやらかすよ。
0753デフォルトの名無しさん
2012/09/24(月) 23:41:32.58まだ馬鹿晒すのかよ…
0754デフォルトの名無しさん
2012/09/24(月) 23:46:02.68まともな反論してみな
0755デフォルトの名無しさん
2012/09/25(火) 00:11:35.990756デフォルトの名無しさん
2012/09/25(火) 00:18:07.04よくわからんが、
struct T { size_t file_size; time_t creation_time };
みたいなレコードをクライアントからサーバに送る処理があって、
32bit OSのクライアントはint32型の値を並べて送ってくるけど、
64bit OSはint64型の値を並べ絵送ってくる。
これをストリームとして受信しているサーバ側で区別したいということかな?
0757デフォルトの名無しさん
2012/09/25(火) 00:26:34.51そういう話らしい。
もちろんこの場合は64bitOSとは全然関係ないけれど。
0758デフォルトの名無しさん
2012/09/25(火) 00:28:47.27キャストを間違える、APIの戻り値をハードコードする、
そんなバカな派遣のじじいがいるんだけど、どうやって
追い出したらいいかな。NULLは0だと力説する気狂い。
0759デフォルトの名無しさん
2012/09/25(火) 00:44:20.500760デフォルトの名無しさん
2012/09/25(火) 01:34:50.39SNMP真っ向から否定かよw
0761デフォルトの名無しさん
2012/09/25(火) 10:58:38.09OSには依存してないだろ!
0762デフォルトの名無しさん
2012/09/25(火) 11:20:51.630763デフォルトの名無しさん
2012/09/25(火) 12:01:11.560764デフォルトの名無しさん
2012/09/25(火) 13:44:30.77それがどうした
0765デフォルトの名無しさん
2012/09/25(火) 15:02:25.410766678
2012/09/25(火) 18:48:19.96おそらく質問主(>>669)は、そのように考えていたのだと思う
しかし、今回の64bit版サーバ&クライアント開発のケースでは、
・64bit化に伴なう機能の追加や変更は一切無く(>>715,727)、しかも
・整数値は必ず32bitに格納できる(>>679)
わけだから、(>>732で書いたように)クライアントのOSが32bit/64bitのどちらであっても
(XDRでエンコードされて)ネットワーク上を流れる通信データは32bit表現のままで何も問題は無かった
結論としては、32bit版のコード内にある xdr_u_long の部分を「わざわざ」 xdr_int64_t へと
修正したこと(>>669)そのものが誤りであり、その「余計な行為」がバグを作り込んでしまったと言える
言い換えると、既存の32bit版システムで使われていた通信プロトコル仕様における整数表現形式を
32bitから64bitへと「意図せず」に改変(改悪?)したことになる
0767デフォルトの名無しさん
2012/09/25(火) 22:00:49.15余計な行為じゃねーだろ、意図もしてるし。
>>715 全体の中の一部だけOS依存のデータがあり、8バイトになってしまうものがあった。
ただ修正の方法が間違っているとは思う。
>>754
反論なんているか?
普通の頭持ってたら、>>751 が意味ないことがわかると思うんだが…(w
0768デフォルトの名無しさん
2012/09/25(火) 22:08:57.160769デフォルトの名無しさん
2012/09/25(火) 22:15:02.31751は正しい。
0770678
2012/09/25(火) 23:11:09.70X: ・整数値は必ず32bitに格納できる(>>679)
O: ・整数値は必ず32bitに格納できる(>>697)
>>767
>余計な行為じゃねーだろ、意図もしてるし。
他の何人かも指摘しているけど、ネットワーク上を流れる通信データとして
OS依存な表現が必要であるという意図(あるいは事情)が(自分には)想像できない
ありえるとすれば、共用メモリ/ファイル共有/プロセス移送といった分散OS的なメカニズムを
実装するケースがあるけど、はたして>>669担当のシステムがそれに該当するのか疑わしい....
で、もしも通信データとして64bit整数(= XDR規格における hyper整数)が「本当に」必要であったのなら、
正式な手順に従って通信プロトコル仕様を改訂し、その工数を見積もりで計上すべきだったと考える
ここで、プロトコル仕様にプロトコルバージョンの概念が含まれていればアップすることで対応できるし、
もし無ければ新たにポート番号を割り当て、プロトコルバージョンを含む新プロトコルとして扱うことになる
0771デフォルトの名無しさん
2012/09/25(火) 23:51:32.24>>754
>>770
> 他の何人かも指摘しているけど、ネットワーク上を流れる通信データとして
> OS依存な表現が必要であるという意図(あるいは事情)が(自分には)想像できない
表現って何を言ってるのか知らんけど、上にも上げた物理メモリーの容量とかを
サーバーに送るとかは別に珍しくないと思うが。
> プロトコル仕様にプロトコルバージョンの概念が含まれていればアップすることで対応できるし、
> もし無ければ新たにポート番号を割り当て、プロトコルバージョンを含む新プロトコルとして扱うことになる
バージョンがあったらこんなに盛り上がってないし、F/W とかの絡みでポート番号をほいほい
変えられない環境って結構ある。
とにかく、「疑わしい」とか上から目線で語りたいなら、もう少し世間を知った方がいいと思うぞ。
まあ、分散OSって言いたいだけのおこちゃまなんだろうけど。(w
0772デフォルトの名無しさん
2012/09/25(火) 23:56:59.44直せとは言えないとか、そういうくだらない理由なんだろうな。技術的な話じゃなくて。
0773デフォルトの名無しさん
2012/09/26(水) 00:04:49.43え?サーバの64bitの値を取得したいって?
そんなの対応してないから無理。64bitでビルドすればとれるってのは
幻想だよ幻想。
0774デフォルトの名無しさん
2012/09/26(水) 00:40:37.680775デフォルトの名無しさん
2012/09/26(水) 00:41:50.75て言うか、32bit 版のクライアント配りまくってていまさら入れ替えなんて出来ない状況とかなんだろ。
まあ、それなりにありえる話だと思うぞ。
だからこそ、普通はプロトコルバージョンとかを頭に入れておくとかするんだが、まあ仕様決めた奴が
馬鹿だったんだろうな。
0776デフォルトの名無しさん
2012/09/26(水) 07:47:24.12無能全開で楽しそうだね
0777デフォルトの名無しさん
2012/09/26(水) 14:57:02.64混乱してるだけなんだろうな。
64ビットOSでも32ビットでコンパイルしたものを動かせば完了だろう。
>>771がファビョってるが、物理メモリ以外の64ビット必要なデータが出てこないな。
ファイルサイズやtime_tは32ビットOSでも既に64ビット化されてるから問題ないし。
物理メモリも32ビットOSでも4G超えてる場合もあったので、今更必死で対応する必要ないな。
0778デフォルトの名無しさん
2012/09/26(水) 14:58:14.34仕事しろ、無能が
0779デフォルトの名無しさん
2012/09/26(水) 19:38:11.68>time_tは32ビットOSでも既に64ビット化されてるから問題ないし。
嘘をつくな!
Linuxの32bit版カーネルではtime_tは32ビットのままだ!
0780デフォルトの名無しさん
2012/09/26(水) 19:43:20.370781デフォルトの名無しさん
2012/09/26(水) 19:51:12.850782デフォルトの名無しさん
2012/09/26(水) 21:02:57.30お前馬鹿だろ。9/14のメール読んでみろ。
0783デフォルトの名無しさん
2012/09/26(水) 21:07:11.50?
0784デフォルトの名無しさん
2012/09/26(水) 21:11:59.76バカ未満だと認識されてるのもわかってないとか
0785デフォルトの名無しさん
2012/09/26(水) 21:36:17.95今更long longにはできんよなぁ
0786デフォルトの名無しさん
2012/09/26(水) 21:38:30.000787デフォルトの名無しさん
2012/09/26(水) 21:39:19.080788デフォルトの名無しさん
2012/09/27(木) 01:24:15.17>>754
>>777
> 逃亡したか。
平日の昼間までにちゃんできるお前に同情してやるよ。
> やはりlongとintを区別せずに書いたアプリで32ビットと64ビットが混乱してるだけなんだろうな。
そんな馬鹿は今時お前ぐらいしかいないよ。
万が一そうだったとしても64bit 版はいくらでも手を入れられるんだから、問題ないし。
そもそも、そういう問題じゃないと >>715 で明記してるし。
> 物理メモリ以外の64ビット必要なデータが出てこないな。
ひょっとして「物理メモリなんてくだらない情報は適当な32ビット値返しときゃいいし。」と言ってた
馬鹿? (w
0789デフォルトの名無しさん
2012/09/27(木) 01:26:25.400790デフォルトの名無しさん
2012/09/27(木) 01:30:49.370791デフォルトの名無しさん
2012/09/27(木) 01:36:22.710792デフォルトの名無しさん
2012/09/27(木) 11:20:44.3032bitでも同じにならないよ
0793デフォルトの名無しさん
2012/09/27(木) 11:23:04.2132ビット版Linuxってそれまでに駆逐されるんだろうか
0794デフォルトの名無しさん
2012/09/27(木) 11:52:21.29CPUは例外なく64bit化が完了しているし、プログラム
のバイナリ互換性が問題にならないシステムは順次
64bitに置き換わっていくんじゃないかね。
0795デフォルトの名無しさん
2012/09/27(木) 12:04:08.340796デフォルトの名無しさん
2012/09/27(木) 15:44:56.98足し算も出来ない知障か
それともこぴぺか
0797デフォルトの名無しさん
2012/09/27(木) 15:53:26.93お祭り騒ぎにしてひと儲けとかもう無理だから
0798デフォルトの名無しさん
2012/09/27(木) 17:43:16.910799デフォルトの名無しさん
2012/09/27(木) 17:52:18.280800デフォルトの名無しさん
2012/09/27(木) 18:00:29.110801デフォルトの名無しさん
2012/09/27(木) 18:04:11.15>1900年1月1日からの積算秒数で時間を表現するシステムもあり、
>符号なし32ビットの値が2036年2月6日にオーバーフローすることによって
>問題が発生する(→2036年問題)。
64bit長にすれば、なんでもないことでしょ
対応できないようなアプリ作りこむ人達がいるってだけ
NTPはその問題先読みした設計になってたような
0802デフォルトの名無しさん
2012/09/27(木) 18:05:11.490803デフォルトの名無しさん
2012/09/27(木) 18:16:48.230804デフォルトの名無しさん
2012/09/27(木) 18:25:08.440805デフォルトの名無しさん
2012/09/27(木) 18:40:54.89linux以外ではね
0806デフォルトの名無しさん
2012/09/27(木) 18:41:52.10最近直した
0807デフォルトの名無しさん
2012/09/27(木) 18:42:46.750808デフォルトの名無しさん
2012/09/27(木) 19:20:54.1010進だったらウチでもあったな。
日時順で処理するフラグとしてファイル名にUNIX timeを付けてたら
桁が上がってソート順が変わってしまったw
あれはいつのことだっけ?
0809デフォルトの名無しさん
2012/09/27(木) 19:27:19.000810デフォルトの名無しさん
2012/09/27(木) 20:08:44.88そんなこともあったねぇ・・・
0811デフォルトの名無しさん
2012/09/27(木) 20:21:28.92http://mimizun.com/log/2ch/accuse/1000000000/
まあ、9が10になったり99が100になったりしたときに
桁数の問題ではなくソート順の問題が出てくるというのも、よくあることだね。
0812デフォルトの名無しさん
2012/09/27(木) 21:00:19.86冷密のきっちりしたロジックのほうがすき!
0813デフォルトの名無しさん
2012/09/27(木) 22:05:49.100814デフォルトの名無しさん
2012/09/27(木) 22:10:47.28冷凍庫のぎっしりしたジップロックのほうがすき!
0815デフォルトの名無しさん
2012/09/28(金) 00:11:00.63かわいそうな人…、まあ頑張れよ。(w
0816デフォルトの名無しさん
2012/09/28(金) 00:36:57.370817デフォルトの名無しさん
2012/09/28(金) 01:23:52.66>>806
うるう秒の処理にバグがあってシステムごと落ちてたあれか
0818デフォルトの名無しさん
2012/09/28(金) 20:55:10.720819デフォルトの名無しさん
2012/09/28(金) 20:59:44.33つまりどういうことです?
0820デフォルトの名無しさん
2012/09/28(金) 22:42:44.91ってこと
0821デフォルトの名無しさん
2012/09/29(土) 00:47:30.300822デフォルトの名無しさん
2012/09/30(日) 02:08:50.92知りたいのは半二重、全二重のどちらで動作しているか、です
アダプタの設定ではなく、実際に動作(リンク)しているモードです
Win32_NetworkAdapter classの中には該当するメソッドやプロパティは見当たらないようです
0823デフォルトの名無しさん
2012/09/30(日) 02:35:34.080824デフォルトの名無しさん
2012/09/30(日) 09:48:11.270825デフォルトの名無しさん
2012/09/30(日) 09:52:34.03同軸だったら調べるまでもないだろ
0826デフォルトの名無しさん
2012/09/30(日) 10:24:36.31wmi
0827デフォルトの名無しさん
2012/09/30(日) 15:27:16.39とかわからなくても、動かす分には関係無いような
0828デフォルトの名無しさん
2012/09/30(日) 15:58:51.51wmiのドキュメントをざっと見てみたのですが、取得の方法がよくわかりませんでした
メソッドの一覧を見た感じ、データリンク層とはあんまり関係ないような気もします
>>827
組み込み制御用のマシンなんですが、全二重になっていないと遅延とデータ量の関係で取りこぼしが発生する可能性があるため
デバッグ用のWindowsマシンを接続した時にNICにモードを自動判別させて、その結果を知りたいのです
スイッチングハブをはさんでLEDで確認するという方法も提案したのですが、できればソフトウェアでやりたいということで
0829デフォルトの名無しさん
2012/09/30(日) 16:05:08.15その馬鹿プログラムを直せよ
0830デフォルトの名無しさん
2012/09/30(日) 16:09:16.150832829
2012/09/30(日) 16:46:52.340833デフォルトの名無しさん
2012/09/30(日) 17:16:13.621Mbpsにしたかったら毎秒1MBしか送信しないようにすればいいの?
0834デフォルトの名無しさん
2012/09/30(日) 17:20:34.54受信側を1Mbpsにしても送信側の帯域はMAXで一気に送信してしまう?
0835デフォルトの名無しさん
2012/09/30(日) 17:30:59.110836デフォルトの名無しさん
2012/09/30(日) 17:46:07.89個々のパケットのタイミングで考える場合は期間のとり方でいくらでも変わる。
極端には、パケットを送出している範囲に限れば帯域をMAXで使っていることになる。
0837デフォルトの名無しさん
2012/09/30(日) 20:10:51.17YES
>>834
YES
0838デフォルトの名無しさん
2012/09/30(日) 20:56:45.28NDIS対応のEthernetインターフェースならなんとか取得できるだろうけど、
SNMPサーバをたちあげてSNMP経由で取得するのがいいと思う。
0839デフォルトの名無しさん
2012/09/30(日) 21:18:38.850840デフォルトの名無しさん
2012/09/30(日) 21:38:43.850841デフォルトの名無しさん
2012/09/30(日) 21:48:44.100842デフォルトの名無しさん
2012/09/30(日) 23:03:00.820843デフォルトの名無しさん
2012/10/01(月) 00:18:41.470844デフォルトの名無しさん
2012/10/01(月) 00:36:47.540845デフォルトの名無しさん
2012/10/01(月) 01:11:39.050846デフォルトの名無しさん
2012/10/01(月) 01:13:13.83出直してこい。
0847デフォルトの名無しさん
2012/10/01(月) 04:03:45.80$ cat /sys/class/net/eth0/duplex
full
0848デフォルトの名無しさん
2012/10/01(月) 08:40:00.97きっちりバッファリングする提案(開発費大)と、全二重チェックして半二重だったら
止める(開発費小)を提案して選ばせるのはありかと。
0849デフォルトの名無しさん
2012/10/01(月) 08:41:28.680850デフォルトの名無しさん
2012/10/01(月) 08:59:31.30わかってないバカがまだいるのか。現実直視しろよ。
開発に求められているのは機能や品質じゃなくて、コストなんだよ。
自分が担当しているうちに問題起きなきゃOK。
最善の解を追及するなんて不可能。つまらない業界に成り果ててる。
0851デフォルトの名無しさん
2012/10/01(月) 09:18:42.81問題(課題)に対しての読解力でも磨いたら
0852デフォルトの名無しさん
2012/10/01(月) 09:20:47.43多分、半二重の環境探してみても、見つからんだろうね
0853デフォルトの名無しさん
2012/10/01(月) 09:24:58.130854デフォルトの名無しさん
2012/10/01(月) 09:25:58.980855デフォルトの名無しさん
2012/10/01(月) 09:28:22.250856デフォルトの名無しさん
2012/10/01(月) 09:33:50.54前提が全く不明なのに、それは正しくないとか金勘定もできないカタワの
公開オナニーほど見苦しいものは無い。
0857デフォルトの名無しさん
2012/10/01(月) 09:37:38.650858デフォルトの名無しさん
2012/10/01(月) 09:38:34.80こんな簡単なやり方も思いつかんの?
0859デフォルトの名無しさん
2012/10/01(月) 10:08:14.69なければ応急処置しかできない
というだけのはなしだろ。むずかしいことじゃない。
0860デフォルトの名無しさん
2012/10/01(月) 10:14:21.340861デフォルトの名無しさん
2012/10/01(月) 10:28:40.89どうズレてるのか説明しろ
0862デフォルトの名無しさん
2012/10/01(月) 10:38:35.99>>856を1000回読め
さらにズレてる上に間違ってる
金があれば正しく解決できるとは限らない
応急処置しかできないとも限らない
0863デフォルトの名無しさん
2012/10/01(月) 10:48:08.89無駄なことヤメレに対して金出さないバカクライアントが居るから
という状況の説明するのは普通のことだろ...
0864デフォルトの名無しさん
2012/10/01(月) 10:54:16.45あんまり付き合う気にならないけど、引導渡してやるから成仏しろ。
http://itknowledgeexchange.techtarget.com/powershell/network-adapter-speed-and-duplex/
0865デフォルトの名無しさん
2012/10/01(月) 13:04:08.80それって実際の動作モードじゃないじゃん
こんな短いソースなんだから中身読んでから貼れよ
0866デフォルトの名無しさん
2012/10/01(月) 13:44:48.080867デフォルトの名無しさん
2012/10/01(月) 13:54:01.18こんな断片情報で仕事の内容とか腹痛い
0868デフォルトの名無しさん
2012/10/01(月) 13:55:39.390869デフォルトの名無しさん
2012/10/01(月) 13:57:58.23かれこれ2時間ぐらい検索してるけど
海外の掲示板なんかを見ても定期的に出てくる話題っぽい
MSの掲示板でも中の人ができないって言ってるけど本当に無理なのか
0870デフォルトの名無しさん
2012/10/01(月) 14:18:40.03他のアプリがnet使わない条件でね
0871デフォルトの名無しさん
2012/10/01(月) 15:08:02.39ネットワークカードを直接叩くの?
0872デフォルトの名無しさん
2012/10/01(月) 16:02:19.340873デフォルトの名無しさん
2012/10/01(月) 18:48:05.66言い訳になるが有線な環境ないんだよ。↓に状態が出るもんだと思い込んでた。
> イーサネット アダプター ローカル エリア接続:
> メディアの状態. . . . . . . . . . : メディアは接続されていません
こんなのが引っかかったが、ドライバ別に取るしかない?
http://social.msdn.microsoft.com/Forums/en-US/wsk/thread/4baaaabb-cc77-4bd0-91da-00dff3792742/
0874デフォルトの名無しさん
2012/10/01(月) 19:08:10.82だって、2台をつなぐ時でさえ、間にいくつのハブが挟まってるかわからないと思うから。
全二重/半二重の区別は、NICやスイッチ/ハブとの間の個々の区間で
それぞれ個別に設定されているんじゃないかな。
そして、その個々の区間の終端はMACを持ってないものも多いはず。
0875デフォルトの名無しさん
2012/10/01(月) 20:04:24.66フォトカプラとDIOボードを使えば何とかなると思う。
0876デフォルトの名無しさん
2012/10/01(月) 20:08:13.91intelと蟹の2種類あれば十分でしょ
0877デフォルトの名無しさん
2012/10/01(月) 20:26:42.00そもそもプロトコルもIPとかじゃないだろうし。
0878デフォルトの名無しさん
2012/10/01(月) 20:30:09.63上に書いたようにSNMPに頼ってください。
0879デフォルトの名無しさん
2012/10/01(月) 22:01:34.09ttp://msdn.microsoft.com/en-us/library/windows/hardware/hh205390(v=vs.85).aspx
構造体の中に
NDIS_MEDIA_CONNECT_STATE MediaConnectState;
NDIS_MEDIA_DUPLEX_STATE MediaDuplexState;
ULONG64 XmitLinkSpeed;
ULONG64 RcvLinkSpeed;
ってあるから、これで読み出せるんでね?
0880デフォルトの名無しさん
2012/10/01(月) 22:35:12.47その辺は自力で調べる必要がある。
英語読めない人は不可能と思った方がいい。
もともと3ComとMicrosoftの決めた古い規格なんで。
0881デフォルトの名無しさん
2012/10/09(火) 17:34:34.65サーバ1つでクライアントが複数ある場合
接続してきたクライアントが有効か否かをチェックする為にSO_KEEPALIVEを使用しようと思っています。
SO_KEEPALIVEはサーバで生成したソケットに対して設定すればよいのでしょうか?
それともacceptしてきたクライアントのソケットに設定するのでしょうか?
0882デフォルトの名無しさん
2012/10/09(火) 17:41:08.52アクセプトしたやつにつける
0883デフォルトの名無しさん
2012/10/09(火) 17:41:39.510884デフォルトの名無しさん
2012/10/09(火) 18:35:18.28ありがとうございます。
ちなみにクライアント側のconnectするソケットにも設定する必要がありますか?
0885デフォルトの名無しさん
2012/10/09(火) 19:18:22.85KEEPALIVEは、 投げるか投げないか の設定なのよ。
つまり、KEEPALIVE設定した方は切断を検知するけど
KEEPALIVEを設定して無い側は切断を検知しないんよ。
0886デフォルトの名無しさん
2012/10/10(水) 11:54:26.04承知しました。知りたいのはサーバ側なのでクライアント側には設定しないようにします。
KEEPALIVEを設定してみたのですがConnection timed outというエラーが出ます。
開始までを120秒、リトライ間隔を30秒、リトライ回数5回としてやっています。
ネットは常に接続している状態だし、ルータの自動切断する時間よりも短い感覚です。
なぜエラーになるのでしょうか?
0887デフォルトの名無しさん
2012/10/10(水) 15:20:36.81KEEPALIVEを設定しないとちゃんと接続できるのか?
0888デフォルトの名無しさん
2012/10/10(水) 15:50:00.850889デフォルトの名無しさん
2012/10/11(木) 14:39:27.80なんか間違ってるよ。
0890デフォルトの名無しさん
2012/10/11(木) 17:44:23.50> 接続してきたクライアントが有効か否かをチェックする為にSO_KEEPALIVEを使用しようと思っています。
そのような目的にSO_KEEPALIVEを使うことはできません。
放置されても接続が破棄されにくくすることが出来るだけです。
>>885
何か別のものと間違えてませんか?
0891デフォルトの名無しさん
2012/10/11(木) 20:16:05.140892デフォルトの名無しさん
2012/10/11(木) 20:19:16.880893デフォルトの名無しさん
2012/10/11(木) 20:27:09.150894デフォルトの名無しさん
2012/10/11(木) 20:30:40.04違います
0895デフォルトの名無しさん
2012/10/11(木) 20:35:58.52そりゃそういう分野だし仕方ない
0896デフォルトの名無しさん
2012/10/11(木) 20:41:12.42どういうふうに違うの?
手持ちのUNIXネットワークプログラミング第2版vol.1 p179には
『本オプションの目的は、相手ホストのクラッシュを検出することにある』
と書いてあるし、実験でも本番でもそういう挙動しかみたことないけど
どこか間違ってたら訂正するので教えてください。
0897デフォルトの名無しさん
2012/10/11(木) 20:45:35.93いや、原理的にさ、パケットを投げてない側は切断を検知しようがないじゃん。
0898デフォルトの名無しさん
2012/10/11(木) 20:46:22.07いいえ。
0899デフォルトの名無しさん
2012/10/11(木) 21:07:48.47>>894
>>898
悔しさは伝わった。
0900デフォルトの名無しさん
2012/10/11(木) 21:49:04.25SO_KEEPALIVEの目的は二つある
・APの無通信状態が継続していてもTCPコネクションの自動切断を抑止する
==>「放置されても接続が破棄されにくくすることが出来る(>>890)」
・下位層異常を検知してTCPコネクションを自動的に切断する
==> 「SO_KEEPALIVEを設定した(投げる)側だけが切断を検知できる(>>885,893)」
つまり、>>890と>>885,893の指摘のどちらも「TCPコネクション接続後の自動切断処理」について
話しているから、両者の指摘はともに間違いではない
ただし、今の時代はWAN(広域ネットワーク)でも常時接続サービスが一般化しているから、
前者(>>890の自動切断の抑止)を目的にSO_KEEPALIVEを設定するケースは極めて限られると思う
そして、「TCPコネクション接続時のエラー検知処理」にSO_KEEPALIVEを利用しようという
質問者(>>881,886)の考え方が間違っている(=SO_KEEPALIVEの目的を誤解している)、と言える
0901デフォルトの名無しさん
2012/10/11(木) 21:51:11.25APレベルとホストレベルは区別しましょう、目的は知らんが
0902デフォルトの名無しさん
2012/10/11(木) 21:53:26.61何を言っているの?
0903デフォルトの名無しさん
2012/10/11(木) 21:54:49.89常時接続だからセッションは切断されないって?
そんな認識でよく生き延びてこられたな
0904デフォルトの名無しさん
2012/10/11(木) 21:57:37.270905デフォルトの名無しさん
2012/10/11(木) 22:02:03.790906デフォルトの名無しさん
2012/10/11(木) 22:04:28.68常時接続といっても、みんなNATになって逆に接続の維持を気にしなきゃ
ならん場面が増えたと思う。
0907デフォルトの名無しさん
2012/10/11(木) 22:31:00.22無通信だからって自分でFINを投げることは無い
というところまではその認識で正しいよ
0908デフォルトの名無しさん
2012/10/11(木) 22:42:38.12でもって無通信状態だと、相手が切断している事に気がつかないまま
ハーフオープンと言う状態に陥る場合がある。
これを防ぐためにKeepAliveを使う訳。
0909デフォルトの名無しさん
2012/10/11(木) 22:49:07.070910デフォルトの名無しさん
2012/10/11(木) 23:04:07.20まあ普通に切断してたら気づくけどな。
問題は無作法だったり、相手のホストがダウンしたり、
途中のファイアーウォールが接続を切ったりした場合。
0911デフォルトの名無しさん
2012/10/11(木) 23:27:58.06いや、区別はつくけど、それは重要じゃないかな
とにかく相手と意思が疎通出来なさそうなら切る
0912デフォルトの名無しさん
2012/10/11(木) 23:32:37.00馬鹿は相手にしない
0913デフォルトの名無しさん
2012/10/11(木) 23:42:49.47SO_KEEPALIVEを使うのは、逆にアプリ側でそういったことを意識しないで
楽できるってことだと思うが。
0914デフォルトの名無しさん
2012/10/12(金) 00:04:32.78そのためのKEEPALIVEですね
0915デフォルトの名無しさん
2012/10/12(金) 00:09:17.88馬鹿乙
すべてのアプリに設定するのか
0916デフォルトの名無しさん
2012/10/12(金) 00:13:49.20はぁ?>>913のように楽したいアプリだけ設定すりゃいいだろ?
0917デフォルトの名無しさん
2012/10/12(金) 00:19:31.13わりい馬鹿だと思ってすべった
0918デフォルトの名無しさん
2012/10/12(金) 12:47:17.71LAN環境なら接続を維持しています。
インターネットだとルータを通り、ルータには無通信状態のタイムアウトが
あるのでそれで切断されているようでした。
なのでKEEPALIVEを設定しています。
0919デフォルトの名無しさん
2012/10/12(金) 20:45:11.15で目的は何?
0920デフォルトの名無しさん
2012/10/12(金) 21:17:31.93・無通信状態によるルータの切断を防ぐ
・接続断を早期に検知する
だろ
0921デフォルトの名無しさん
2012/10/12(金) 21:18:08.09有田と思うよ
0922デフォルトの名無しさん
2012/10/12(金) 21:57:49.01KeepAliveのデフォルト監視周期って2時間だろ。
>・無通信状態によるルータの切断を防ぐ
>・接続断を早期に検知する
上のような目的で、使い物になるの?
0923デフォルトの名無しさん
2012/10/12(金) 21:59:28.47おまえは881か?
0924デフォルトの名無しさん
2012/10/12(金) 22:13:00.33デフォルトのママ使って無いじゃん
>>886見る限り変更してる
0925デフォルトの名無しさん
2012/10/13(土) 17:18:58.87> KeepAliveのデフォルト監視周期って2時間だろ。
そんな長いか?
15年ぐらい前にネットワーク対応の機器の開発やってた時は数分だったと思ったが。
そもそもディフォルトってなんかで決まってるのか?
決まってるなら、ソースよろ。
0926デフォルトの名無しさん
2012/10/13(土) 17:53:29.630927デフォルトの名無しさん
2012/10/13(土) 17:59:27.902時間というのは決まっているわけではないけれど、ちゃんと根拠があり
少なくともFAQが書かれた当時には、ほぼ全ての実装がそうなっていた、と書いてある。
(SVR4.2も「変更可能である」というだけで「2時間ではない」とはなってない)
http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-4.html#ss4.7
0928デフォルトの名無しさん
2012/10/13(土) 19:17:22.40Linux使ってるなら、
/proc/sys/net/ipv4/tcp_keepalive_time
を見るといいよ
そういえばこれipv4なのな。ipv6ではどうなんの?
0929デフォルトの名無しさん
2012/10/13(土) 20:10:44.25RFC1122
4.2.3.6 TCP Keep-Alives
This interval MUST be configurable and MUST default to no less than two hours.
0930デフォルトの名無しさん
2012/10/13(土) 21:43:52.34使うときは短くして使っていいんだよな。
0931デフォルトの名無しさん
2012/10/13(土) 21:56:01.70システム全体でしか変更できないOSがほとんどだけどね。
0932デフォルトの名無しさん
2012/10/14(日) 15:30:42.51昔からあるんだろうけど何で警察はノーマークだったんだろ
0933デフォルトの名無しさん
2012/10/17(水) 14:07:10.15socketプログラムでselectを使用して送信可能か判断をしています。
FD_ISSETを判定して送信となった時sendで送信しますが、このsendはfor文で複数回呼んでもいいのでしょうか?
socketはブロッキングモードです。
0934デフォルトの名無しさん
2012/10/17(水) 15:00:03.99送信不可になった時点でブロックされるから大丈夫
「私ならブロッキングモードは使わない、絶対に。」
0935デフォルトの名無しさん
2012/10/17(水) 15:04:22.630936デフォルトの名無しさん
2012/10/17(水) 17:47:04.700937デフォルトの名無しさん
2012/10/18(木) 11:17:34.83ということはブロックされたくないなら複数回呼んじゃ駄目ってことですね。
ノンブロッキングモードならsendする時selectを使う必要ないんでしょうか?
0938デフォルトの名無しさん
2012/10/18(木) 11:51:38.240939デフォルトの名無しさん
2012/10/18(木) 13:59:18.49承知しました。selectじゃなくsendの返り値で判断するんですね。ありがとうございます。
0940デフォルトの名無しさん
2012/10/18(木) 15:09:42.34送信できるまで何度も繰り返しsendを呼びまくるのは効率悪いから普通はselect(とかpollとか)で待つけど、まぁ好きにすれば
0941デフォルトの名無しさん
2012/10/18(木) 15:32:01.00sendで送信できる分だけ送信し、
送信し切れなければまたselectで待つ
国家も同じだ
0942デフォルトの名無しさん
2012/10/18(木) 15:47:00.79送信できなければキューに入れselectで送信可能になるまで待ち、
selectで送信可能になったら、キューからsendで送信できる分だけ送信し、
送信し切れなければまたselectで待つ
キューが空でなければキューに入れ、selectで送信可能になるまで待ち、
selectで送信可能になったら、キューからsendで送信できる分だけ送信し、
送信し切れなければまたselectで待つ
0943デフォルトの名無しさん
2012/10/18(木) 19:40:28.55>>941
>>942
承知しました。
ブロッキングモードだと送信できませんエラーが返らずブロックするから駄目
って事ですよね。
ノンブロッキングにして教わったようにやってみます。ありがとうございました。
0944デフォルトの名無しさん
2012/10/18(木) 22:54:44.450945デフォルトの名無しさん
2012/10/23(火) 21:05:20.890946デフォルトの名無しさん
2012/10/23(火) 21:51:04.580947デフォルトの名無しさん
2012/10/25(木) 19:30:40.15acceptで得られる接続してきたクライアントのソケットにもノンブロキッングモードを設定してやる必要がありますか?
0948デフォルトの名無しさん
2012/10/25(木) 20:09:57.80listenソケットはどうでもいい
acceptしたソケットをこそノンブロックにしろ
0949デフォルトの名無しさん
2012/10/26(金) 11:41:35.49承知しました。ではacceptで得られるソケットに設定します。
ありがとうございます。
もう一つ質問なのですがノンブロックの場合でデータが無い場合、EAGAINが返ってくるとありますが
それでデータの有無をチェックできるならselect要らないのではと思ったのですが必要でしょうか?
0950デフォルトの名無しさん
2012/10/26(金) 11:54:22.090951デフォルトの名無しさん
2012/10/26(金) 12:15:28.130952デフォルトの名無しさん
2012/10/26(金) 12:22:09.38そのためのselectです
0953デフォルトの名無しさん
2012/10/26(金) 13:28:44.17毎回ループしてチェックする必要がないという事ですね。ありがとうございました
0954デフォルトの名無しさん
2012/10/26(金) 19:36:21.500955デフォルトの名無しさん
2012/10/26(金) 20:37:36.69ネットの回線を切断して、サーバからクライアントにデータをsendしても
recvにエラーが返ってこなくなったのですが、どうやって切断の検出をすればいいのでしょうか?
0956デフォルトの名無しさん
2012/10/26(金) 21:01:46.19誤解だぜ・・・ n個のイベントを待つんだよ。
もちろん、0個のときだってある。
0957デフォルトの名無しさん
2012/10/26(金) 23:06:32.84環境に依存しないのはタイムアウトぐらいしかないんじゃね?
>>950
わざわざカッコつけてるんだから、複数に力点がないことぐらい理解できるようになろうよ…
0958デフォルトの名無しさん
2012/10/27(土) 17:51:49.30TCP keepalive あたりでググれば幸せになれるかも
0959デフォルトの名無しさん
2012/10/28(日) 00:10:16.44struct sockaddr_in sock;
sock.sin_family = AF_INET;
sock.sin_addr.s_addr = inet_addr("127.0.0.1");
sock.sin_port = htons(12345);
C言語LINUXだけど、ここのIPアドレス部分にプライベートアドレス(111.111.111.111とか)書いても送れる?
0960デフォルトの名無しさん
2012/10/28(日) 02:20:18.44開けたり閉じたり書いたり読んだり。
特に何もしなくても通信できるとしたら、神からの啓示だ。
0961デフォルトの名無しさん
2012/10/28(日) 06:01:14.75えぇっ!?
0962デフォルトの名無しさん
2012/10/28(日) 09:07:47.10まずは、やってみなよ。
0963デフォルトの名無しさん
2012/10/28(日) 11:51:41.320964デフォルトの名無しさん
2012/10/28(日) 12:26:55.77C:\>nslookup
Default Server: local.gateway
Address: 192.168.1.1
> set type=PTR
> 111.111.111.111
Server: local.gateway
Address: 192.168.1.1
Non-authoritative answer:
111.111.111.111.in-addr.arpa name = KD111111111111.ppp-bb.dion.ne.jp
0965デフォルトの名無しさん
2012/10/28(日) 13:52:20.650966デフォルトの名無しさん
2012/10/28(日) 14:52:28.99isikawahuryouさん
このHPの画像をC#等で取得したい。
http://www.jartic.or.jp/ext_map.html?code=2001
このページになります。
ソース上でGIFファイルのファイル名が特定されていません。
いかがでしょうか。
0967デフォルトの名無しさん
2012/10/28(日) 15:13:41.30取得できないようにがんばっているので
取得しないであげてください。
取得できる方法が確立されたら、
ほかの方法でさらに取得できないようにするだけです。
0968966
2012/10/28(日) 15:27:28.50えっ、そうなんですか?
僕は、このサイトのGIFフィアルを定期的に取得して、
何曜日の何時頃、どこが混むのか知りたいのです。
0969dummy=0.969
2012/10/28(日) 16:52:44.280970デフォルトの名無しさん
2012/10/28(日) 16:53:53.47IE9 だと F12
で判る
0971デフォルトの名無しさん
2012/10/28(日) 17:01:22.430972966
2012/10/28(日) 17:14:19.340973デフォルトの名無しさん
2012/10/28(日) 17:25:41.590974デフォルトの名無しさん
2012/10/28(日) 23:20:48.48キープアライブ実装で出来ました。ありがとうございます。
確認なのですが、ノンブロッキングでsendしてもエラーが返って来ないのは仕様ですか?
今まではキープアライブの変わりに一定間隔でダミーパケットを送信していたもので…
0975デフォルトの名無しさん
2012/10/29(月) 08:39:47.59引数つけてるのは取得できないようにしてるんじゃなくキャッシュ回避だろ
定期的に保存したいなら時間情報使って保存ファイル名指定しろ
#数字には意味は何もない
url: "_json/map_" +_jsmode +".json?dummy=" + Math.random(),
0976デフォルトの名無しさん
2012/10/29(月) 10:52:05.84/map/city_highway/rmp200101/rmp200101.gif?dummy=毎回異なる値
そのマップの時間は
/_json/map_city_highway_2001.json?dummy=毎回異なる値
で返ってくる JSON の viewdata[2001]['updtime']
0977デフォルトの名無しさん
2012/10/29(月) 11:46:09.31ノンブロックの時、回線切断状態の時にsendしても
recvにエラーが返ってこないのは仕様ですか?の間違いです。
0978デフォルトの名無しさん
2012/10/29(月) 11:58:58.670979デフォルトの名無しさん
2012/10/29(月) 12:09:40.66普通に返ってくるだろ
まだ送信リトライしてる最中だろうから待てよ
0980デフォルトの名無しさん
2012/10/29(月) 12:12:32.37タイムアウトの見切りが異常に遅い糞プログラム書いてると
Windows Vista / 7 の exoplorer のようになります
0981デフォルトの名無しさん
2012/10/29(月) 13:02:09.11sendでさらに質問なのですが
複数あるクライアントの1つのソケットでsendがもう送れませんってエラーを返したら
他のクライアントにも送れないのでしょうか?
0982デフォルトの名無しさん
2012/10/29(月) 19:07:09.180983デフォルトの名無しさん
2012/10/30(火) 00:14:17.970984デフォルトの名無しさん
2012/10/30(火) 00:26:25.700985966
2012/10/30(火) 01:48:38.79すみません、さっぱりわかりません。
もう少し噛み砕いて教えていただけないでしょうか。
0986デフォルトの名無しさん
2012/10/30(火) 20:21:00.010987デフォルトの名無しさん
2012/10/31(水) 04:47:20.220988デフォルトの名無しさん
2012/10/31(水) 10:21:43.430989デフォルトの名無しさん
2012/10/31(水) 10:37:11.03うるさい黙れ
0990デフォルトの名無しさん
2012/10/31(水) 10:59:32.55謙遜してるだけだろ
あの説明をあれ以上噛み砕いたら何も残らんよ
0991デフォルトの名無しさん
2012/10/31(水) 11:05:49.330992デフォルトの名無しさん
2012/10/31(水) 12:23:35.570993デフォルトの名無しさん
2012/10/31(水) 12:24:24.490994デフォルトの名無しさん
2012/10/31(水) 15:42:28.300995デフォルトの名無しさん
2012/10/31(水) 15:49:30.250996デフォルトの名無しさん
2012/10/31(水) 16:18:45.500997デフォルトの名無しさん
2012/10/31(水) 16:37:10.540998デフォルトの名無しさん
2012/10/31(水) 16:39:52.060999デフォルトの名無しさん
2012/10/31(水) 17:05:40.08http://toro.2ch.net/test/read.cgi/tech/1351670708/
あとたのむ
1000デフォルトの名無しさん
2012/10/31(水) 18:24:48.59Windowsは出て行け。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。