ネットワークプログラミング相談室 Port27
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/12/25(土) 22:46:56Programming 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デフォルトの名無しさん
2010/12/25(土) 22:49:19Port26 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デフォルトの名無しさん
2010/12/25(土) 22:50:34UNIXネットワークプログラミング〈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デフォルトの名無しさん
2010/12/25(土) 22:51:22http://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デフォルトの名無しさん
2010/12/25(土) 22:52:09★規格
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デフォルトの名無しさん
2010/12/25(土) 22:53:03C10K ヘヴィーロードサーバ
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デフォルトの名無しさん
2010/12/25(土) 22:56:59ethereal - 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デフォルトの名無しさん
2010/12/26(日) 21:09:02これどういう意味?
WSAGetLastErrorって連続で呼び出したら、エラーコードの情報が
リセットされることってないよね?
ちなみに0が返ってくるのは、クライアント側のウィンドウを強制的に
終了させた時です。
そのときにWSAGETSELECTERRORでエラーになったので、
WSAGetLastErrorでエラーコード取得してみたら0だったんです。
0009デフォルトの名無しさん
2010/12/27(月) 22:20:54while(1) {
recv();
すこし重たい処理;
}
とするとrecvのデータが欠落(跳んでしまう)してしまうみたいなんですが、どう対処したらいんでしょうか
考えたのは
buff格納キューテーブル
thread1 {
while(1) {
recv();
buffをキューテーブルに格納
}
}
thread2{
while(1){
キューテーブルを参照、処理
対象データを取り除く
}
}
という素人案ですが、格納にどれくらい負荷が掛かるかも心配で、
何かいい案はないでしょうか?よろしくお願いします
0010デフォルトの名無しさん
2010/12/27(月) 22:29:010011デフォルトの名無しさん
2010/12/28(火) 12:52:52connect関数を使ったのですが必ずエラーになります。
WSAEWOULDBLOCKのエラーが返ってきます。
これは非同期処理においては当たり前のことなのでしょうか?
もしそうなら、SELECT等やタイムアウト時間を自分で設定するしかないのでしょうか?
これは結局同期処理になってる気がするのですが、CONNECTのときは仕方ないのでしょうか?
0012デフォルトの名無しさん
2010/12/28(火) 13:40:55本来はブロッキングする処理だけどノンブロッキングモードだからブロックせずに制御を返したよ(もちろんまだ完了してないよ)
っていう意味だから、あなたの望む結果じゃないのでしょうか?
それともノンブロッキングモードを誤解しているのでしょうか?
単に WSAAsyncSelect の FD_CONNECT の存在に気づいてないだけでしょうか?
0013デフォルトの名無しさん
2010/12/28(火) 13:49:00yes
0014デフォルトの名無しさん
2010/12/28(火) 13:52:43状況が分からないが
connect関数はコール後すぐに制御を返すが、実際にはまだ接続が完了していない。
その状態であることを知らせるのがWSAEWOULDBLOCKであり、
接続が完了したことを通知するのがFD_CONNECT。
connect関数コール後から接続完了(CONNECT)まで何も処理することがないなら一見するとブロッキングモードと同等になる。
しかし、それらの処理がメインスレッド上で行われている場合、ブロッキングするconnect関数コールは、他のWindowsメッセージの処理すらされなくなる。
0015デフォルトの名無しさん
2010/12/29(水) 03:14:11本当にありがとうございました。
FD_CONNECTを待とうと思ったんですが、
色々面倒だったので、select使うことにしました。
メインスレッドで実行しますが、接続時なんで多少ブロックされてもいいと判断しました。
0016デフォルトの名無しさん
2010/12/29(水) 09:01:44select()の待ち時間を0秒にしてもグッとブロックされたりしますか?
それともselect()を使う限りブロックしてしまうものなのでしょうか?
0017デフォルトの名無しさん
2010/12/31(金) 06:55:35送信側と受信側では同じサイズと間隔で下のように送受信しています
for(i=0;i<j;i++)
send(sock,&buf[l],k);
l=l+197;
Sleep(16);
1回のループに196byteなら問題なく送信できるのですが、197にするとエラー(WSAEFAULT)が
発生します。
これは秒間12KBの送受信になるのですが
同じ1台のパソコンでapacheを起動し画像を送受信すると重い画像でも表示できます
原因が思いつく方がいましたらご教授下さい
0018デフォルトの名無しさん
2010/12/31(金) 07:55:00お前のバグ。
WSAEFAULTは&buf[l]が有効なメモリアドレスをさしていない場合に出力される。
0019デフォルトの名無しさん
2010/12/31(金) 10:31:47002017
2010/12/31(金) 10:45:45原因はサーバ側でrecvのbufの使い方が間違ってました
recvは必ず指定したサイズを受信するわけではないので
不便だと思い下のような関数を作ってたのですが
おそらくはcのアドレスを直接渡したのが原因か
またはcのアドレスをサイズ分移動させた後のアドレスと
固定のサイズの4096が一致しないのが原因かと思います
正しい原因は調べてないですが、改善例のように修正したら
問題なく動作するようになりました。
int recv2(SOCKET s,char buf[],int len){
char *c=buf;
char wrk[4096];
while(1){
i=recv(s,c,4096,0);駄目な例
i=recv(s,wrk,4096,0);改善例
memcpy(c,wrk,i);改善例
if(i==SOCKET_ERROR){
shutdown(s,2);
closesocket(s);
return 0;
}
c=c+i;
}
0021デフォルトの名無しさん
2010/12/31(金) 11:00:02len も読み込んだバイト数分減らしたうえで recv に渡す大きさを len に
0022デフォルトの名無しさん
2010/12/31(金) 13:06:10送信側と受信側では同じサイズと間隔で送受信しています
送受信するサイズは4MBで、送信側は4MB送信できてますが
受信側は4MB受信しないで最後のrecvが0を返して終了します。
受信側でデータが無くなることは実際ありえるのでしょうか?
ちなみに毎回決まったサイズ受信して終了します。
0023デフォルトの名無しさん
2010/12/31(金) 13:30:44>送信側は4MB送信できてますが
ちゃんと戻り値を確認してのこと?
0025デフォルトの名無しさん
2010/12/31(金) 13:43:390026デフォルトの名無しさん
2010/12/31(金) 13:53:32普通どれくらい待つのでしょうか?
recvが最後に0を返しても送信サイズと受信サイズが一致しないとループし続けるように
コーディングしましたが、1分ぐらい延々とrecvが0を返し続けました。
002722
2010/12/31(金) 15:05:44途中のデータが欠損しているようです。
最後に特定の文字列を送信してそれは受信できていました。
002822
2010/12/31(金) 15:38:36最初のデータを送信する前に1秒Sleepすると問題なく送受信できました。
0029デフォルトの名無しさん
2010/12/31(金) 15:53:04なんか根本的に間違っていると思う。
やっているのは「非同期通信」なんだろ?
その場合、情報が常に必ず届くという保証がwinsock自体にない。
だから、届かなくてもいいような仕組みを持った通信経路を設計する。
これには色々ある。今の考え方では、すぐに行き詰まると思われ。
0031デフォルトの名無しさん
2010/12/31(金) 16:15:04同期通信なら、保証されるが、それはバグがない場合だ。
何かがバグってるな。
0032デフォルトの名無しさん
2010/12/31(金) 16:15:06>>1のリンクのサイトや本を見てからにしてください
0033デフォルトの名無しさん
2010/12/31(金) 20:02:480034デフォルトの名無しさん
2010/12/31(金) 20:32:45TCPなのかUDPなのか書け。
#UDPな悪寒。
0035デフォルトの名無しさん
2011/01/01(土) 09:45:33メッセージ境界が保証されていないTCPで、メッセージ境界が保存されて
いると仮定してプログラミングしてるんだろ。
0036デフォルトの名無しさん
2011/01/01(土) 13:50:32ただSOCKET_ERRORかどうかしか見てなくて、実際に受信バイト数までは確認していないってことか?
0037デフォルトの名無しさん
2011/01/01(土) 14:31:53if (recv(sock, buff, BUFF_SIZE, 0) == -1) {
/* エラー処理 */
}
/* BUFF_SIZE 受信したつもりになりきって buff の処理 */
0039デフォルトの名無しさん
2011/01/01(土) 17:26:17sendの戻り値でどうやって受信バイト数を取得すんだよ。
0040デフォルトの名無しさん
2011/01/01(土) 17:27:39で、
n=send(sock,buff, BUFF_SIZE, 0);
n=recv(sock, buff, BUFF_SIZE, 0);
いずれもBUFF_SIZEまで送信受信できているとは限らない。
n がSOCKET_ERRORではない場合、n は実際に送信受信したバイト数になっているが、
その n の値もしっかり反映しているの?
それと、SOCKET_ERROR の場合は終了しているようなので関係ないが
送信受信において SOCKET_ERRORが戻ってきた場合のWSAGetLastError() の戻り値も確認する。
WSAEWOULDBLOCK が戻ってきてれば終了するのではなく、またループに戻るようにする。
0041デフォルトの名無しさん
2011/01/01(土) 18:25:38sendとrecvの戻り値は確認しています。
戻り値が0より大きい場合にその戻り値をlenとしてmemcpyするように
しています。
WSAEWOULDBLOCKについては知りませんでした。
ご指摘ありがとうございます。
0042デフォルトの名無しさん
2011/01/03(月) 08:57:41データを適当なバイト数送るとします。
受信側がそのうち200バイトしか受信できなかったとします。
受信できるまでrecvループしようとしましたが、その間はそこで処理が
止まってしまうので、ウィンドウが固まってしまいます。
なので、一度だけ受信した後、一旦受信処理ルーチンを抜け、
また再度FD_READメッセージを待ちます。
そこで受信できなかった分を受信し、先ほど受信したデータの後ろにMEMCPYでデータを
くっつけようとします
そのためには先ほど受信したデータのバイト数を記録しておく必要があると思います。
さらに、相手は何バイトデータを送ってくるかわかりません。
この場合、まずデータが何バイト送ってきたのかを記録しとくところまではできますが、
何バイトまで受信すればよいのかわかりません。
単純にrecvがsocket_errorを返し、WSAEWOULDBLOCKを返したときが受信データは全て
受信し終わったと判断してよいでしょうか。
0043デフォルトの名無しさん
2011/01/03(月) 09:08:10それをヘッダと言うことが多い
どういう形の書式にするかとかを決めるのがぷろところろろr
0044デフォルトの名無しさん
2011/01/03(月) 09:13:49その分だけ受信するってことですか。
いろんなプロトコルがありますが、データサイズだけわかればなんとかなりそうなので、
自分独自のヘッダでも構わないんですよね?
0045デフォルトの名無しさん
2011/01/03(月) 09:32:440046デフォルトの名無しさん
2011/01/03(月) 09:41:100047デフォルトの名無しさん
2011/01/03(月) 10:19:17ストリーム故、同じ思考にいきつくと思うが (fgets はそうでもないか)
0048デフォルトの名無しさん
2011/01/03(月) 12:02:21データ長があらかじめ判らないときには
データ末尾に終了符号をつけることもある
0049デフォルトの名無しさん
2011/01/03(月) 12:03:400050デフォルトの名無しさん
2011/01/03(月) 12:05:410051デフォルトの名無しさん
2011/01/03(月) 12:26:400052デフォルトの名無しさん
2011/01/03(月) 17:33:340053デフォルトの名無しさん
2011/01/03(月) 22:22:320054デフォルトの名無しさん
2011/01/03(月) 23:24:570055デフォルトの名無しさん
2011/01/04(火) 06:45:51ダサい設計だけど、HTTP1.0のようにデータの最後まで送ったら
ソケットを閉じるという方法もある。
0056デフォルトの名無しさん
2011/01/04(火) 07:41:370057デフォルトの名無しさん
2011/01/04(火) 18:57:17亀レスだが、非同期通信に到達性を保証する事は出来ないと思うのだが。
その点について俺が間違っているの教えてくれ。
まず第一に、非同期通信経路上位でのプロトコルによる同期は除いてくれ。
単純に非同期通信経路で、受信側がいつまでたってもデーターはこなかったとしよう。
その場合いつかはタイムアイトになり情報が所か無かったとしよう。
送信側は送信しているので、それが届いたかどうかは感知できない。
この場合どう考えても、情報の到達性を保証する事は出来ない。
ではないのか?
0058デフォルトの名無しさん
2011/01/04(火) 20:24:46何を勘違いしてるのか分からないけど、あの文脈では同期/非同期
はAPIのモードの話で
同期:ブロッキング
非同期:ノン・ブロッキング
でしょ?
それともブロッキングのsend成功=到達とでも思ってるとか?
0059デフォルトの名無しさん
2011/01/04(火) 20:39:24それを非同期の代名詞にして話す事自体がっかりだよ。あきれた
0060デフォルトの名無しさん
2011/01/04(火) 20:48:37なるのかな?
昔の非同期モデム使ったPPP回線でも(TCPの意味での)到達性は保証
されているのだが。
0061デフォルトの名無しさん
2011/01/04(火) 20:52:45表現するのはごく普通に行われているよ。
なにせWinSockのAPI名がWSAAsyncSelectとかだし。
0062デフォルトの名無しさん
2011/01/04(火) 20:56:59それMSの表現が馬鹿なだけw
だけど、 TCP 使って非同期な通信系ってのはどうゆう意味か説明してほしいな >59
0063デフォルトの名無しさん
2011/01/04(火) 23:11:56非同期型API
がごっちゃになってる?
0064デフォルトの名無しさん
2011/01/05(水) 00:25:14まあ、あまり大声で言わない方がいいと思うがwww。
それに、がっかりしたのも事実だし。言葉の定義はそれでもいいんじゃい。
0065デフォルトの名無しさん
2011/01/05(水) 00:32:52通信相手との同期を取らない点では一種の非同期通信といえるが、いわゆる非同期通信が
単に通信相手からの返事を待たない(同期を取らない)というニュアンスであるのに対し、
ノンブロッキング通信では主に、通信処理の完了を待つことによって他の処理の進行を妨げな
いことを表わしている。
006662
2011/01/05(水) 00:54:39TCP ってのは、 end-end 閉じてないとだめなプロトコルなのね
で、少なくとも、
syn -> syn/ack -> ack
で、コネクションつくって、 こんなやりとりするでしょ?
[data]/ack <-> [data]/ack
この状態が、成立してる限りにおいては同期処理系なのよ
つか、state-fullなプロトコルってのは、どこかで同期する必要があるのは当たり前
もっと上のところでやるのはあんたらの勝手だけど、どの部分指して言ってるの?
ってのが 62 の主旨
0067デフォルトの名無しさん
2011/01/05(水) 01:37:50TCPの実際の動作がわかってない感じだから、どう言っていいのやら...
0068デフォルトの名無しさん
2011/01/05(水) 09:43:14たとえば、HTTP/1.1は非同期。
レスポンスが返ってくる前に、リクエストを投げることができる。非同期だろ。
発端の>>22の「非同期」はWinsockの非同期系APIを指しているのだろうけど。
0069デフォルトの名無しさん
2011/01/05(水) 14:02:26その説明書いた人良く分かってない感じ。
socket APIのブロッキングモードのsendは送信バッファに空きが
出来れば復帰するのであって、通信処理が完了するかどうかとは
関係ない。
0070デフォルトの名無しさん
2011/01/05(水) 14:06:08非同期通信をして、文字だけのやりとりはできるようになりました。
ですが、ユーザごとに名前をつけれてません。
名前付けたいんですが、名前のデータは文字のバッファに含めて送信すべきでしょうか?
それとも名前は名前だけで送ったあとに、後から文字のバッファを送るほうが都合がいいでしょうか?
今はクライアント→サーバにメッセージを送ったら、
サーバから、サーバに接続しているクライアント全てにそのメッセージを送信し、
リアルタイムチャットを作ろうとしているところです。
0071デフォルトの名無しさん
2011/01/05(水) 14:42:280072デフォルトの名無しさん
2011/01/05(水) 14:54:11じゃ、そこまできちっとしたら、ブロッキングモードの通信も非同期だなwwwww
腹抱えて笑うぜwwwwwwwwwwwwwwwww
0073デフォルトの名無しさん
2011/01/05(水) 15:43:18非同期で笑え
0074デフォルトの名無しさん
2011/01/06(木) 14:04:05addr は INET_ANY で create & bind -- (*)
WSAAsyncSelect FD_READ でパケ待ち
パケ到着なFD_READをきっかけに recv & 内部処理開始
内部処理後の応答を パケ送信したピアへ戻したい...
(*)のソケットに write ではうまくいかず
0075デフォルトの名無しさん
2011/01/06(木) 15:08:25recvfromとsendtoを使え
0076デフォルトの名無しさん
2011/01/06(木) 15:16:45recvfrom の末尾で ピアのアドレス受けとれるし…
0077デフォルトの名無しさん
2011/01/09(日) 06:03:35>>58 >>62 どっちとも俺の解釈と違う(と思う)。
まだデータが到着してないときにrecvした場合、
データが来るまで関数が返ってこないのがブロッキング。(1)
関数が返ってきて「まだない」と言われるのがノンブロッキング。(2)
データが到着したことがわかった後で、カーネルに「俺のバッファにコピーしる」
と要求したら、コピー完了後に返ってくるのが同期。(3)
コピー完了前に帰ってきて、コピー完了が別に通知されるのが非同期。(4)
と思ってる。
unixしか知らないひとがよく非同期と誤解してるのが(2)
MSが言ってる非同期は(4)
でないかな?
0078デフォルトの名無しさん
2011/01/09(日) 06:09:27用語の使い方がずれてんだよ、WindowsとUnixは。
今迄画像処理関連のプログラムばかりやってきて
4月からネットワークプログラムの仕事になりそうなんで
異動前に勉強したいんだが
ネットワークプログラムする以前にネットワークに関する知識(スイッチングハブの知識、ネットワークの構成・設計、セキュリティetc)が無い
何かオススメの本あったら教えて
0080デフォルトの名無しさん
2011/01/09(日) 06:16:21recv, send は「非同期I/O」とは呼ばない。
「非同期I/O」は
aio_read, aio_write のこと。
aio_readなんて誰も使ってないだろうけど、
Windowsで言ってる非同期はまさにaio_xxxなんだぜ
0081デフォルトの名無しさん
2011/01/09(日) 08:27:05わかた
ごちそうさま
0082デフォルトの名無しさん
2011/01/09(日) 09:44:33良レスだが、自分の解釈とも異なっている。(もちろん>>58,62とも違う)
>>77の例であれば、どちらも同期(という総称的な概念を指す用語)の一種であり、
それらの違いは「データ到着」と「コピー完了」というイベント種別の違いでしかない、いうのが自分の解釈。
ブロッキングは同期(という目的)を実現する手段であり、両者を同列に比較/分類する事は無意味であると思う。
まとめると、>>77の(1)と(2)は同じだが、(3)はブロッキングモードのrecvであり、(4)はノンブロッキングモードの
非同期recvであり、さらに(3')としてノンブロッキングモードの同期recvが加わる。
Unixであれば、read/write/recv/sendは、どれもブロッキングモード/ノンブロッキングモードのどちらでも
操作を実行できる。ただしノンブロッキングモードの場合、データ未着/コピー未完であればアプリ側で定期的に
リトライしなければならないという(性能上の)問題があるため、必然的にブロッキングモードを使わざるをえなかった。
この課題を解決する為に考案(追加)されたのが、aio_read/aio_writeと呼ばれる、いわゆるAIO(非同期I/O)という仕掛け。
ちなみにLinuxのAIO実装の場合、ソケットに対するAIOはサポートされていないから、aio_recv/aio_sendという
システムコールは(まだ)存在していない(はず....)。
0083デフォルトの名無しさん
2011/01/09(日) 11:11:55お前が正しい
正義はお前にある
0084デフォルトの名無しさん
2011/01/09(日) 13:05:50つ ttp://www.amazon.co.jp/dp/4274066770
0085デフォルトの名無しさん
2011/01/09(日) 13:49:290086デフォルトの名無しさん
2011/01/09(日) 18:03:43だな。
そのノンブロッキングの同期が一番おいしいのに
そこを飛び越えてしまったのがWinsock2
0087デフォルトの名無しさん
2011/01/09(日) 23:02:250088デフォルトの名無しさん
2011/01/11(火) 00:22:220089デフォルトの名無しさん
2011/01/11(火) 06:59:470090デフォルトの名無しさん
2011/01/11(火) 16:53:410091デフォルトの名無しさん
2011/01/11(火) 17:13:520092デフォルトの名無しさん
2011/01/11(火) 17:35:060093デフォルトの名無しさん
2011/01/11(火) 17:51:000095デフォルトの名無しさん
2011/01/15(土) 01:41:47なんかITProの記事では、v4アドレスが2011年2月に
枯れるとか言ってるんだがホント?
0096デフォルトの名無しさん
2011/01/15(土) 04:46:13それまでのペースを維持すれば、当然3月くらいまでに無くなるよ。
0097デフォルトの名無しさん
2011/01/15(土) 04:57:00http://www.geekpage.jp/blog/?id=2010/10/18/1
http://journal.mycom.co.jp/news/2010/11/16/074/index.html
アジア地域だと、本当に再来年あたりから
新規v4は無くなる可能性があるみたいね。
v6Readyはもう必須かもしれない。
0098デフォルトの名無しさん
2011/01/18(火) 14:47:48Accept-Encoding: gzip
Range: bytes=41318-
として、順次差分をダウンロードしたいのですが
gzip圧縮された差分がgzipのヘッダー情報を含んでいるらしく
レスポンスのContent-Lengthと食い違いが生じてしまいます
この場合の定番の書き方はどうなっているのでしょうか?
それとも差分ダウンロードと圧縮は同時に使用しないものなのでしょうか?
0099デフォルトの名無しさん
2011/01/18(火) 14:53:31> レスポンスのContent-Lengthと食い違いが生じてしまいます
ダウンロードした圧縮差分を順次つなげていっても
元のgzipファイルにならないという意味です。念のため
0100デフォルトの名無しさん
2011/01/18(火) 15:05:42馬から落馬しそうですね。
0101デフォルトの名無しさん
2011/01/18(火) 15:12:410102デフォルトの名無しさん
2011/01/18(火) 15:14:441レスポンス→unzip→マージ じゃないのかなぁ…
0103デフォルトの名無しさん
2011/01/18(火) 15:45:14流れてきてるのは
リソース本体 - 部分抜き出し - CTE: gzip 処理(こいつの大きさが CL) - ヘッダ追加 の順だった
プロトコルとして正しいのはどっちかは知らない
0104デフォルトの名無しさん
2011/01/18(火) 16:59:52やりたいことは2chのスレッドのダウンロードです
最初はAccept-Encoding: gzip、Rangeでダウンロードして展開したファイルのサイズを渡していたのですが、
416 Requested Range Not Satisfiableが着てしまってダメでした。
gzipの位置ではないかと推測して、
今度はダウンロードしたgzipのサイズを渡して、差分のダウンロード自体は成功したのですが、
展開すると、一番最初にダウンロードしたブロックしか展開されません。
ファイルの残りの部分は無視されてしまいます。
ここまでやって混乱してきたのでご相談に上がった次第です
よろしくお願いいたします
0105デフォルトの名無しさん
2011/01/18(火) 18:39:01rangeの書き方あってる?
結合してないよね?
0106デフォルトの名無しさん
2011/01/18(火) 19:15:36Rangeはこんな感じです
Range: bytes=104672-
gzipファイルが15kで展開したファイルが10kになっていたり、
差分を元ファイルに結合していっても最初の10k分しか展開されません
Rangeには保存したgzipファイルのファイルサイズを渡しているのですが・・・
0107デフォルトの名無しさん
2011/01/18(火) 20:13:03一度展開したもの同士を結合して再圧縮する事はできます
1、まずgzip ,no-rangeでリクエスト
gzipのサイズをメモ
gzipを展開して処理
2、gzip ,range:gzipのサイズ-でリクエスト(304以外なら)
gzipのサイズをメモ、1のgzipサイズを足す
gzipを展開して処理
3、gzip range: gzipのサイズ(1+2)でリクエスト(304以外なら)
以下略
0108デフォルトの名無しさん
2011/01/19(水) 04:53:42451. デフォルトの名無しさん [sage] 2006/05/26(金) 19:44:35
Content-RangeとAccept-Encoding:gzipを同時に指定すると、
httpの意味上からは、「gzip済みのdatファイル」の途中から
しか送ってくれないので役に立たない。
0109デフォルトの名無しさん
2011/01/19(水) 10:01:580110デフォルトの名無しさん
2011/01/19(水) 21:21:20物理的に圧縮アルゴリズムから全体圧縮済みサイズと一部圧縮が、非圧縮時の比例と一致するとは限らないな
0111デフォルトの名無しさん
2011/01/20(木) 18:04:09>>107,108
いろいろやってみましたが、
Content-RangeとAccept-Encoding:gzipは共存できないみたいです
初回だけgipにすることにしました
>>109
ちょっと見てみましたが難しくてよくわかりませんでした
余裕ができたら調べてみようと思います
0112デフォルトの名無しさん
2011/02/02(水) 02:25:46http://headlines.yahoo.co.jp/hl?a=20110201-00000005-rbb-sci
IANAが最後の割り当て終了。
あとは5ブロックを配布するのみ。
各地域の再分配が終わったら
IPv4の割り当ては事実上終了。
あとは再利用のみ。
0113デフォルトの名無しさん
2011/02/02(水) 07:25:45補足。
本日、IANAから共同発表の記者会見予定。
http://itpro.nikkeibp.co.jp/article/NEWS/20110201/356717/
0114デフォルトの名無しさん
2011/02/03(木) 01:02:290115デフォルトの名無しさん
2011/02/03(木) 21:33:02すると、今まで出来ていた、WinSockの関数では、接続できなくなりました。
どのように回避すればいいのでしょうか?
お知恵を貸してください。
0116デフォルトの名無しさん
2011/02/03(木) 21:39:530117デフォルトの名無しさん
2011/02/04(金) 19:32:34回答ありがとうございます。
アクセスポイントモードってプログラミングで出来ます?
ググってみると、何か・・・違うことのような気がして・・・
0118デフォルトの名無しさん
2011/02/04(金) 23:06:24ちゃんと判断するには情報が足りない
ネットワークの構成図を書いて、どこからどこへ接続したいのかとかを説明するべき
0119デフォルトの名無しさん
2011/02/05(土) 23:05:07ネットワーク構造図といわれましても・・・
親機1台があり、それをハブ・・・でいいのかな?を使って、接続できる部分を増やして、
有線で片方のパソコンを繋ぎ、さらに無線ルーターを繋いで、もう一台の方に繋いでいます。
作りたいのは、簡単なチャットプログラムで、
他のPC(ネットワーク上)と、テキストのやり取りをしたいと思っています。
独学ではじめ、ネットワークを使ったプログラムの練習をしています。
0120デフォルトの名無しさん
2011/02/06(日) 00:34:03何処に無線ルーターをつないで、もう一台に繋いだんだ?
もう一台ってPCか?
有線で繋いだのか無線で繋いだのか?
無線に決まってるとか言うなよ。どう繋いだかはお前にしか判らないんだよ。
親機っていうのも無線ルーターだよな?それに無線で繋いだのかもしれないしな。
文章でも良いから曖昧さのない様に説明しろ。
0121デフォルトの名無しさん
2011/02/06(日) 01:03:450122デフォルトの名無しさん
2011/02/06(日) 13:20:34文章より図の方が状況がわかりやすいかなと思ったから
俺は115を読んでこんな感じだろうかと勝手に想像したので
http://www.dotup.org/uploda/www.dotup.org1323763.jpg
子ルータをAPモードにして全員一律に親ルータからアドレスもらってひとつのサブネットにまとめれば解決するんじゃないかなと考えた
まぁつまりプログラミングの問題じゃなくてネットワーク環境設定の問題だろうと思ってるわけだけど
pingは通る?
0123デフォルトの名無しさん
2011/02/06(日) 21:05:03親機は有線、子機は無線です。
繋ぐのはPCです。
>>122
正確な図、ありがとうございます。
そのとおりです。
>子ルータをAPモード
この時点で詰みそうですが、ググリながらやってみようかと思います。
まず、APモードとは何かから探さなければ・・・
>pingは通る?
192.168〜〜のデフォルトゲートウェイに、pingを試したところ、
ちゃんと通ってるようです。
それと、ipconfig /allで確認したところ、
192.〜.1と192.〜.2しかありませんでした。
0124デフォルトの名無しさん
2011/02/06(日) 21:28:071. 親機ルーターは192.168.2.xへの宛先を持つパケットが来たら
192.168.1.3に投げなければいけないことを知っている?
2. 子機ルータのデフォルトルートは192.168.1.1になってる?
3. PC1のデフォルトルートは192.168.1.1になってる?
4. PC2のデフォルトルートは192.168.2.1になってる?
0125デフォルトの名無しさん
2011/02/07(月) 00:12:550126デフォルトの名無しさん
2011/02/07(月) 20:14:031:知りませんでした。
2:なっています。
3:なっています。
4:なっています。
>>125
それもそうですね・・・
読み直してみます。
0127デフォルトの名無しさん
2011/02/08(火) 21:44:012文字のコロン「::」もIPV6のアドレスとして有効な表現なの?
0128デフォルトの名無しさん
2011/02/08(火) 21:48:35それは 0 を省略した形
〜:0000:〜 なら 〜::〜 にできる
0129デフォルトの名無しさん
2011/02/08(火) 21:51:17あっ失礼。2回以上の連続した0ね。
0130127
2011/02/08(火) 22:24:03疑問なのは数字なんか付かない、まさにコロン2つ「だけ」の場合
ABNF抜粋すると問題の箇所は
ipv6address =
| //色々なケース
| //色々なケース
| [*6(h16":")h16]"::"
となってて、[]は省略可能なんで
他に全く数字の付かない「::」のみのケースがあるのよ
0131127
2011/02/08(火) 22:25:400133デフォルトの名無しさん
2011/02/08(火) 23:16:560134デフォルトの名無しさん
2011/02/09(水) 01:46:28こうやってるのに
ttp://dl8.getuploader.com/g/6|akahell/594/response.png
こう返ってくるんですが
何で差分だけの取得が出来ず、かつレス番1が壊れてしまうのでしょうか
0135デフォルトの名無しさん
2011/02/09(水) 01:51:18差分の取得のはずがうまく出来ず、こうなります
返ってきたdatを"\n"で区切ってString[]に入れたものです
デバッガで見る限りではレンジやモディファイは正しいと思われる値にはなっています・・・
0136デフォルトの名無しさん
2011/02/09(水) 02:36:550137デフォルトの名無しさん
2011/02/18(金) 00:05:51何故なのでしょうか?
0138デフォルトの名無しさん
2011/02/20(日) 10:21:33.25黙って無視すればいい。
0139137
2011/02/20(日) 22:59:15.93どういうことなのでしょうか?
0140デフォルトの名無しさん
2011/03/05(土) 06:38:28.58よくソケットからと言われますが、具体的にどういう処理から始めるのでしょう。
0141デフォルトの名無しさん
2011/03/05(土) 06:41:15.990142デフォルトの名無しさん
2011/03/05(土) 12:11:24.46> ネットワークプログラミング初心者なのですが、何から始めればよいでしょうか。
お約束だが、「やりたいことを見つける」ことからかな。
0143デフォルトの名無しさん
2011/03/05(土) 12:36:41.44バグだろ。
0144デフォルトの名無しさん
2011/03/06(日) 07:52:23.37socket関数でINVALID_SOCKETエラーが発生したそうです。
XP SP3では一度も発生したことがないのですが、原因が分かる方が
いましたら、ご教授下さい。
0145デフォルトの名無しさん
2011/03/06(日) 09:48:50.39バグだろ。
0146デフォルトの名無しさん
2011/03/06(日) 09:57:00.20・ある利用者の環境ってのがどういう環境かわからない
0147デフォルトの名無しさん
2011/03/06(日) 10:14:44.28どこの馬の骨かわからん奴を弟子に取る気はないが、俺だったら、
WSAGetLastErrorを仕込んで置く事を忘れなかったな。
0148デフォルトの名無しさん
2011/03/06(日) 12:27:16.710149デフォルトの名無しさん
2011/03/06(日) 13:12:00.11原因はそんな情報で分かる人間が居ると思うような奴が
作ったプログラムだから
0150デフォルトの名無しさん
2011/03/07(月) 09:51:41.74ハゲだろ
0151デフォルトの名無しさん
2011/03/09(水) 23:43:18.690152デフォルトの名無しさん
2011/03/10(木) 00:24:52.120153デフォルトの名無しさん
2011/03/10(木) 00:34:23.560154デフォルトの名無しさん
2011/03/10(木) 05:42:54.02必要なら買うなり、OSS使うなりしなよ。
ゼロから作ってデバッグするのは大変だよ。
0155デフォルトの名無しさん
2011/03/10(木) 09:21:40.36どっかのPICのソース流用しようと思ったけど
プロトコル完全実装じゃなくて
かなり適当に必要最小限しか作ってなくて
結局参考にならなかったな
0156デフォルトの名無しさん
2011/03/10(木) 22:42:00.33なんか良いOSSのライブラリ教えて
0157デフォルトの名無しさん
2011/03/11(金) 00:12:21.920158デフォルトの名無しさん
2011/03/12(土) 20:28:08.90XP環境では問題ないのですが、Windows Vistaで
s=socket(AF_INET, SOCK_RAW, IPPROTO_IP);
とするとエラーになります(INVALID_SOCKETを返す)。
目的はWindows7からチカチカ点滅しなくなった
タスクトレイのネットワークアイコン(通信の有無を示す)の自作です。
(有無だけに注目して内容を見ないパケットモニタのようなものです。)
ネット上で調べた結果、Vistaからは上のことは無理で
それをやりたければWFP(Windows Filtering Platform)とやらを
使うしかない、という答えに現時点では行き着いています。
実際、1.うん、WFPを使うしかないね。なのでしょうか。
それとも2.いや、他にやりようがあるよ。なのでしょうか。
さらに質問すると、Windows7をご利用されている方は
タスクトレイのネットワークアイコンを見ても通信の有無が
わからないことについて、どのように解決(もしくは許容)されていますか?
0159デフォルトの名無しさん
2011/03/17(木) 14:18:43.99なにをいじるんだっけか
0160デフォルトの名無しさん
2011/03/17(木) 14:18:52.600161デフォルトの名無しさん
2011/03/17(木) 17:32:18.42*BSD なら sysctl で設定
Linux なら /proc で設定
Windows はしらん
その他の Unix なら man よめ
0162デフォルトの名無しさん
2011/03/18(金) 14:08:08.96setsockoptで制御したいんです。
0163デフォルトの名無しさん
2011/03/18(金) 17:12:57.19ワロタ、setsockoptで言っているのに
いつもトンチンカンなことをして周りに迷惑かけてるんじゃないか
0164デフォルトの名無しさん
2011/03/19(土) 14:50:47.28sockopt インターフェースは, カーネルのソース読むとないな, *BSDとLinux
0165デフォルトの名無しさん
2011/03/19(土) 15:02:58.740166デフォルトの名無しさん
2011/03/19(土) 15:22:20.240167デフォルトの名無しさん
2011/03/22(火) 11:19:33.73Linuxだけどさ、どこで設定するのよ
そんな設定箇所無いよ
憶測でモノを言っているの?
0168デフォルトの名無しさん
2011/03/22(火) 17:14:46.99もしスレチでしたら誘導をお願いします。
以下のようなことをしたいとお勉強中です。
・snmp を使用してネットワーク上の機器の状態を管理する
・状態の取得には snmp の trap を使用する
・ネットワーク上には snmp のバージョン v1 と v2c の機器が存在していて両方に対応したい
・当人はソケットを使用したプログラムは経験があるものの、ネットワークそのものは初心者
で、質問です。
・v1 trap の PDU には Enterprise などがありますが、v2c には存在しません。
これは v2c では取得できないということでしょうか。データ部に存在するのでしょうか。
※できれば v1 と v2c の実処理を行なう箇所を同じ処理で統一したいため同じデータを取得できたら便利だな、と
・v2c trap の PDU は v2 のものと構成が同じであり、
Comunity の部分だけが v1 と同等であるとの認識は正しいでしょうか
よろしくお願いします。
0169デフォルトの名無しさん
2011/03/22(火) 23:24:39.15api制限で150回までに制限されてしまうのは仕方ないのでしょうか?
でもtweenとかは常に最新の状態に更新出来ている気がするのですが。。
あれはどうやっているのでしょうか?
0170デフォルトの名無しさん
2011/03/23(水) 10:49:22.40APIを使わなくても見れる情報なら、APIを使わなければよい
0171デフォルトの名無しさん
2011/03/24(木) 00:32:35.57>api制限で150回までに制限されてしまうのは仕方ないのでしょうか?
いいえ。
個別に交渉すれば、割と簡単に制限を緩めてもらえるみたいです。
0172デフォルトの名無しさん
2011/03/24(木) 12:15:07.27API使わなくても見れる情報というのは例えばどんなものでしょう?
個別に交渉するということはどういうことですか?
0173デフォルトの名無しさん
2011/03/24(木) 13:41:55.22ブラウザ使ってツイッタ見た事ないのか?
html 取得すればよい。鯖負荷は・・・・。
0174デフォルトの名無しさん
2011/03/24(木) 19:32:59.58鯖負荷ってどれぐらいのアクセス数なら大丈夫でしょうか?
一秒1アクセスはやっぱきついですかね?
0175デフォルトの名無しさん
2011/03/24(木) 20:34:01.37WEBアクセスでも認証なしで同一IPから何度もアクセスしてるとAPIと同じようにブロックされるよ
0176デフォルトの名無しさん
2011/03/24(木) 22:29:35.140177デフォルトの名無しさん
2011/03/25(金) 11:38:58.02ありがとうございました・・
0178デフォルトの名無しさん
2011/03/25(金) 17:59:51.89前例がある事は容赦なく捕まえるぞ警察は
0179デフォルトの名無しさん
2011/03/25(金) 20:48:52.41無罪になったんだから別によくね?
拘留期間中の分お金もらえるし
0180デフォルトの名無しさん
2011/03/25(金) 21:19:42.910181デフォルトの名無しさん
2011/03/25(金) 21:45:30.860182デフォルトの名無しさん
2011/03/26(土) 23:32:01.240183デフォルトの名無しさん
2011/03/26(土) 23:32:10.35前例有るのかw
0184デフォルトの名無しさん
2011/03/26(土) 23:36:53.110185デフォルトの名無しさん
2011/03/26(土) 23:41:36.560186デフォルトの名無しさん
2011/03/26(土) 23:43:10.390187デフォルトの名無しさん
2011/03/26(土) 23:48:55.161.ソケットを3つ開き、selectで待ちます。
(a_fd、b_fd、c_fdとする。)
2.受信したデータはソケットごとに保持。
(a_fdで"HELLO"、b_fdで"SeeYou"、c_fdで"Hi"というデータを受信したら a_fd:HELLO b_fd:SeeYou c_fd:Hiという風に )
3.新しいデータを受信したら上書きする
(a_fdで"Bye"を受信したらHELLOを上書き)
4.各fdから1分間何も受信しなければそのfdのデータを削除する。
(a_fdから1分間受信しなければa_fd: b_fd: SeeYou c_fd:Hiとなる)
1〜3までは作成できますが、4のアルゴリズムが分かりません。
selectのタイムアウトを1分にするのかと思いましたが、それだと各fdではなく全てのfdから1分間受信しなかった場合しか
判断できないですよね?
どのようにすれば各fdの時間を判断できますか?
よろしくお願いします。
0188デフォルトの名無しさん
2011/03/27(日) 01:04:06.590189デフォルトの名無しさん
2011/03/27(日) 02:00:52.73なるほど〜
ありがとうございます。
0190デフォルトの名無しさん
2011/03/27(日) 13:56:27.64パケットがどのアプリケーション宛に送られて来たものなのかを
特定する方法はあるのでしょうか?
よろしくお願いします。
0191デフォルトの名無しさん
2011/03/27(日) 14:33:41.81「netstat -b」で「リッスン ポートの作成に使われた実行ファイルを表示」できる。
(手元のWindows 7で確認した)
これをパケットと付き合わせればよいかと。
0192デフォルトの名無しさん
2011/03/27(日) 14:56:25.99こちらはXPですがその方法でやれそうです。
ありがとうございます。
0193デフォルトの名無しさん
2011/03/27(日) 15:35:19.92これ/etc/services参照してるだけだろw
0194デフォルトの名無しさん
2011/03/27(日) 16:22:43.45いいこと聞いたありがとう
0195デフォルトの名無しさん
2011/03/27(日) 16:48:45.76そもそも
「v1 と v2c の実処理を行なう箇所を同じ処理で統一したい」を
「同じデータを取得」で実現するなら最小公倍数の項目で
やるしかないからこの場合は無理。だいいち
Enterprise=ベンダが勝手に定義して勝手に使うところだろ。
SNMPバージョンどころかベンダとか、最悪機器ごとに
処理変わるじゃん。アホか。
SNMPには落とし穴がいっぱいあるから
(例えば32ビット数は5バイトで表現されるから気をつけろ)
目的や対象機器を具体的にせまく絞って始めないと苦労するぞ。
大した目的がないならトライ&エラーで勝手にガンガレ
0196デフォルトの名無しさん
2011/03/27(日) 20:32:46.13ソケット、プロセス間通信でポインタを含む構造体を送受信したいのですが、どうやればいいですか?
ポインタをそのまま送るのはNGだと聞きましたが。。。
0197デフォルトの名無しさん
2011/03/27(日) 20:57:24.98受け取り側はftpサーバからダウンロードしたほうが簡単だと思う
0198デフォルトの名無しさん
2011/03/27(日) 21:01:46.73> ポインタをそのまま送るのはNGだと聞きましたが。。。
同じアドレス空間で動いていないから、ポインターのさす先を別途送りつけるしかない
その先にポインターがあったらさらにもう一回… … …
0199196
2011/03/27(日) 21:06:19.64ソケットを使うことが条件なので。。。
>>198
構造体をポインタがない構造体にしてから送るしかないですよね。。。
ありがとうございました。
0201デフォルトの名無しさん
2011/03/27(日) 21:29:01.451件送るたびに次がまだあるか無いかを示すフラグを送るか
0203デフォルトの名無しさん
2011/03/27(日) 21:31:14.54(まだわかんねえかな〜)
0204デフォルトの名無しさん
2011/03/27(日) 21:33:28.760206デフォルトの名無しさん
2011/03/28(月) 06:35:07.15ftpは通信規約
0207デフォルトの名無しさん
2011/03/28(月) 14:06:31.93レス、hx
言われることはもっともなんだけれど、そういう風に要求されてしまったので可能なのだろうかと調べていたところで。
数値の扱いなども言われるとおりでちょっと苦戦していました。
※その後、もともとのプログラムが v2c に対応していないことが判明しました。w
もうちょっとがんばってみるです。
ありがとうございました。
0208デフォルトの名無しさん
2011/03/28(月) 17:37:16.69結構難しいよ。ただただ面倒だし。
出回っているライブラリーのソース読めば
その辺のことは大体分かると思う。
0209デフォルトの名無しさん
2011/03/29(火) 22:10:44.64ゆっくりでよければ教えるよ
問題なのは、最近のOSではメモリが確保される具体アドレスは
マシンごとに違うから、単にメモリアドレス値を渡しても
普通うまくいかんっつーことだな。
レアなやりかたで、メモリが確保されるアドレスをそろえてしまう
ってのもある。
オイラが好きなのは、データパケットの先頭をゼロとして
ポインタ値をオフセット値に変換して通信、
受信側はオフセットをポインタ値に戻す、ってやつ。
"シリアライズ"で検索するといろいろでるよ。
あと、.Net等で同一マシン内の違う言語で構造体データ渡すのにも
似たテクを使うんだが、それは検索キーワード"マーシャリング"だ
0210デフォルトの名無しさん
2011/03/29(火) 22:37:03.78どうやって?
相手のマシンが同じアーキテクチャである保証はない
ましてや同じOSである保証はさらにない
> データパケットの先頭をゼロとして
> ポインタ値をオフセット値に変換して通信、
同一オブジェクトへのオフセットは, 当然, 考慮されてるんだよな
こっちでは a -> x, b -> x
あっちでは a -> x, b -> y
だったら洒落にならないんだが…
0211デフォルトの名無しさん
2011/03/29(火) 22:51:14.57(1)マシンが別ならメモリアドレス値は別になるから
アドレス値渡しても意味無し。
(2)マシンAでポインタを含むデータ構造を持ってて、
それをマシンBで再現できればいいのであって、
具体的なアドレスは変わっててもいい。
(3)マシンAにてパケットで表現できる形式に変換して、
マシンBに渡して、マシンBでメモリ上に再現する
てのが基本。
(4)パケット表現は、テキストやバイナリがある。
テキストで有名なのはXML、JSON。
バイナリも古くからいろいろあって、
固定長好き派の
NDR(IBM HP MSのRPC)やら
XDR(Sun RPC)やら、
タグ・長さ・値 派のBER(SNMP)やら。
あと、いろいろ環境ツールも含めて
GoogleのProtocol Buffersやら
FacebookのThriftやら
MessagePackやら
もある。
俺が言った、「アドレス値をオフセットに〜」っていうのは
バイナリパケット形式の、独自方式を自分で実装する
って話。
201は多分べつの物知りさんだな、
いまocn規制できつい、ゆっくり頼むが
同一の固定OSでないと固定addrは無理だろ
0212デフォルトの名無しさん
2011/03/30(水) 00:20:45.860213デフォルトの名無しさん
2011/03/30(水) 10:07:58.23> ポインタを含むデータ構造通信の件、おいら大好物。
> ゆっくりでよければ教えるよ
と宣言したんだから、>>200も考慮してきっちり教えてやれ。w
0214デフォルトの名無しさん
2011/03/30(水) 14:01:33.18お互いにポインタで参照し合って相互に確認しながら、動作するプログラムが組めそう。
0215デフォルトの名無しさん
2011/03/30(水) 15:10:11.160216デフォルトの名無しさん
2011/03/30(水) 16:47:20.77ここの掲示板でhttp://aurasoul.mb2.jp/_shk/書き込むと名前の横にIDが自動的につくのですが、
このIDを変える事はできませんか?プロバイダーが変わっても串を刺してもクッキー消しても変えられない。手軽に変える方法は無いですか?
0217デフォルトの名無しさん
2011/03/30(水) 19:22:16.64/ / \
/ / \
/ /―――――――――イノ
/ /: : : : : : : : : : : :| |
,' ,∠ __________/ |
| <__:.:.イ:.`メ、/|:/ |:./\レ:.:.〈 |
ノ! |/リレ',ィrそド"´ レ ィチxV:.!:.V}
/| /!:.:.! 〈. トzリ トzリ }:!::Nリ
/ /ソ:.:.i xx`¨´ , `¨x{:从 }
/ //|:.:.込、 /:.|.ハ∧ なんかわたし
/ /厶|:.:.|\ ヽ、 r つ ,. く:.:.:! ∧ ヽ 呼ばれた気がするんだよ?
/ / |:.:.|::::::> ミ 、 <} |::.:| ヽ. }
/i 〃 レ‐‐く\  ̄´ /::! !:.:<フ二ヽリ
./ // / /⌒く:\ イ:::::| |:. 厶--、 }
/ / ( /,. ┤:::::ヽ /::::::| |:.厶--、 /
0218デフォルトの名無しさん
2011/03/31(木) 00:24:27.59(a)循環参照をどうするのか
(b)同一値のエントリが2個以上あるのか
とか、
そのシステムではどうなのかちゃんと
調べて設計の前提条件にしないとダメよ。
ーーーー
リンクリストは後にして、まず文字列のポインタで例だそう。
1エントリに
固定長サイズの部分と可変長サイズの部分があるとするだろ。
struct Hoge {
uint32_t num1;
uint32_t num2;
char *str1;
char *str2;
}
したら、俺ならこの1エントリに対して例えば
0219デフォルトの名無しさん
2011/03/31(木) 00:26:08.56|----+----+----+----|
|entrySize-------| //パケット独自項目
|num1------------| //ここから固定長部分
|num2------------|
|str1Offset------| //データとパケットで違う項目
|str2Offset------| //データとパケットで違う項目
|str1の中身........| //ここから可変長部分
|.....文字列おわりnull|
|str2の中身........|
|.....文字列おわりnull、4バイト切りいいところまでnull|
とかの形でパケット化するんだわ。
受信側は、
entrySize分のメモリを用意して、
num1〜str2の中身をコピーして、
str1Offsetとstr2Offsetの値を書き換えてやれば
struct Hoge のできあがりと。
これは例だからもちろん他のやりかたでもよし。
0220デフォルトの名無しさん
2011/03/31(木) 00:28:53.06双方向リンクリストだったら、
エントリ->前,次 と書くとして
e1 -> null, e2
e2 -> e1, e3
e3 -> e2, null
をパケットで表現したければ、パケットにはアタマから
ヘッダ(エントリ個数3、とか)
e1
e2
e3
とならべる。
それぞれのポインタを指すフィールドには、パケット先頭からの
e1,e2,e3先頭のオフセットを格納しておけばよい。
ヘッダがあるからnull値と先頭エントリの区別はつく。
つたわるかな?
0221デフォルトの名無しさん
2011/03/31(木) 00:29:27.02offsetって何?
0222デフォルトの名無しさん
2011/03/31(木) 00:37:22.68昨日の書き込み見てもわからん?
どんなシステムでも使えてかつ高速な、夢の方法はない。
どんなシステムでも使いたきゃ
実行コスト払ってXMLなりJSON使う。
[アドレス固定]の話は...man shmat 参照。
でも使える場面はかなり限定されるよ。
0223デフォルトの名無しさん
2011/03/31(木) 00:41:36.98ごめん、質問が悪かった。offsetを何に使うのか。
データさえわかってしまえば、送り先のメモリアドレスな
んて必要ないと思っただけ(offsetってそういう意味じゃない?)。
json,xmlならそんなことしないから使い道が気になっただけ。
0224デフォルトの名無しさん
2011/03/31(木) 00:42:51.630225デフォルトの名無しさん
2011/03/31(木) 00:42:56.74全エントリを重複無くたどるアルゴリスムを考えてみれ。
ソコまでできればあとは楽勝だろ。
0226デフォルトの名無しさん
2011/03/31(木) 00:52:36.29C言語はわかってるんだよな?
0227デフォルトの名無しさん
2011/03/31(木) 01:00:19.13ウム、文字列途中にnull が入らないことが確定なら確かに値だけでも
問題なく伝わるね。
それでもイイヨ。受信データと再現データを完全に別にするなら。
0228デフォルトの名無しさん
2011/03/31(木) 01:09:57.65num1からstr2をまるごとコピーして、各offsetに
コピーしたstr1, str2のアドレスいれれば再現可能って訳ね。
で、可変の場合は各エントリのoffsetをたどって同じこと
繰り返す、と。失礼した。
0229デフォルトの名無しさん
2011/03/31(木) 10:28:01.02linux の snmptrap や snmpinform などのコマンドで、data binding 部のデータの型を
i:整数、s:文字列 みたいに指定するのだけど、Opeque や NsapAddress を指定することは可能でしょうか。
↓コマンドで指定できる型を参考にした場所(表3)
http://www.itmedia.co.jp/enterprise/articles/0705/31/news042_4.html
↓snmp で指定できる tag の型を参考にした場所(表2)
http://www.netwatcher.jp/snmp/snmp_main.html
あと、inform は要求を受信した後に返す応答の送信先は
要求を送信してきた側の IP アドレスとポート番号でいいのでしょうか。
snmpinform で要求を投げて、以下の場所に返してみたのだけどタイムアウトになってしまいます。
・受信したUDPソケット (当然?送信できずににエラーとなる)
・新規に作成したUDPソケットで要求を送信してきた側の IP アドレスとポート番号
・新規に作成したUDPソケットで要求を送信してきた側の IP アドレスとSNMPの既定ポート(162)
お願いします。
0230デフォルトの名無しさん
2011/03/31(木) 10:39:19.10NETSNMP_WITH_OPAQUE_SPECIAL_TYPES定義でコンパイルされていれば。
0231デフォルトの名無しさん
2011/03/31(木) 13:01:53.84ありがとうございます。
usage に見当たらないので、、、残念。
inform の返信先についても、分かる方がいらっしゃったら教えてください。
0232デフォルトの名無しさん
2011/04/12(火) 22:48:34.55ポートはbindしてて、INADDR_ANYでsendtoしたときに、
実際にrecvする側で送信元として受け取るアドレスは、
送信元のどのアドレスなのでしょう?
「どの」っていうのは、送信元のマシンにはエイリアスで
アドレスが複数追加されているので・・・
INADDR_ANYで送信するときって、送信元として入るアドレス選択に
きまりはあるのでしょうか?
0233デフォルトの名無しさん
2011/04/12(火) 22:53:17.51してなければ、出て行ったインターフェースのアドレス
ただWinSockはいろいろ斜めを行くから…
0234デフォルトの名無しさん
2011/04/13(水) 12:32:56.36>INADDR_ANYで送信するときって、送信元として入るアドレス選択に
>きまりはあるのでしょうか?
ホストのルーティングテーブルでネクストポップを決定して、
そのネクストポップと同じサブネットのアドレス。
>>233
>してなければ、出て行ったインタフェースのアドレス
232が聞いてるのは一つのインターフェイスに複数のIPアドレス振ってる時の話でしょ。
0235デフォルトの名無しさん
2011/04/13(水) 12:38:44.84出て行くのはプライマリのIPアドレスからになる
0236デフォルトの名無しさん
2011/04/13(水) 18:19:07.72んなわけあるかい。
「プライマリの」なんて概念が前時代的。
0237232
2011/04/14(木) 00:35:43.37ありがとうございます。
>>234さんの指摘のように、1つのインタフェースに複数のアドレスが定義されている場合です。
>>234
> ホストのルーティングテーブルでネクストポップを決定して、
> そのネクストポップと同じサブネットのアドレス。
浅学ですみません。。。定義した複数アドレスが、同一ネットワークの場合はどうなるでしょうか?
基本的な質問で恐縮なのですが、なぜこういう質問をしているか、
>>232の話をもう少し具体的に言うと
�@ サーバ : アドレス 192.168.0.20/24 さらに同じNICに対して、エイリアスで 192.168.0.1/24 を定義している
�A クライアント : アドレス 192.168.0.10/24
この状態で�@→�Aへ送信します。送信方法は>>232に書いたように、UDPで、ポートは固定で指定、
ホストアドレスは INADDR_ANY で作ってバインドしてあります。
�@でsendtoして�Aでrecvfromしたとき、�Aで受信したときの送信元(�@)のアドレスがどうなるか?なのです。
というのも、�@がWindowsXPの場合は、送信元アドレスが 192.168.0.20 となったのですが、
Windows7の場合は、192.168.0.1 となるのです・・・
>>234さんの指摘をもらって、route print してみると、
確かに WindowsXP では、192.168.0.0/24 の interface が 192.168.0.20 となっているのですが(>>235さんの言うプライマリですね)
Windows7の場合は、192.168.0.0/24 の interface は 192.168.0.1 となっています。
Windows7の場合、アドレスが小さいものが interface に優先されてしまう?と疑問を持った次第です。
これまでXPで使っていたプログラムで、Windows7へ持っていくと動作が変わるので、
これをなんとかしたい、というのが背景です。
0238デフォルトの名無しさん
2011/04/14(木) 06:30:29.120239デフォルトの名無しさん
2011/04/14(木) 15:29:36.22まだreadしてないたまっているバッファをすべて破棄するには
どうするのが一番スマートで速くて格好いいデスか?
0240デフォルトの名無しさん
2011/04/14(木) 15:43:31.870241デフォルトの名無しさん
2011/04/14(木) 15:53:11.93空読みが許されるのは童貞までだよねー
0242232
2011/04/14(木) 18:19:21.77結論から言うと、OSの仕様でした。(無印Win7しか確認していませんが)
http://support.microsoft.com/kb/2386184
↑のKBの修正Hotfixを当ててから、
netsh で skipassource=true にしてエイリアスのIPアドレスを
同一NICに追加してやると、プライマリ相当のアドレスで返ってくるようになりました。
またこのとき、route print すると Gateway と Interface がプライマリ相当のアドレスになることが確認できました。
>>236さんの言うようにプライマリという概念がそもそもなくなってるともいえますし、
OSの動作が、XP/2003Server → Win7/2008R2 で変わったともいえると思います。
まあプログラム側がOSの仕様を決め打ちした動きになってるのが悪いんですが・・・w
とりあえずOSのアップデートか、>>238さんの言うようにプログラム側で対処するか、
どちらかで検討します。
お騒がせしました。
0243デフォルトの名無しさん
2011/04/14(木) 19:55:54.78ソケットに対してlseekするとエラーになるんじゃん!
0244デフォルトの名無しさん
2011/04/14(木) 19:59:14.69常識的に考えて出来るはずなかろう?
0245デフォルトの名無しさん
2011/04/14(木) 20:01:50.14soket 閉じて開きなおすのはマズイのだろうか と戯言
0246デフォルトの名無しさん
2011/04/14(木) 21:36:35.720247デフォルトの名無しさん
2011/04/14(木) 21:43:05.47lseek を実装して、現在あるバッファを読み飛ばす(捨てる)だけは可
にすればいいんだがまぁ、対称性に著しく書けるインターフェースだわな
0248196
2011/04/14(木) 21:52:01.14AとBのプログラムで通信する場合ですが、こういう認識で合ってますか?
プログラムA プログラムB
↑ ↑ ユーザランド
-----|-----------------|---------
プログラムAの プログラムBの
ソケット←ーーーー→ソケット カーネル
0249デフォルトの名無しさん
2011/04/14(木) 21:52:44.84名前の196は関係ないです。
すいません。
0250デフォルトの名無しさん
2011/04/14(木) 22:10:21.58ええ。
まあ環境によるんですけど。
0251デフォルトの名無しさん
2011/04/14(木) 22:13:46.39例外もあるんですか?
0252デフォルトの名無しさん
2011/04/14(木) 22:27:29.18逆に、インカーネルなhttpdとかありうるし。
0253デフォルトの名無しさん
2011/04/14(木) 22:52:12.250254デフォルトの名無しさん
2011/04/15(金) 00:08:01.48いくつかのソケットでconnectし始めるプログラムを実行すると
一番最初のconnectはつながるまで約3秒かかるのに
ほぼ同時ながら別のスレッドでconnect呼ぶところではほぼ即座につながる
ってことが起こるんですが、何が原因でしょう?
あと、一発のconnectの待ちを短くしてやるにはどうすればいいでしょう?
0255デフォルトの名無しさん
2011/04/15(金) 00:13:37.910256デフォルトの名無しさん
2011/04/15(金) 00:18:31.32インターフェースは固定IPでupさせてます
あと、接続もIPアドレス直です
1回目のconnectと2回目のconnectは同一ホストへの接続で
ポート番号が1個違うだけなのに2回目の方が先につながるのが納得いかない。。
0257デフォルトの名無しさん
2011/04/15(金) 00:27:05.93OSは何?
0258デフォルトの名無しさん
2011/04/15(金) 00:31:52.32ひょっとしてarpテーブル見に行って該当無かったら
arp投げて3秒後synリトライしているとか?
0259デフォルトの名無しさん
2011/04/15(金) 00:35:34.94リトライになるはずないです。
ルーティング設定も手動ですか?
DNSの逆引きが行われてませんか?
0260デフォルトの名無しさん
2011/04/15(金) 00:36:19.850261デフォルトの名無しさん
2011/04/15(金) 02:23:27.15ちょ、まじってる
0262デフォルトの名無しさん
2011/04/15(金) 14:06:04.59マジ?
0263デフォルトの名無しさん
2011/04/15(金) 15:40:07.26常識
0264デフォルトの名無しさん
2011/04/15(金) 16:46:17.40いや、今でも使ってる人いるの?
0265デフォルトの名無しさん
2011/04/15(金) 16:50:47.510266デフォルトの名無しさん
2011/04/15(金) 19:03:36.63ルーティング設定も手動、DNSの逆引きは行われていないと思います。
>>260
wiresharkが使えればよいのですが
組み込み系かつWiFi直結間での通信なので・・・
とりあえずノンブロッキングで
connect→close→connect
ってすると即座につながったのでこれで良し?
0267デフォルトの名無しさん
2011/04/15(金) 19:15:37.64PeerをPCにしてperrでwireshark動かせば?
0268デフォルトの名無しさん
2011/04/15(金) 19:30:43.86たとえばWindowsのIISのHTTPサーバーはカーネルで動作するように実装されてた。
パフォーマンス優先で設計すると、そうなる。
0269デフォルトの名無しさん
2011/04/15(金) 19:43:28.92カーネルモードに移動したのがServer 2003あたりの比較的最近だった気がするけど
ちなみにLinuxにもカーネルモードのhttpdがある
0270デフォルトの名無しさん
2011/04/18(月) 12:02:15.560271デフォルトの名無しさん
2011/04/18(月) 12:06:45.71坊やならしょうがないけど、人前でそういう発言しな方が良いぞ。w
0272デフォルトの名無しさん
2011/04/18(月) 13:56:48.22システムコール呼んだら2度と帰ってこないって、あれだっけ?
まぁ、当時はカーネルスレッドなんかなかったからなぁ
0273デフォルトの名無しさん
2011/04/18(月) 15:36:01.74元祖の話とかしてどうするの? 懐かしむの?
0274デフォルトの名無しさん
2011/04/18(月) 16:29:33.470275デフォルトの名無しさん
2011/04/18(月) 17:03:04.79しょうがないよ。坊やが生まれる前からある技術だから。
0276デフォルトの名無しさん
2011/04/18(月) 18:05:41.660277デフォルトの名無しさん
2011/04/27(水) 10:01:35.90今頃バブルの話とか太古のアイドルの話しても分からないってw
nfsに限らずファイル周り呼んだら帰って来なく成るって多いorz
無線だと無線の物理層のリンクもいろいろごにょごにょしてそう。
ipで下位レイヤを気にせず使える分、いろんな状況を想定する事が求められる。
被災地の観測機器にパケット飛ばしたら、無線基地局が流されて消失してたとかね。
0278デフォルトの名無しさん
2011/04/27(水) 10:55:57.720279デフォルトの名無しさん
2011/04/27(水) 17:18:18.60サーバからデータをpush送信したいと思いってます。
ちょっと調べた範囲では余りよく分かりませんでした。特にプログラミング言語で当該機能を実装するような具体的な例を見つけることができませんでした。
何かヒントとか、または、ここを
見れば分かりやすいよ、とかありましたら、よろしく願いします。
なお、サーバはwindowsでクライアントはandroidです。
0280デフォルトの名無しさん
2011/04/27(水) 19:39:28.10送受信クライアントアプリ作ってみたいな〜
なんて思ってる人生の初心者です。
invokeとかBeginInvokeとかEndInvokeとかIAsyncResultとかもうちんぷんかんぷんです。
基礎からじっくりと使い方の学習してみたいのですが、お勧めは何かありますでしょうか?
コードの断片だけじゃてんで頭にはいんないし、書籍は○○層があってだなとかフレームの中身の話とか
で、言葉の定義で実際にはソケットよりもNIC担当の処理内容に紙面を費やしてたりと
意欲だけ空回りで、てんで前進してる気配がないので、お助けください。
0281デフォルトの名無しさん
2011/04/27(水) 19:42:56.80それはネットワークとは関係のないC#自体の話ではありませんか
ネットワークの話とは分けて勉強した方がいいと思いますが
0282デフォルトの名無しさん
2011/04/27(水) 20:02:26.51送信した後に非同期で受信した側の処理を身に付けたいんですけど
ソケットの使い方じゃなくて、非同期の勉強でつまづいてるってところが大きいですね。
非同期だとF10押していってもデバッグ出来ないですよね?別スレに行ってしまって。
どう試行錯誤していいのか、先ずそんなところから錯誤してますです。
0283デフォルトの名無しさん
2011/04/27(水) 23:33:33.79ぐぐれば非同期の作り方の例が出てくるよ。
でもスレッド作って同期でしたほうが分かりやすいし作りやすいと思う。
C#内容についてはこちらで
http://hibari.2ch.net/test/read.cgi/tech/1302422250/
0284デフォルトの名無しさん
2011/05/02(月) 16:12:32.87列挙するようなI/Fがありますでしょうか?
0285デフォルトの名無しさん
2011/05/02(月) 21:03:46.470286デフォルトの名無しさん
2011/05/03(火) 03:56:32.35WinSockには無い。
IP Helper APIを使う。
0287デフォルトの名無しさん
2011/05/05(木) 04:39:15.21NAT越え関係のプログラミングを作らないといけないのですが
何をどうすればよいのやらで、行き着いたのが
uPnPでのポートマッピングに行き着きました。
諸所の本、サイト等は見て回ったのですが、
「マルチキャストでM−SEARCH」の一点張り
マルチキャスト(UDP)で送信しても受信側がどうしてもできない?
※sendtoでの戻り値状は送れていると思うのですが。
といった所で、このGWをほぼ潰す結果になりました(´・ω・`)
何か コレみれば(・∀・)イイ!! といった物はありませんでしょうか?
0288287
2011/05/05(木) 05:03:06.460289デフォルトの名無しさん
2011/05/05(木) 09:27:46.55Microsoft Windows SDKのサンプル。 google依存症だな。
0290デフォルトの名無しさん
2011/05/05(木) 12:28:27.640291デフォルトの名無しさん
2011/05/06(金) 15:42:33.43それからどうでもいいことだけどUは大文字。Universal Plug a'n'd Play
0292デフォルトの名無しさん
2011/05/12(木) 14:57:21.15せっかくの双方向性捨ててる。
natの内側からのコネクションの帰りにデータ詰めて流すしか無いと思うよ。
0293デフォルトの名無しさん
2011/05/12(木) 15:06:16.39> しか無いと思うよ。
そんなことはありません。
0294デフォルトの名無しさん
2011/05/13(金) 04:55:32.280295デフォルトの名無しさん
2011/05/13(金) 10:11:57.94natを使う
0296デフォルトの名無しさん
2011/05/13(金) 13:53:09.20>>294の低能ぶりがいかんなく発揮されているレスだ。
0297デフォルトの名無しさん
2011/05/13(金) 15:30:54.66それとSNSサイトを作る場合のお勧め言語とかありますか?
詳しく教えてもらえると助かります
0298デフォルトの名無しさん
2011/05/13(金) 15:38:59.870299デフォルトの名無しさん
2011/05/13(金) 15:41:11.06http://en.wikipedia.org/wiki/Social_network_service#Open_source_software
続きの話は、適当な板でやって。
0300uy
2011/05/16(月) 03:07:15.98Rubyが良いんじゃないかな。
Rubyはatpagesとかで動く
言語覚えたら1ヶ月で作れるんじゃね
飲み込み速ければ1週間じゃね
Web技術はプログラム的難しさよりも動作環境を整える事が難しいけど
ようは一行目に#!ruby なんとかってかいてファイル属性を755にしてrun
0301デフォルトの名無しさん
2011/05/16(月) 04:24:51.160302デフォルトの名無しさん
2011/05/16(月) 10:50:02.160303デフォルトの名無しさん
2011/05/21(土) 00:25:49.460304デフォルトの名無しさん
2011/06/07(火) 22:55:40.15前の職場で人のを借りてて良書だったし買おうと思ったら本屋に取り寄せられないって言われた。
0305デフォルトの名無しさん
2011/06/08(水) 00:46:30.580306デフォルトの名無しさん
2011/06/08(水) 03:11:36.410307デフォルトの名無しさん
2011/06/08(水) 03:13:57.150308デフォルトの名無しさん
2011/06/08(水) 06:01:34.26内容的には古過ぎて役に立たなさそうな気がw
0309デフォルトの名無しさん
2011/06/08(水) 11:12:19.65しかも在庫切れ前野縁談結構してるところ多かったから
内容がいいだけに古本があまり出回ってないのかもな、
ブクオフのネットだと安かったが在庫なかった。
たまたまオークションでそこそこ安く買えたがラッキーだったのかね。
0310デフォルトの名無しさん
2011/06/08(水) 11:13:21.62>しかも在庫切れ前野縁談結構してるところ多かったから
しかも在庫切れ前の値段結構してるところ多かったから
0311デフォルトの名無しさん
2011/06/08(水) 21:16:37.810312デフォルトの名無しさん
2011/06/08(水) 22:55:12.40良書ほど日本人の素人に取っつきにくくて、売れないのかね
絶版になったり、改訂版が出なかったりするんだよな
「UNIXネットワークプログラミング」も原書はとっくの昔に改訂されているのに
邦訳はいつまでも2版のままだもんな
まあ良書は新しいことだけ自分でネットの文章などで補間しとけば今でも役に立つが、
新しいこと書いてあっても中身糞なのは役に立たないんけどなw
0313デフォルトの名無しさん
2011/06/08(水) 23:04:56.643版って何がかわったの?
0314デフォルトの名無しさん
2011/06/08(水) 23:25:04.09IP V6関連の増補とか、SCTPやIPsecが追加されたとか、細かいところいろいろな。
第3版出たの9年前だが、いつまでたっても邦訳改定されないので、
2年後ぐらいに原書買ってしまったんだが、まさか10年近くたってもまだ出ないとは
思わなかったわw
0315デフォルトの名無しさん
2011/06/08(水) 23:40:25.53でもIPv6って10年前と今とでわりと結構違うくね?
第4版まで待って買うかね
0316デフォルトの名無しさん
2011/06/09(木) 01:02:51.45良書は必ず読むって層が英語で読んじゃうからね。
0317デフォルトの名無しさん
2011/06/09(木) 04:51:47.78ietfとかの国際会議で議論までしちゃう連中だと、日本語版を買う必要性も無いだろうな。現地で英語版買ってそのまま日本でも読み続けてると思う。
0318デフォルトの名無しさん
2011/06/09(木) 15:33:13.82全部カタカナにするだけでいいんだが・・・
0319デフォルトの名無しさん
2011/06/09(木) 16:39:49.45エラーログまで和訳され手分けわかめなのと同じ。
0320デフォルトの名無しさん
2011/06/09(木) 18:09:23.210321デフォルトの名無しさん
2011/06/10(金) 03:01:03.800322デフォルトの名無しさん
2011/06/10(金) 11:53:51.750323デフォルトの名無しさん
2011/06/10(金) 21:56:15.88著者のスティーブンスが死んじゃったからなぁ。
0324デフォルトの名無しさん
2011/06/10(金) 23:30:55.59もうすぐオレも死ぬんじゃないか? って気になるわ。
0325デフォルトの名無しさん
2011/06/10(金) 23:52:22.990326デフォルトの名無しさん
2011/06/11(土) 01:13:10.10去年、大学のときのたばこ好きの先輩が食道癌になって逝った
今年、高校のときの同級生がバイクで事故死した
0327デフォルトの名無しさん
2011/06/12(日) 00:36:34.670328デフォルトの名無しさん
2011/06/12(日) 01:52:12.81ipv6は正にこれからなんだが
0329デフォルトの名無しさん
2011/06/12(日) 03:07:19.32参考になるサイトありませんか?
0330デフォルトの名無しさん
2011/06/12(日) 04:17:27.59ありません
0331デフォルトの名無しさん
2011/06/12(日) 17:08:38.36爺さんじゃなかったはずだけど持病でもあったのかな? プログラマとか持病多いからなあ。
ipv4聡明期の村井さんとか砂原さんじゃこれから20年とかとても戦えないからなあ。
ウィンドウズ95の発売で一気に一般化したipv4から16年か。もうアドレス枯渇で役目を終えようとしてるけど。
0332デフォルトの名無しさん
2011/06/12(日) 20:10:01.48自。なぜかわしらない。当時はIPv6の話をしても誰も聞く耳をもたなかったからか?
0333デフォルトの名無しさん
2011/06/12(日) 21:30:06.79非同期のUDP による送受信プログラムを一台のPC で検証しています
パケットモニタしたいと思いフィルタリングで
ip.addr == 127.0.0.1 && udp.port == 5030
として、applyするのですが、パケットがキャプチャーできません、何処か間違ってますか?
0334デフォルトの名無しさん
2011/06/12(日) 21:34:47.94-i lo
0335デフォルトの名無しさん
2011/06/12(日) 21:36:35.68windows wireshark loopback
0336デフォルトの名無しさん
2011/06/12(日) 21:42:51.49鼻息荒いな 夕飯食ったか?
0337デフォルトの名無しさん
2011/06/12(日) 21:50:13.06>>335はツンデレだろ
0338デフォルトの名無しさん
2011/06/13(月) 00:51:32.240339デフォルトの名無しさん
2011/06/13(月) 06:42:03.580340デフォルトの名無しさん
2011/06/13(月) 08:07:17.040341デフォルトの名無しさん
2011/06/13(月) 13:01:08.23人間の身体はコンピュータほど単純ではないよ。
0342デフォルトの名無しさん
2011/06/13(月) 14:07:39.84ミルクはカルシウムが、野菜はビタミン豊富、大豆はタンパク質
バランスも大切。
0343デフォルトの名無しさん
2011/06/13(月) 14:33:50.79注入量以上を毎日放出してんだから
0344デフォルトの名無しさん
2011/06/14(火) 02:55:53.870345デフォルトの名無しさん
2011/06/14(火) 03:00:02.730346デフォルトの名無しさん
2011/06/14(火) 08:47:45.680347デフォルトの名無しさん
2011/06/16(木) 06:47:06.620348デフォルトの名無しさん
2011/06/19(日) 01:22:04.15今日、SFの本を読んでいて思ったんですが、
例えば10年後に火星に基地が出来たとします。
その基地と通信する場合にTCPを使ったとすると、
パケット一個届けるのに20分くらい。
ACKが帰ってくるのに20分くらい。
通信状態が悪いでしょうから、パケットが消えて
再送したりするとすごく大変じゃないですか。
そこで一つのPCにNICを5個つけて、
送信したいデータをRAID6のような形にパリティつけて分割した後、
5つのNICから送信先に向かって一度に送ってしまえば、
受信側でいくつかデータが欠損していても復元できて幸せと
思ったんですけど、そんなプロトコルというか仕組みって有るんでしょうか?
0349デフォルトの名無しさん
2011/06/19(日) 01:27:29.740350デフォルトの名無しさん
2011/06/19(日) 01:31:51.58つ TTCP
0351デフォルトの名無しさん
2011/06/19(日) 01:38:58.59>TTCP
ググってみましたけれど、
T/TCPのことですよね。
これってネットワーク環境が良くないと使えないのでは?
僕は、宇宙と通信する場合を想定しているんですけれど...
↑電波な発言だな〜
0352デフォルトの名無しさん
2011/06/19(日) 03:27:01.150353デフォルトの名無しさん
2011/06/19(日) 04:39:26.45じゃあ、宇宙等極限環境下でのネットワーク環境についてですね。
0354デフォルトの名無しさん
2011/06/19(日) 05:29:46.79俺が何を作ろうと、煽り続けるんだろう
相手してるとつかれるんよ
0355デフォルトの名無しさん
2011/06/19(日) 05:47:36.33おまえも名無しだろ。
0356デフォルトの名無しさん
2011/06/19(日) 10:17:12.52パケットの遅延については、あなたの使ってる TCP でも ACK を待たずに次の
パケットを送ってしまい、間違ってたらそのパケットのみ再送すると言う制御
をしている。(tcp window と tcp selective ack とかでググルといいかも。)
誤り制御はわざわざ別チャネルにする必要はないので、通信データ自体に冗長
化データを付加して誤り訂正するようにしている。
複数チャネルを使うと言うのは MIMO とか link aggregation 等の技術がある
けど、基本的に高速化のための技術。
0357デフォルトの名無しさん
2011/06/19(日) 10:18:30.450358デフォルトの名無しさん
2011/06/19(日) 11:13:24.80「宇宙と通信」は >>352 が言う通り意味がよくわからんが、
はやぶさは3本の通信路を持ってたよ。
て言うか通信路1本だけって、怖すぎだろ。
0359デフォルトの名無しさん
2011/06/19(日) 11:46:10.753本もあったのか・・・
1本は直通だとして、残りの2本はどことどこ経由?
やっぱ火星のアンテナ経由するのかな
0360デフォルトの名無しさん
2011/06/19(日) 11:46:37.880361デフォルトの名無しさん
2011/06/19(日) 13:03:19.73直通って...、流石に宇宙と通信しようとしてる奴は違うな (w
マジレスしとくと、低利得アンテナ (8bps)、中利得アンテナ (32bps)、
高利得アンテナ (4Kbps) の3系統。
0362デフォルトの名無しさん
2011/06/19(日) 13:27:30.68>>357
>>358
>>359
>>360
おお、皆さんありがとうございます。
僕が思ったのは、惑星間航行が普通に行われるようになっても
これだけ普及したIPという仕組みは無くならないと思うんですよね。
でも、TCPだとちょっと?機能が足らないと思ったんですよ。
パケットの送信に何十分もかかる状態なら、
いっそパケットを多重化してしまえば再送が必要ないんじゃないかなと。
別チャネル?にしたらいいんじゃないかなと思ったのは、
通信路が複数有ったら一本磁気嵐とかでデータが飛んでも
リカバリできるんじゃないかなと。
どちらかというと絶対確実に届くUDPの方が近い気がしてきた。
そういう仕組みって誰も考えたことないのかなぁ。
ガンダムとかだと、
AMBACとか細かい設定まで有るのに。
まぁ、あの世界だとニュータイプがいるからいいのかな。
0363デフォルトの名無しさん
2011/06/19(日) 13:54:57.28先ずはIPとかTCPとかよりもっと低位層のが問題では?
0364デフォルトの名無しさん
2011/06/19(日) 13:55:27.15> どちらかというと絶対確実に届くUDP
色々考えるのはいいことだと思うが、まず基礎からちゃんと勉強して
おくことをお勧めする。
でないと、まともな人から相手されなくなるよ。
0365デフォルトの名無しさん
2011/06/19(日) 14:17:31.32勉強してきます!
0366デフォルトの名無しさん
2011/06/19(日) 14:25:48.060367デフォルトの名無しさん
2011/06/19(日) 14:51:58.33お前は日本語を勉強しろよ・・・ それはたとえの部分だろ
0368デフォルトの名無しさん
2011/06/19(日) 15:41:46.66そんなことはずっと昔にわかっている・・・というか、
昔は遅延が大きかったので、遅延が発生するのが前提で設計されていた。
それを遅延が無いのを前提で使い倒すようになったのは最近の話。
数時間〜数日単位の遅延が発生する場合でも、Windowsサイズを大きくして、
タイムアウトを長くとれば、それなりにちゃんと動くはず。
もちろん遅延が大きいので、アプリケーションレイヤのプロトコルは
それなりに設計していないと使い物にはならない。
エラー訂正などについては、物理層の仕事。
0369デフォルトの名無しさん
2011/06/19(日) 15:45:51.10今までは空読みしてたんですが、どう考えてもこれって無駄ですよね。
なにかいい方法ありますか?
0370デフォルトの名無しさん
2011/06/19(日) 16:09:16.84例えだからと言って、堂々と間違い書いてたら相手にされなくなるぞ。
0371デフォルトの名無しさん
2011/06/19(日) 16:21:02.62そういうことを言いたいんじゃないんですよ。
例えば火星で人が病気にかかったとして、
地球に対して、治療方法を聞くとするでしょ。
もし、パケットが不着だと、再送するだけでも40分かかる。
それは、windowサイズやタイムアウトを長くとっても
回避できますか?
エラー訂正が物理層の仕事なら、
なんでTCPに再送制御の仕組みが備わってるんですか?
パケット自体を冗長化するようなアプローチが有っても良いんじゃないんですか?
ってことです。
0372デフォルトの名無しさん
2011/06/19(日) 16:26:50.990373デフォルトの名無しさん
2011/06/19(日) 16:27:34.94そんなことも言ってはいけないって言葉狩りじゃまいか
0374デフォルトの名無しさん
2011/06/19(日) 16:32:38.11>エラー訂正が物理層の仕事なら、
>なんでTCPに再送制御の仕組みが備わってるんですか?
物理層で訂正できないエラーが発生するから。
>パケット自体を冗長化するようなアプローチが有っても良いんじゃないんですか?
パケットと言うのがどこを指しているのかよくわからんけど、TCP レイヤーの
パケットを言っているなら、そう言うアプローチは無意味だから。
0375デフォルトの名無しさん
2011/06/19(日) 16:34:33.18>そんなことも言ってはいけないって言葉狩りじゃまいか
誰も言ってはいけないなんて書いてないと思うが。
ただ相手にされなくなるだけで。
0376デフォルトの名無しさん
2011/06/19(日) 17:03:33.12>パケットと言うのがどこを指しているのかよくわからんけど、TCP レイヤーの
>パケットを言っているなら、そう言うアプローチは無意味だから。
なぜ無意味なの?
誰か実験したの?
0377デフォルトの名無しさん
2011/06/19(日) 17:06:24.90なにをどうしても「不着」が発生したら40分のロスは生じる
まずは物理的なレイヤーで、光速を超える通信ができる技術を考えてくれ
それが無理なら、結局は最悪遅延すること前提で設計するしかない
0378デフォルトの名無しさん
2011/06/19(日) 17:11:32.04SCTPの説明をするときよくそういう言い方する
0379デフォルトの名無しさん
2011/06/19(日) 17:25:32.70物理層と同じ機能を TCP レイヤーで持ってもしょうがないから。
それは間違っているとか、すげーいい方法考えたとか言うなら、
それこそ実験や理論で証明するなりすればいいと思う。
0380デフォルトの名無しさん
2011/06/19(日) 19:39:09.66>例えば火星で人が病気にかかったとして、
>地球に対して、治療方法を聞くとするでしょ。
なんでわざわざ地球に聞くの?
火星にいる人に聞けば問題ないのに。
え?火星で解決できなかったからだって?
事前に想定した事態に対する荷物しか用意していないし、
事前に用意した荷物なら使い方を知っているし、
その範囲でどうにかできないなら、同意ようもない。
0381デフォルトの名無しさん
2011/06/19(日) 19:43:26.21>もし、パケットが不着だと、再送するだけでも40分かかる。
>それは、windowサイズやタイムアウトを長くとっても
解決できるよ。ちゃんと40分後に再送され、運が良ければ60分後に届く。
>なんでTCPに再送制御の仕組みが備わってるんですか?
物理層以外でデータをロストする可能性があるから。
0382デフォルトの名無しさん
2011/06/19(日) 19:47:04.06>パケット自体を冗長化するようなアプローチが有っても良いんじゃないんですか?
あるよ。アプリケーションレベルで好きに実装すればよい。
IP電話なんかは、一部のパケットが無くなっても問題ないようになってるし。
0383デフォルトの名無しさん
2011/06/19(日) 19:47:35.41バカが考えた例え話は突っ込みどころ満載だから、バカは例え話しない方が良いぞ。
事前に用意した荷物をどの組み合わせと順序で使えばいいか。
0384デフォルトの名無しさん
2011/06/19(日) 20:03:29.53> パケットの送信に何十分もかかる状態なら、
> いっそパケットを多重化してしまえば再送が必要ないんじゃないかなと。
別チャンネルにする必要はなくって、物理層が冗長符合を大量に持って
謬り訂正すればいいだけじゃね?
誰かも書いてたけど再送要求でてもそれが届くのは数十分後
> どちらかというと絶対確実に届くUDPの方が近い気がしてきた。
絶対確実に届かないのがUDP
つか、エラーパケットは積極的に捨ててる実装しかみたことがない
0385デフォルトの名無しさん
2011/06/19(日) 20:07:43.20ねえ、ネタでやってるの?
>>371 の例えもどうかと思うが、そんなとこに突っ込みいれる君はそれ以上だよ。
>>382
> IP電話なんかは、一部のパケットが無くなっても問題ないようになってるし。
全然違う話を持ってくるなよ...。
0386デフォルトの名無しさん
2011/06/19(日) 20:08:36.36ありがとう。謎が解けた。なんとかなりそう。
0387デフォルトの名無しさん
2011/06/19(日) 21:49:09.410388デフォルトの名無しさん
2011/06/19(日) 21:57:18.89パケットの並列送信による冗長性確保に付いて言いたい事があるが、また後でな。
0389デフォルトの名無しさん
2011/06/19(日) 22:56:18.77> そんなことも言ってはいけないって言葉狩りじゃまいか
そんな考えは無駄だってことを、
Token Ringや100VG AnyLANやATMが教えてくれたんですよ。
0390デフォルトの名無しさん
2011/06/19(日) 23:11:46.300391デフォルトの名無しさん
2011/06/20(月) 15:12:18.40再送に40分かかる距離として、どれだけ冗長に送っておいたほうがスループットいいのかは検証が必要だ。
0392デフォルトの名無しさん
2011/06/20(月) 15:16:24.89それは通信路の性質によるし。
帯域は太い、しかしラウンドトリップタイムが大きい通信路で、
転送効率上げるにはウィンドウを大きくするのは定石で、
今のTCPにもヤコビソン先生が衛星回線用に書いたロジックが入ってる。
0393デフォルトの名無しさん
2011/06/20(月) 16:57:30.410394デフォルトの名無しさん
2011/06/20(月) 17:51:12.840395デフォルトの名無しさん
2011/06/20(月) 18:01:27.02T・C・P! T・C・P!
0396デフォルトの名無しさん
2011/06/20(月) 21:47:17.93mopera経由の通信モニターしてると結構TCPセグメントが焼失して再送が発生してるわけだが
0397デフォルトの名無しさん
2011/06/20(月) 23:25:34.74だったらそのTCPくっつけて見られるようにしてくれよ
0398デフォルトの名無しさん
2011/06/21(火) 00:32:50.510399デフォルトの名無しさん
2011/06/21(火) 05:58:59.22家政往復なんて1万個パケット送って1こと独程度だったりしてw
0400デフォルトの名無しさん
2011/06/21(火) 11:29:59.74パケットのロスはほとんど輻輳なんだから。
はやぶさなんか専用線なんだから輻輳ロストなんてほぼ0。
通信路の性質上、バーストロストは頻度高いだろうけど。
ただこういうのは、土方プログラマーが考えることじゃない。
最低でもStevens本くらい読みこなしてないと考える意味がない。
0401デフォルトの名無しさん
2011/06/21(火) 11:32:49.070402デフォルトの名無しさん
2011/06/22(水) 09:47:59.90専用線なんだっけ? あれって他の人は使ってないの?
0403デフォルトの名無しさん
2011/06/22(水) 11:33:42.580404デフォルトの名無しさん
2011/06/22(水) 21:32:14.30>すまん。iPhoneなもんで間違って送信ボタンに当たった。
>パケットの並列送信による冗長性確保に付いて言いたい事があるが、また後でな。
まだ〜?
0405デフォルトの名無しさん
2011/06/23(木) 02:48:07.330406デフォルトの名無しさん
2011/06/23(木) 08:43:12.980407デフォルトの名無しさん
2011/06/23(木) 11:05:34.92何を言っているのだ、お前は。
0408デフォルトの名無しさん
2011/06/23(木) 12:35:19.83はやぶさとの通信の話だよ
0409デフォルトの名無しさん
2011/06/23(木) 13:34:59.860410デフォルトの名無しさん
2011/06/23(木) 13:38:23.970411デフォルトの名無しさん
2011/06/23(木) 14:16:46.03可能だった。
0412デフォルトの名無しさん
2011/06/23(木) 14:51:23.100413デフォルトの名無しさん
2011/06/23(木) 16:26:03.54「こんなこともあろうかと、署名無してもコマンドを受けつけるようにしておいたんだ!」
0414デフォルトの名無しさん
2011/06/23(木) 23:09:50.110415デフォルトの名無しさん
2011/06/24(金) 00:34:17.500416デフォルトの名無しさん
2011/07/02(土) 15:19:04.55パケット、セッションについて教えてください。
ネットでサンプルプログラムを見ると、クライアント側では
while( true ) {
送信処理(サーバへ)
受信処理(送信処理で使ったsockaddrを使用)
}
こんな感じになっているんですが、このときの送信処理というのは何回も
必要なのでしょうか?
また、発信元ポートというのは、宛先が同じ間でも変わることがあるのでしょうか?
ちなみにNat越えはNat内のクライアントと外部のサーバ間を想定しています。
0417デフォルトの名無しさん
2011/07/02(土) 20:39:00.59> こんな感じになっているんですが、このときの送信処理というのは何回も
> 必要なのでしょうか?
NATやってるルーター次第
> また、発信元ポートというのは、宛先が同じ間でも変わることがあるのでしょうか?
バークレイソケットインターフェースだとよほどの変態実装でない限り
socket()で作られた発信元ポートは変化しないと思われる
0418天使 ◆uL5esZLBSE
2011/07/03(日) 12:40:19.28そんな言語使ってる奴ってどうみてもゴミだと思うんだけど
もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ
きも
0419デフォルトの名無しさん
2011/07/03(日) 21:45:44.140420デフォルトの名無しさん
2011/07/03(日) 21:58:31.57アセンブラか 流石にそこまでローレベル言語は使いたくないな
0421デフォルトの名無しさん
2011/07/03(日) 23:44:05.45pythonの「:」も存在価値が微妙
0423デフォルトの名無しさん
2011/07/04(月) 09:18:14.460424デフォルトの名無しさん
2011/07/04(月) 11:08:54.00というかネットワークには関係ない言語だからスレ違いだろう。
0425416
2011/07/05(火) 08:29:00.96DMZ内にあるサーバと通信する場合だと、
416のやり方でも大丈夫でしょうか?
ちなみにVPNはCiscoのIPsecを使っています。
NAT トラサーバルとか、良くわかりません。。
0426デフォルトの名無しさん
2011/07/05(火) 09:38:52.80わからないなら学べ。勉強しろ。
0427デフォルトの名無しさん
2011/07/05(火) 17:22:13.840428デフォルトの名無しさん
2011/07/05(火) 19:26:37.46根拠は?
IPsec なら専用ハード積んでる GBE だと wire rate でるんだが?
0429デフォルトの名無しさん
2011/07/05(火) 19:32:50.940430デフォルトの名無しさん
2011/07/06(水) 09:56:55.51専用ハードをツンデレ場だろ。 うちのPCはツンデレ場が無いよ
0431416
2011/07/06(水) 20:09:59.35戻りの通信が出来ませんでした。
クライアント側は3G回線+VPNです。
これって、VPNのASAとかの問題でしょうか?
0432デフォルトの名無しさん
2011/07/06(水) 20:59:42.32どこでマミられたかわからないとデバッグできないぞ
ルータでドロップ全部ログる設定にしてやりなおしてみたら?
0433デフォルトの名無しさん
2011/07/06(水) 21:23:18.340434416
2011/07/06(水) 22:57:57.99確かにデバッグが必要ですよね。。
本番の環境しかないため、自分の権限では、ここから先は出来ません><
テスト用の環境作るにも機材が必要になるので、厳しそうです。
とりあえず、当初の目的だった、外部サーバとNAT内のクライアントで通信が
出来ればよしとします。。
0435デフォルトの名無しさん
2011/07/07(木) 00:18:48.32よかったな。
もしもテスト環境をポンと渡されたらと思うとぞっとするわ
0436デフォルトの名無しさん
2011/07/08(金) 04:57:51.84あぁ本当に。
「治るまで作業してていいからね♪」ってサーバー室に閉じ込められた事ならある。
よくよく調べたら、ネットワーク構成図には書かれていないファイアウォール・・・。
使っていたクライアントOSが、何故か毎回同じクライアントポート番号で
接続しに行く不思議仕様だったため、ファイアウォールにたたき落とされていた。
0437デフォルトの名無しさん
2011/07/08(金) 07:28:38.32どこで図面漏れるか分からないし。口頭でファイヤウォール入ってないのか確認しなかったのが敗因だな。
むしろなりすましを考慮されてない実装なのが(ry
0438デフォルトの名無しさん
2011/07/09(土) 10:10:33.940439デフォルトの名無しさん
2011/07/09(土) 15:09:03.29具体的に、最大どれくらいのサイズまでならば可能なのでしょうか?
0440デフォルトの名無しさん
2011/07/09(土) 15:10:38.660441デフォルトの名無しさん
2011/07/09(土) 15:37:20.88>>440thxです
現在winsock で
320×240×23=230400バイトのフレームバッファーを、
1492バイトで分割して、UDPで下記のサイズに分割送信しています
1492×154回
632×1回
受信側で、分割して送られてきたデータを、230400バイトに、再構築するつもりなのですが、
考え方は間違っていないでしょうか?
0442デフォルトの名無しさん
2011/07/09(土) 15:39:43.70×320×240×23=230400バイト
○320×240×3=230400バイト
0443デフォルトの名無しさん
2011/07/09(土) 15:45:13.94UDPは送った順に届くとは限らないということは理解してるよね?
0444デフォルトの名無しさん
2011/07/09(土) 15:48:28.15送ったものが届かない
分割して送るなら ヘッダに通番つけといて
上記2点を考慮することになるが…
再送処理とかしだすと、TCPじゃだめなの?って話になる
0445デフォルトの名無しさん
2011/07/09(土) 16:07:55.46>>443
はい、それは理解できています
>>444
TCP/IPの送受信実験はすでに成功しており、UDPによる、送受信の実験がうまくできないので
数週間、チャレンジしていますが、手がかりがなくて模索しています。
>>分割して送るなら ヘッダに通番つけといて
ここら辺のことをお聞きしたいのですが、単純に考えますと
例えばデータ構造を
stract UDP{
unsigned int serial;
char data[1492];
};
このようなことが、考えられると思います
しかし、これでは、UDPなので、所詮投げっぱなしのデータなわけですよね
そこで、通し番号はTCP/IPの3way handshake で送り
その後、UDPでデータを送るというような、アルゴリズムになるのでしょうか?
それから、2230400のデータですが
1492×154回
632×1回
こんな送り方より
1440×160回の方が、単純で再構築もしやすいですね^^;
0446デフォルトの名無しさん
2011/07/09(土) 16:12:27.19×それから、2230400のデータですが
○それから、230400のデータですが
スマソ
0447デフォルトの名無しさん
2011/07/09(土) 16:29:52.14「何番までのデータは受け取った」とか「何番のデータはまだ来てない」とかそういう返事を受信側から送信側に送り返す
それを見ながら、未着の(たぶん失われたと思われる)データをもう一度送る
返事も失われることがあるので、何秒か返事がなかったら同じものをもう一度送る
「全部受け取った」という返事が来れば終了
0448デフォルトの名無しさん
2011/07/09(土) 16:43:47.79ありがとう
実装してみます
0449デフォルトの名無しさん
2011/07/09(土) 17:02:16.530450デフォルトの名無しさん
2011/07/09(土) 17:17:30.04>>445です
マルチキャストの実験もしてみたいので、TCPではムリポなのでUDPに拘っています^^;
0451デフォルトの名無しさん
2011/07/09(土) 17:55:46.300452デフォルトの名無しさん
2011/07/09(土) 17:57:48.84果たしてそれはマルチキャストと言えるのだろうか
0453デフォルトの名無しさん
2011/07/09(土) 18:24:30.11>>448です
そうですね、やはりapache の実装のように、子プロセスのインスタンスを生成し
管理するような、システムを構築するべきでしょうね
0454デフォルトの名無しさん
2011/07/10(日) 17:16:36.87パソコンサンデー的なものになると思う。
マルチキャストでネトゲのパッチ配布実験とかしてなかったっけ。もちろん実験だけで実用にはならんけど。
0455デフォルトの名無しさん
2011/07/10(日) 18:54:57.63それで駄目ならUDPとかマルチキャストとか考えるべき。
大抵TCPで何とかなる。動画サイトを見ろ。
0456デフォルトの名無しさん
2011/07/10(日) 18:56:06.09確実に知りたければ"Path MTU Discovery"するしかない。
まあ途中に入っているルータが正直に応えるかどうか不明だが。
IPv6の場合はルータの対応が必須だけども。
0457デフォルトの名無しさん
2011/07/10(日) 22:06:00.41IPv6でも続々と変なルータやFireWallが増えてきてるので、
PMTUDが通る前提は崩されつつある。嘆かわしいことだ。
0458デフォルトの名無しさん
2011/07/10(日) 22:23:44.91マルチキャストとブロードキャストは違うんじゃね?
パソコンサンデーはブロードキャストだよね
0459デフォルトの名無しさん
2011/07/10(日) 22:37:12.22ipベースのマルチキャストではないけど。。。
言葉の意味を考えると1対Nなので
TV放送は全てマルチキャストじゃないの?
0460デフォルトの名無しさん
2011/07/10(日) 22:55:19.780461デフォルトの名無しさん
2011/07/10(日) 22:58:29.15マルチキャストは1:N、ブロードキャストは1:∞ みたいな感じ
と覚えとくといいと思う
0462デフォルトの名無しさん
2011/07/10(日) 23:14:54.34ごめんそうだね。。。
馬鹿だ俺
0463デフォルトの名無しさん
2011/07/10(日) 23:34:09.230464デフォルトの名無しさん
2011/07/13(水) 20:24:07.81-----------------------
7330 : recv(7330) = 0 ms
13242 : recv(35562) = 0 ms
22320 : recv(22320) = 200 ms
-----------------------
(戻り値:recv(受信長) = 所要時間)
となった環境でJavaのInputStream.read()をしてみると全受信まで50msほどでした。
そこでrecv毎にrecv(all)して受信のバッファリングなどしてみたのですが、結果は変わらずでした。
APIを直接叩くよりInputStream.read()のほうが速いのはなぜなんでしょうか?
0465デフォルトの名無しさん
2011/07/13(水) 20:35:50.970466デフォルトの名無しさん
2011/07/13(水) 20:54:59.71ソケットの設定による。
デフォルトでrecvの中でちょっと待つようになってる。
待たないように設定してみるといい。
0467デフォルトの名無しさん
2011/07/14(木) 03:06:37.65ack周りかなと思い、それっぽいオプションをsetsockoptで色々設定してみたのですが変わらずでした...
もうちょいヒントを頂けると助かります
0468デフォルトの名無しさん
2011/07/14(木) 10:03:30.520469デフォルトの名無しさん
2011/07/14(木) 11:25:55.01Winsockのrecvの馬鹿チョン仕様。
0471デフォルトの名無しさん
2011/07/15(金) 22:58:02.53実装が簡単なのって何がありますか?
0472デフォルトの名無しさん
2011/07/17(日) 09:10:13.62いっそ、Javaの標準ライブラリが何をやってるのか、ソースコードを調べてみたら?
JDK に付属する src.zip にJava部分が、「Java SE 6 JDK Source Code」に C/C++ 部分があると思う。
0474デフォルトの名無しさん
2011/07/20(水) 11:49:04.57使うようにするにはどうしたらいいですか?
http://www.dotup.org/uploda/www.dotup.org1808412.zip.html
0475デフォルトの名無しさん
2011/07/20(水) 12:01:15.76time.nist.govを買い取って、好きな時刻に設定すればいい。
0476デフォルトの名無しさん
2011/07/20(水) 12:50:02.170477デフォルトの名無しさん
2011/07/20(水) 14:48:41.35逆アセしてそのチェックして分岐させているところを書き換えるといいよ
0478デフォルトの名無しさん
2011/07/20(水) 14:50:14.36char buf[100]のものを送るとしたら実際に送られるデータは何バイトになるのですか?
0479デフォルトの名無しさん
2011/07/20(水) 14:56:00.83それにTCPヘッダとIPヘッダを足した大きさ
それぞれのサイズは忘れた
0480デフォルトの名無しさん
2011/07/20(水) 15:13:20.370481デフォルトの名無しさん
2011/07/20(水) 17:24:56.66データリンク層のヘッダにも注意。
64 + strlen(data)
0483デフォルトの名無しさん
2011/07/25(月) 08:49:02.56環境や状況による。
Ethernetなら+TCPヘッダ+IPヘッダ+MACフレームになる。
PPPoE経由でPPTPVPN使ってたりすると、さらに幾つもヘッダがつく事になる。
他のTCPやUDP通信とまとめて、一つのIPパケットにのる場合もある。
0484デフォルトの名無しさん
2011/07/25(月) 10:57:00.71>他のTCPやUDP通信とまとめて、一つのIPパケットにのる場合もある。
こんなことあるのか?
0485デフォルトの名無しさん
2011/07/25(月) 11:15:33.240486デフォルトの名無しさん
2011/07/25(月) 11:39:48.33ならTCPでは有りうる。
0487デフォルトの名無しさん
2011/07/25(月) 11:44:54.64UDPも入ってるから、その可能性は却下。
0488デフォルトの名無しさん
2011/07/25(月) 11:53:01.80>>478の質問に即してレスした。
0489デフォルトの名無しさん
2011/07/25(月) 16:10:21.68TCPでは って言ってんだろ・・・
0490デフォルトの名無しさん
2011/07/25(月) 16:12:23.060491デフォルトの名無しさん
2011/08/05(金) 00:00:54.77そこにパケットを入れ替えるのではなく追加するというのは可能なのですか?
任意のパケットをNICに入れるのはこの際問題にしなくていいです(それは出来る)
TCPプロトコルがいまいちよくわからない
パケットをそのまま入れればいいって問題じゃないですよね?
ACKとかシーケンス番号とかも揃えないといけない?
となるとACKの区切りを検出して、自分のデータのACKのやりとりを丸々入れないけないのですかね?
0492デフォルトの名無しさん
2011/08/05(金) 00:16:12.930493デフォルトの名無しさん
2011/08/05(金) 00:25:12.33そうです 以上
0494デフォルトの名無しさん
2011/08/05(金) 00:26:16.720495デフォルトの名無しさん
2011/08/05(金) 00:35:28.950496デフォルトの名無しさん
2011/08/05(金) 00:53:09.47簡単な方法があるならそれを使うまで
パケットを直接入れる方が簡単だと言うなら別だけど
0497デフォルトの名無しさん
2011/08/05(金) 09:03:59.820498デフォルトの名無しさん
2011/08/05(金) 17:17:11.92簡単にはできない。
TCPストリームのデータを中間者が増やした時点で、それ以降のACK/SEQがずっとズレっぱなしになるので、
任意のデータを入れたが最後、その後の通信を全部加工して送らなければならない。
ftpに対応したNATルータがまさにそれをやっている。
0499デフォルトの名無しさん
2011/08/05(金) 17:25:53.750500デフォルトの名無しさん
2011/08/05(金) 18:05:39.59>>494に難しいだけで簡単だって。
スループット上げるのは容易ではないけども。
0501デフォルトの名無しさん
2011/08/05(金) 18:33:11.54一旦正規のソケットに仲介させることで中身をいじるのは簡単になる
1.接続要求がきたら自分のListenポートに修正
2.本来のポートに普通にコネクションを張る
3.自分のソケットから本来のポートに対するパケットのソースアドレスを元に戻す
4.以後はそのパターンでソースとデスティネーションを書き換え続ける
これで完全に仲介したソケットが完成して、本来の接続プログラムが
リモホを参照してもちゃんと元のリモホとして認識されるはず
これでいけると思うんだけど間違ってるかな?
この方法で問題になるのが自分でconnectやacceptする部分であらかじめポート番号を決定できた方が都合がいいんだけど
Winsockってそういうことは可能なんだっけ?
0502デフォルトの名無しさん
2011/08/05(金) 18:57:47.69> 既にハンドシェイクされて確立されたTCPコネクションがあって
という前提なので。
0503デフォルトの名無しさん
2011/08/05(金) 19:03:04.84パケットを挿入するという前提があるので、その条件を入れただけですよ
0504デフォルトの名無しさん
2011/08/05(金) 19:16:52.10よくわかってないなら、変な条件つけなきゃいいのに...。
0505デフォルトの名無しさん
2011/08/05(金) 19:24:52.51こういうスレではあらかじめかなり条件を絞って質問しないと
毎回毎回、知識ひけらかし君が、その部分をまずやれとか意味不明なことを言い出して
それはとっくに出来てるんでとか言うと以後レスしなくなるという
そういう経験ばかりしてきてるんで
無駄なやり取りを減らすために条件を絞るくせがついてるですよ
0506デフォルトの名無しさん
2011/08/05(金) 20:03:49.59誰が誰やらわからんw
0507デフォルトの名無しさん
2011/08/05(金) 21:49:57.240508デフォルトの名無しさん
2011/08/05(金) 21:50:38.63>毎回毎回、知識ひけらかし君が、その部分をまずやれとか意味不明なことを言い出して
>それはとっくに出来てるんでとか言うと以後レスしなくなるという
自分のやったことと、前提条件がちゃんと説明できてないからだろ。
0509デフォルトの名無しさん
2011/08/05(金) 22:33:40.45妖しいことも出来ない奴がネットワークを語るなよ
そんなレベルの奴に用はねーし
逆にそのレベルに達してきて怪しいことをやったことが無い奴なんて居ない
0510デフォルトの名無しさん
2011/08/05(金) 23:23:28.65クニモサレズ
サウイフモノニ
ワタシハ
ナリタイ
0511デフォルトの名無しさん
2011/08/17(水) 01:52:36.11どういう状況でそんなことやる必要があるのか
知りたい。
0512デフォルトの名無しさん
2011/08/17(水) 11:27:32.60それは別のネットワークになるので駄目です。
0513デフォルトの名無しさん
2011/08/18(木) 22:05:34.40Socket.Send メソッド (IList<ArraySegment<Byte>>, SocketFlags)
のSocketFlagsの存在が何故あるのかが良く解らないんです。
SocketFlags.Noneを指定するのなら
Socket.Send メソッド (Byte[])
でイイのではないかなぁと思うのですが、サンプル求めてググッてみても
SocketFlags.Noneを指定するのが過半なので、どうしてかな〜と疑問に思い質問です。
なんで?
0514デフォルトの名無しさん
2011/08/19(金) 00:11:39.24C++で組みたいのですが、何から勉強していいかわかりません・・・
何かいい本かサイトを紹介してくれませんか。
スキルとしては、画像やテキスト処理のコマンドラインプログラムを
C++で書ける程度です。
0515デフォルトの名無しさん
2011/08/19(金) 01:09:58.09どういう方法でやろうとしているの?
特定のwindowsサーバにインストールして、そのサーバの下にいるwindowsPCに帯域制限をかけたいの?
それともwindowsPCにインストールして、インストールしたwindowsPCのみに帯域制限かけたいの?
賢い人達はLINUX使うと思う。
まあ、どういう方法をとるにしろ、
デバドラまで入り込まないと無理だぞ。
今日も眠れぬ青画面の世界までようこそ。
WELCOME!WELCOME!WELCOME!
0516デフォルトの名無しさん
2011/08/19(金) 02:47:41.32そうらしい、実際にやってみたがループバックは物理的なネットワークが違うものとして扱われるらしくリダイレクト出来ない。
パケットをいじるだけで同じPC内でプロキシをするのは無理らしい。
しかし、苦労したけど結局プロキシする方法を発見して出来たからもういいのだ。
0517デフォルトの名無しさん
2011/08/19(金) 09:44:30.60標準でQoSに対応しているので、有る程度はレジストリ設定だけで
制限できるんだけど、あくまで作るのが目的なの?
作るなら、フィルタドライバとして作るだけだけど。
0518デフォルトの名無しさん
2011/08/19(金) 10:13:26.00きもすぎwwwwwwwww
0519デフォルトの名無しさん
2011/08/19(金) 19:18:23.78>それともwindowsPCにインストールして、インストールしたwindowsPCのみに帯域制限かけたいの?
それです。
>>517
目的達成できるなら手段は問わないです。
具体的にはネットワークカメラを走らせていまして、
プロバイダの30GB/日のUL転送量制限に引っ掛からないように転送量を測って、
20GB超えたら速度制限、25GB超えたらそのポートを遮断
日付が変わったら累積リセット制限解除、ということをしたいのです。
制限を超えるのは極稀な日なので、四六時中制限掛けるのは避けたいですし
LAN同士の転送はカウント外にしたいので、ネットワークカメラのポートだけを監視したいわけです。
0520デフォルトの名無しさん
2011/08/19(金) 19:44:57.73そういった人を満足させるネトゲって可能?
0521デフォルトの名無しさん
2011/08/19(金) 19:50:42.910522デフォルトの名無しさん
2011/08/19(金) 20:24:59.540523デフォルトの名無しさん
2011/08/19(金) 21:06:34.70それって速度制限というか、絶対量制限しないといけないんじゃないの?
1フレームの転送量を計って、制限量に達するまでに何フレーム送れるか計算したら?
webcam -> localhost:8000 -> internet
みたいな感じでlocalhostさんに一度データを送って、localhostさんがwebcamの
データを外に中継だけするようにしたらどう?
0524デフォルトの名無しさん
2011/08/20(土) 01:28:49.55不可能
小足見てから昇龍とか無理
0525デフォルトの名無しさん
2011/08/20(土) 01:31:40.550526デフォルトの名無しさん
2011/08/20(土) 03:24:37.45地球の裏側まで光速で何秒かかるか計算してみるといい。
理論最速値でもそこまでの速度しか出ないということに驚愕しろ。
0527デフォルトの名無しさん
2011/08/20(土) 08:14:59.99TCP/UDPプロキシでも使ったほうが手っ取り早いんじゃね?
0528デフォルトの名無しさん
2011/08/20(土) 08:15:55.13可能。ただし1フレームがネットワークのディレイより長い必要がある。
0529デフォルトの名無しさん
2011/08/20(土) 09:59:38.11帯域制限を掛けるなら当然、同じフレームは不達として落としてやらないといけないから複雑
0530デフォルトの名無しさん
2011/08/20(土) 10:04:44.02send recvをフックして遅延を掛けてやればいい
ただ、この方法だと100%のソフトを制御出来る保障がないけど
100%制御がしたいとなるとring3では無理
つまりカーネルモード(ドライバ)の領域に入らないと制御は出来ない
0531デフォルトの名無しさん
2011/08/20(土) 10:13:07.930532デフォルトの名無しさん
2011/08/21(日) 19:26:09.84参考にしたのは
ttp://dobon.net/vb/dotnet/internet/downloadusesocket.html
なのですが、
//受信する
byte [] resBytes = new byte[1024];
System.IO.MemoryStream mem = new System.IO.MemoryStream();
while (true){
int resSize =sock.Receive(resBytes, resBytes.Length,System.Net.Sockets.SocketFlags.None);
if (resSize == 0)
break;
mem.Write(resBytes, 0, resSize);
}
の部分がうまく動作しません。
while一週目で全文受信したのち、2周目でresSize 0がこないのです。
ずっとsock.Receiveのところで固まってしまいます。なにか足りないのでしょうか?
オツムの足りない私めにご教示お願いします。
0533デフォルトの名無しさん
2011/08/21(日) 19:43:01.850534デフォルトの名無しさん
2011/08/21(日) 20:23:57.840535デフォルトの名無しさん
2011/08/21(日) 22:30:09.31Vista以降はcloseするとFINを送る前に0パケットを送信する
>>532
というわけでclose以外で0バイトの受信が来る事はない。
TCPはデータの到達は保障してくれるけど区切りまでは保障してくれない。
だからTCP通信で必須になるのがデータサイズを相手に通知する作業なの
HTTPプロトコルだと、まず\r\n\r\nでヘッダの終わりを通知して
ヘッダの中のContent-Lengthで後続するデータサイズを明記するという構造でデータサイズを渡してる。
同じようにデータのサイズをあらかじめ通知する方法を自分で考えたプロトコルにも組み込まないといけない。
そうすることで何バイト受信すればいいかがわかるでしょ。
0536デフォルトの名無しさん
2011/08/21(日) 22:50:19.660537デフォルトの名無しさん
2011/08/22(月) 02:20:50.65そうなんだ
でもそれってUNIX系でいうところの
readの戻り値がゼロ ってやつだよね?
0538デフォルトの名無しさん
2011/08/23(火) 00:23:23.890539デフォルトの名無しさん
2011/08/23(火) 00:47:50.240540デフォルトの名無しさん
2011/08/25(木) 23:18:57.16socketのReceiveTimeoutは同期の場合にしか使えないようなのですが
非同期の場合はタイムアウトや無応答をどう対処したらいいのでしょう?
if (0 < sock.Available | 0 < resSize)
と、ネットワークから受信した、読み取り可能なデータ量が0ならbreak?
ちがうよなぁ・・・。
0541デフォルトの名無しさん
2011/08/26(金) 14:23:25.040542デフォルトの名無しさん
2011/08/26(金) 19:26:12.89TCPでの送受信がUDP側に影響を与えることってありますか?
0543デフォルトの名無しさん
2011/08/26(金) 20:01:21.09イーサネットの帯域食うくらいの通信をTCPでしてない限り。
100%ないと思っていいです。
0544デフォルトの名無しさん
2011/08/26(金) 20:03:25.090545デフォルトの名無しさん
2011/08/27(土) 02:26:14.910546デフォルトの名無しさん
2011/08/27(土) 09:42:13.510547デフォルトの名無しさん
2011/08/27(土) 10:01:00.55おまいら
0548540
2011/08/27(土) 17:30:05.25client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 2000);
で受信タイムアウト設定したつもりで居たら駄目だった。
SocketOptionName 列挙体
ReceiveTimeout タイムアウトを受信します。
このオプションは、同期メソッドにだけ適用されます。BeginSend などの非同期メソッドに対しては機能しません。
AsyncCallback(ReceiveCallback)で非同期受信したい場合ではどうすればいいですか?
0549デフォルトの名無しさん
2011/08/29(月) 20:27:18.19何故なら、切断タイムアウトが検出されるのはデータを送信して応答メッセージが無い時だけだからだ
逆に言えば、タイムアウトを発生させたい周期で無意味なデータを送りつけて反応を見ればいい
これをPing送信を言う
0550デフォルトの名無しさん
2011/08/29(月) 20:30:29.86BeginReceiveを使えばいいだろと言って見るテスト
0551デフォルトの名無しさん
2011/08/29(月) 21:36:39.72pingとかいちいち送るのうざいじゃん
KIIPUARAIBUを設定してOSに勝手にやらせればよくね?
0552デフォルトの名無しさん
2011/09/02(金) 01:33:24.13にすればよいだけ?
RFC読めば読むほどわからなくなってきた・・・
0553デフォルトの名無しさん
2011/09/02(金) 03:35:51.570554デフォルトの名無しさん
2011/09/02(金) 09:17:50.280555デフォルトの名無しさん
2011/09/02(金) 12:24:21.85うそつけ
>>552
Qエンコーディング(MIMEヘッダ拡張)しろ
0556デフォルトの名無しさん
2011/09/02(金) 16:09:57.29マシンとルーターの同時接続数上限的に無理かな?
0557デフォルトの名無しさん
2011/09/02(金) 16:15:04.360558デフォルトの名無しさん
2011/09/02(金) 17:16:33.12同時接続どれぐらい?
0559デフォルトの名無しさん
2011/09/02(金) 17:57:11.76今時、古いノートPCでも、
ネットワークスタックだけに限れば余裕かと。
サーバの処理については内容によるだろうし、
ルータと言っても古いADSLモデム兼用もあるし機種次第だろうね。
0560デフォルトの名無しさん
2011/09/02(金) 18:37:58.600561全然動かないよーー
2011/09/19(月) 02:52:55.49Linux上でネットワークプログラミングしてます。
IPv4でUDPで受信するプログラムです。
socket()、bind()、setsockopt()は全て成功し正常終了しているのに、
recv()だけがエラーとなり受信できません。
ソケットは確実に開けており、netstatでも確認済みです。
ICMP destination unreachableを発信しています。
何でですか。
0562全然動かないよーー
2011/09/19(月) 02:54:57.61マニュアルにあるので、やろうとしましたが、全然できません。
それに、疑問点が多々あります。
○IP_RECVERRの指定はsetsockopt()でするのでいいですか。
○msghdrにエラーがセットされるとありますが、
エラーはsock_extended_errで提供されるともあります。
msghdrのメンバにsock_extended_errなんてありません。
msghdrに具体的にどのようにエラーがセットされるんでしょうか。
○recvmsg()でエラー情報を吸い上げるサンプルコードの載っている
サイトをご存知の方は教えてください。
よろしくお願いします。
0563デフォルトの名無しさん
2011/09/19(月) 03:47:33.330564デフォルトの名無しさん
2011/09/19(月) 03:50:48.14どうして肝心のrecvのエラーを書かないのか
0565全然動かないよーー
2011/09/19(月) 05:00:32.36recv()のエラーは戻り値-1です。
0566デフォルトの名無しさん
2011/09/19(月) 05:02:34.96エラー発生時のerrnoの値は?
0567デフォルトの名無しさん
2011/09/19(月) 05:30:51.330568デフォルトの名無しさん
2011/09/19(月) 05:48:05.570569デフォルトの名無しさん
2011/09/19(月) 13:54:55.59send関数recv関数
2つ送って1つめより大きなバッファでrecvしたら2つめもついてくることあるんですか?
0570デフォルトの名無しさん
2011/09/19(月) 16:07:31.16ある
0571デフォルトの名無しさん
2011/09/19(月) 17:19:28.12えっ><
自分で切り分けなきゃだめってことですか><
鯖からsendで16byteと12byteのデータが送られたときに、そのパケットが2つとも到着してる状態でrecvで24byte読み出したら最初の16byteと、次の12byteの最初の8byteが引っ付いた状態で読み出されるんですか><
逆に鯖から8byteのデータが送られたときに読み出すタイミングによっては4byteしか届いてなかったりしますか?
TCPです><
0572デフォルトの名無しさん
2011/09/19(月) 17:20:26.980573全然動かないよーー
2011/09/19(月) 17:33:56.47errnoのとり方が分かりません。
断片的な知識はあるのですが、うまくいきません。
>>562の質問についても助言をお願いします。
0574デフォルトの名無しさん
2011/09/19(月) 17:50:27.97#include <errno.h>
#include <string.h>
int ret = recv(/*略*/);
if (ret == -1) {
printf("recv() failed: errno = %d (%s)\n", errno, strerror(errno));
}
errnoやstrerror()についてはググッて。
0575デフォルトの名無しさん
2011/09/19(月) 18:23:26.31ありがとうございます><
頑張ります><
0576デフォルトの名無しさん
2011/09/20(火) 00:45:14.61パケットフィルタで蹴られましたとか言ったら殺す。
0577デフォルトの名無しさん
2011/09/20(火) 02:16:11.560578デフォルトの名無しさん
2011/09/20(火) 12:21:46.46それは無いだろ。それなら届かないからそもそもエラーにならない。
0579デフォルトの名無しさん
2011/09/20(火) 14:17:18.53TorっていうP2P匿名ソフトはSocksに対応してるんだよな
ローカルのソフトの通信を全部Torに投げてやれば自動的にすべてのソフトを匿名で利用出来る
そして俺にはそのやり方の知識と、既に作ったソフト群がある
これ作ったらたぶん革命的だろうな、特にファイル共有関連とかな
が作る時間がない
アイデアだけ託すから誰か作ってみるといい
0580デフォルトの名無しさん
2011/09/20(火) 15:41:59.350581デフォルトの名無しさん
2011/09/20(火) 19:32:49.640582デフォルトの名無しさん
2011/09/20(火) 23:21:57.280583動いたよーー
2011/09/21(水) 11:29:58.67動きましたーっ☆
>>576,>>577
その通りでした。
ファイアウォール設定でごく一部のポートしか開いてませんでした。
それが原因でした。助かりました、ありがとうございます。
>>578
実は、訳あってノンブロックにしていたので、制御が戻り、
-1を返していました。
0584デフォルトの名無しさん
2011/09/21(水) 12:05:08.84>>567のとおりだったわけか
0585デフォルトの名無しさん
2011/09/21(水) 13:33:00.920586デフォルトの名無しさん
2011/09/21(水) 14:04:40.710587デフォルトの名無しさん
2011/09/21(水) 15:29:37.40だから馬鹿なんだよ
0588デフォルトの名無しさん
2011/09/21(水) 17:06:42.20喜びのレスありがとう
0589デフォルトの名無しさん
2011/09/21(水) 17:40:28.94ここの管理人アホだから手助けして
0590デフォルトの名無しさん
2011/09/21(水) 22:14:20.60同意w
0591デフォルトの名無しさん
2011/09/24(土) 00:48:30.65ネットワークプログラミングについても勉強してみたいな、と思ったのですが
そういう状況だと入門書としては「猫でもわかるネットワークプログラミング」辺りでよろしいでしょうか
0592デフォルトの名無しさん
2011/09/24(土) 13:33:35.47から好きなの読めば
0593デフォルトの名無しさん
2011/09/24(土) 13:48:56.26UNIXネットワークプログラミングvol1と、あとは適当な薄い本買っとけ。
0594デフォルトの名無しさん
2011/09/29(木) 01:09:29.28受信側が1、2、4という順番で受信したときに3のデータがロストしたのか4の後に来るのか判断する方法ってある?
3がくるのをちょっと待ってみるか、2の次に4を受信した時点で3の再送を要求するしかない?
0595デフォルトの名無しさん
2011/09/29(木) 08:05:15.55>4の後に来るのか判断する方法ってある?
ない。
>3がくるのをちょっと待ってみるか、2の次に4を受信した時点で3の再送を要求するしかない?
うん。
0597デフォルトの名無しさん
2011/09/29(木) 11:38:51.77ストリーミングで行われているケースあり。
0598デフォルトの名無しさん
2011/10/16(日) 18:09:31.09情報少ないけどどうしてますか?
0599デフォルトの名無しさん
2011/10/16(日) 18:27:54.190600デフォルトの名無しさん
2011/10/16(日) 18:36:58.08そうでもない
0601デフォルトの名無しさん
2011/10/16(日) 18:38:32.12少ないかもな
0602デフォルトの名無しさん
2011/10/16(日) 18:54:33.92実装の参考になるサイトはないよね。
0603デフォルトの名無しさん
2011/10/16(日) 19:02:15.18TCP-MD5ってよくしらないんだけど、そんなにみんなが実装したがるものなの?
>>598ってちまたによくある「ソケットの使い方」みたいなものを指してると思ってた。
0604デフォルトの名無しさん
2011/10/16(日) 22:28:06.21# RFC も読めないような低能はネットワークプログラミングするな
# 迷惑だ
0605デフォルトの名無しさん
2011/10/17(月) 14:23:16.79Windows側でソケットを正常に閉じて終了した際、
Linux側のソケットでrecvしても返り値が0以下(エラー)になりません。
接続をしたままでWindows側のプログラムを強制終了するとLinux側のrecvはちゃんとエラーを返してくれます。
なぜでしょうか?
そしてLinux側でWindows側のソケットが正常終了したことを知るにはどうしたら良いでしょうか?
ノンブロッキングモードです。
0606デフォルトの名無しさん
2011/10/17(月) 17:32:52.11closeはしたけど、shutdownはしてないとか?
0607604
2011/10/17(月) 20:06:20.06ありがとうございます。
シャットダウンしてなかったのでshutdown(sock,2)してみましたが変わりませんでした。
タイムアウトの判定組み込んで何とかします・・・
0608デフォルトの名無しさん
2011/10/17(月) 21:21:09.69エラー返さないってそこいらじゅうに書いてあるじゃん
戻値0の場合, EOF とも
0610デフォルトの名無しさん
2011/10/18(火) 00:50:03.940611デフォルトの名無しさん
2011/10/18(火) 01:17:51.53重要な情報だろ。おかげで>>609も気づきを得た
0612デフォルトの名無しさん
2011/10/18(火) 15:43:49.592chは初めてか? 肩の力抜けよ
0613デフォルトの名無しさん
2011/10/18(火) 19:03:52.22ひとこと余計。だって言われない?きみ
ひとこと余計だって。言われない?きみ
ひとこと。余計だって言われないきみ。
0614デフォルトの名無しさん
2011/10/18(火) 22:33:33.33「安易に答えを教えず自分で調べさせろ」って意味?
0615デフォルトの名無しさん
2011/10/19(水) 00:11:37.080616デフォルトの名無しさん
2011/10/19(水) 10:10:21.69ちゃんとメディアに取り上げられた方が勝ち。
2ちゃんなんて、どうせネトウヨが荒らしに来るだけでしょ。
普通の人が使うネット情報は、ツイッターやフェイスブックの方がメインになってきている。
流行ってるし、コミュニケーションがうまく取れない人は入り込めないから、
ネトウヨがグチグチ文句言ってるでしょw
もはや、2ちゃんは、ネットの中でも上手くやっていけないタイプの人が流れ込んで来る場所でしかないんだよ。
だからデモ関係など人を集めたい場合は、2ちゃんは使わない方が良いんだよ。
0617デフォルトの名無しさん
2011/10/19(水) 14:54:07.060618デフォルトの名無しさん
2011/10/20(木) 17:06:52.07ちょっとまて33時ってどゆこと?
0619デフォルトの名無しさん
2011/10/20(木) 18:48:53.61ネタなんだよ。
0620デフォルトの名無しさん
2011/10/21(金) 19:48:42.440621デフォルトの名無しさん
2011/10/24(月) 00:25:35.00相手は一応ソフト関係を大学で勉強はしたがネットワーク関係はさっぱりという連中、
ソフトを扱っていたというレベルもちょと不安なところ
ネットワーク関連の組み込みアプリケーション(DLNAとか)の
設計ができるところまで育てる必要があるのだが
さて、どこから教えたものか?
とりあえずOSI参照モデルあたりの説明でもしとけばいいのか??
自分が独学なだけにどうしたらいいのかよく分からん、助言あれば頼む。
0622デフォルトの名無しさん
2011/10/24(月) 00:33:28.87逆に考えるんだ。DLNAを作れるという到達目標が明確なら、
そのために必要な前提知識を洗い出す。
・・・で、さらにその前提知識を洗い出す。
これを生徒の現在のレベルであろうという場所まで繰り返す。
それが教えなければならない項目のリストだ。
生徒の現在のレベルについては、事前にペーパテストでもやっておくと良い。
事前にテストとか出来ないなら、とりあえず優しいレベルからスタートして、
生徒の顔色を見ながら知ってそうならすっ飛ばすことになる。
0623デフォルトの名無しさん
2011/10/24(月) 00:36:30.28課題となるアプリを決めて環境構築から設計、実装までを新人といっしょにやってみるのが一番じゃね。
0624デフォルトの名無しさん
2011/10/24(月) 01:10:08.08>>623
なるほど、とりあえず軽くテストしてレベルを調べるってことをやると
ある程度方針が決まるかもですね
そこで基礎固めがある程度できたら、
実際のシステム構築をやらせてみて
その都度必要な知識についてこちらから説明するなり
自分で調べさせるなりすれば身につきやすいか
何となくイメージができてきました。
0625デフォルトの名無しさん
2011/10/24(月) 02:59:19.70大学の授業でちょこっとやっただけの奴らって大丈夫かって思う。
特にデバッグ力、設計力に圧倒的な差が出る
0626デフォルトの名無しさん
2011/10/24(月) 23:16:41.55popサーバにアクセスして、新着メールを取得するプログラムを作りたいのですが、
接続〜取得まではうまくいきましたが、メールをフォルダわけしている場合に、
"受信フォルダ"←ルート?のメールしか取得できません。
条件で振り分けている他のメールも取得したいのですが、行き詰まってしまいました。
よい方法がわかるかたがいらしたら回答よろしくお願いします。
言語はC#で、listやstatを投げても、ルートディレクトリのメールしか取得できない状態です。
0627デフォルトの名無しさん
2011/10/24(月) 23:29:59.76POPじゃどうにもならないだろ。
素直にIMAP4使え。
0628デフォルトの名無しさん
2011/10/25(火) 00:30:13.88俺は大学に入ってから初めてプログラミングに触れた人間だが
大学の授業でやったレベルだと全く役にたたんね
設計力・コーディング力以前にソフトウェア的な概念自体さっぱり身につかない
教科書見てこう書けばこう動くだけだからねぇ
やっぱり、学習と言うより経験が重要だからOJTが一番身につくのかなぁ
0629デフォルトの名無しさん
2011/10/25(火) 00:52:13.230630デフォルトの名無しさん
2011/10/25(火) 01:46:48.27ベーマガ読んで倉庫番作れ。
それがもっとも早道だ。
0631デフォルトの名無しさん
2011/10/26(水) 20:17:30.05C++でwinsockのUDPのプログラミングを行っています。
C/S共にsendtoとrecvfromを利用しているのですが、
まれにC/S共にrecvfromでブロックされて、それ以後の送受信が行えない事象が発生します。
sendtoでエラーは出ていませんでした。
�@サンプル通りに作ったのですが、こういった事はありうるのでしょうか?
�Aこれはどのように回避すべきでしょうか?
recvfrom関数をノンブロッキング関数にする事はできるのでしょうか?
分かる方、お願いします。
0632631
2011/10/26(水) 21:02:27.21�Aは解決しました。
サーバーで利用する関数を sendto recvfrom
クライアントで利用する関数を sendto recv にして、
Ulong uloVal = 1;
ioctlsocket(socket, FIONBIO, &uloVal);
上記設定を行った所、ノンブロッキング処理が行えるようになりました。
しばらくコレで様子をみます。
0633デフォルトの名無しさん
2011/10/26(水) 21:36:42.51UDP って, 仕様的に 「必ず届く保証がない」 ってのは知ってる
0634デフォルトの名無しさん
2011/10/26(水) 21:56:16.42Yes, I know.
0635631
2011/10/27(木) 07:33:40.59知ってました。。。確かにそうですね。
教科書のサンプル通りに組んだんですけど、教科書にも間違いがあるんですね。
お陰さまで解決できました。
ありがとうございました。
0636デフォルトの名無しさん
2011/10/27(木) 10:11:02.18自分で考える脳みそがないのを教科書のせいにすんな
0637デフォルトの名無しさん
2011/10/27(木) 10:55:53.61と同じようなものだよ。
とりあえず空気抵抗を考えるのは次のステップで
まずは基本を抑えておけと言う
0638デフォルトの名無しさん
2011/10/28(金) 13:23:28.050639デフォルトの名無しさん
2011/10/28(金) 17:18:25.07基本を押さえたら あとは実践あるのみだよ
0640デフォルトの名無しさん
2011/10/28(金) 22:19:13.970641デフォルトの名無しさん
2011/10/28(金) 22:58:25.160642デフォルトの名無しさん
2011/10/30(日) 14:27:50.51システムでの合計最大量を制限する方法ってなかったっけ。
物理メモリの何%までとかいう感じのがあったような記憶があるんだが。
0643デフォルトの名無しさん
2011/10/31(月) 10:25:11.14無い。
ソケットごとのバッファサイズや開けるファイルの数なら設定できるから
それらの掛け算で上限を決めることは出来る。
0644デフォルトの名無しさん
2011/10/31(月) 11:39:42.32B・C間のデータのやりとりってAを介して行うもの?
それともBとCにお互いの宛先を教えて直接やりとりさせるもの?
0645デフォルトの名無しさん
2011/10/31(月) 12:22:29.490646デフォルトの名無しさん
2011/10/31(月) 12:42:58.47だから、AB BC CA間全てでやりとりさせるな
簡単にするなら、BとCはインターフェースとしての役割にして(つまり、キーの入力とかをそのままAに投げる)
Aだけでゲームの処理をする
0647デフォルトの名無しさん
2011/10/31(月) 12:50:53.31どちらでも好きに。それぞれメリットデメリットはある。
特定のPCをホストにする場合、そのPCがボトルネックになる。
その代わりに作りやすい。
P2Pにしてもいいけど、各PCごとに持っている各PCの状態が事なってたり
する可能性があるので、作るのは難しくなる。
0648デフォルトの名無しさん
2011/10/31(月) 12:53:03.80他のゲームがどうやってるか考えたら何がわかんの?
0650デフォルトの名無しさん
2011/10/31(月) 16:47:49.12いろいろわかる
0651デフォルトの名無しさん
2011/11/02(水) 01:19:33.72ひよっこC++プログラマーで、まず1:1通信を勉強し、いずれはサーバーを置いて2秒おき程度に通信しあって仮想空間を実現したい者です。
ネットワーク系書籍で、様々なプロトコル、ネットワークを実現する機器の構成、ネットワークを実現する技術のあらまし、OSI参照モデルなどの勉強はしたのですが、
ネットワークプログラミングの勉強をしようと書籍を読むと、いきなりPCを2台準備しなければ困難 と書かれており立ち往生しています。
やはりPCが2台無いと勉強はできないものなのでしょうか?
また、個人でなるべく手間をかけずに実現できるのはどの程度で、どれ以上は個人では無理が出始めるのでしょうか?
メンテナンスやセキュリティの技術が無ければ仲間内の小さなお遊び程度に留めるべきなのだろうなぁとは思っているのですが…。
良い勉強方、今、そして今後知るべき/読むべき書籍などの誘導をして下さると幸いです。 よろしくお願いします。
0652デフォルトの名無しさん
2011/11/02(水) 01:46:04.80ネットワークとは何か勉強しなおそうぜ♪
0653651
2011/11/02(水) 01:54:14.06擬似的2台にみせかけて勉強するとかも困難なものなのですね・・orz
友人にプログラムを送って手伝ってもらうなりしないとなのでしょうか。 少し復習してみます。。
0654デフォルトの名無しさん
2011/11/02(水) 02:37:46.15http://www.geekpage.jp/programming/
ここにあるような、初歩的なものなら1台で実験できる。
0655デフォルトの名無しさん
2011/11/02(水) 02:46:19.07本当にその本に「PCを2台準備しなければ困難」と書いてあるなら、
書名をさらして今すぐ捨てろ
0656デフォルトの名無しさん
2011/11/02(水) 04:02:01.93端末を二つ開いて、一つをサーバーに、一つをクライアントにすれば、たいていの場合同一マシンでも確かめることができます。
あとそんな方法でさえも教えてくれないというその書籍の名前を教えてください。
0657651
2011/11/02(水) 04:02:52.92オンラインゲームプログラミング という本だったと思います。
PC2台ないと解説についてこれなくなるという標記に肩を落とした記憶が・・。
>>654
ありがとうございます・・! 初歩的・・でもとにかく感触だけでも知りたいので色々試して学んでみようと思います。感謝っ
0658デフォルトの名無しさん
2011/11/02(水) 06:41:06.34それはネットワークの都合では無くて、
ゲームの都合でついてこれなくなるんじゃね?
0659デフォルトの名無しさん
2011/11/02(水) 09:49:45.31ttp://www.amazon.co.jp/dp/4797328479/
0660デフォルトの名無しさん
2011/11/02(水) 09:57:12.03こういう系のプログラム作るなら、9割りがた一発で通せるレベルじゃないと
0661デフォルトの名無しさん
2011/11/02(水) 10:30:00.68TCP/IPプログラミング徹底解説 Jon.C.Snader著
0662デフォルトの名無しさん
2011/11/02(水) 17:32:56.340663651
2011/11/02(水) 18:18:59.081台のPCでも確かめられるんですね; ありがとうございました;
>>658
そういう意味だったのですかね、、 10ページ程は無理に読み進めてみたけれどこんがらがって挫折してました;
>>659
おそらくそれです。
>>660
初心者では無いですが、中級者とも言えないひよっこです; なんとか頑張ります;
>>661
オンラインゲームで不具合だらけのパッチが来るのはそこが原因なのでしょうか。
654さんのURLから始めて2プログラム間のやり取りを試せて嬉しい反面、
やはり実際に外とやってみないと動作保障は無いと思った方が良いのですね・・。ありがとうございましたー;
0664デフォルトの名無しさん
2011/11/02(水) 21:54:47.98> ネットワークスペシャリスト
うちの会社のもいるけど, 現場じゃ, 全然つかえねぇじゃんw
0665デフォルトの名無しさん
2011/11/02(水) 22:09:21.000666デフォルトの名無しさん
2011/11/03(木) 07:08:47.07持っていない奴等の中から本当に使える奴を探すよりも、
持っている奴等の中から探したほうが、ずっと早いし確実
0667デフォルトの名無しさん
2011/11/04(金) 10:32:30.91教えてできるかどうかわからない奴らよりはずっと信用できる(人間性を除く)
たまに面接前に応用技術の過去問やらせる会社とかあるけど
流石にあれは何を求めてるのかわからん
資格持ってる奴でも普段そういう仕事やってなきゃできるわけねーのに
0668デフォルトの名無しさん
2011/11/04(金) 10:40:04.110669デフォルトの名無しさん
2011/11/04(金) 11:39:28.84http://yuina.lovesickly.com/wp-content/uploads/2008/11/captcha1.jpg
0670デフォルトの名無しさん
2011/11/04(金) 11:40:32.66俺が受かったときは6%くらいだったのに。
0671デフォルトの名無しさん
2011/11/04(金) 11:40:33.75普段そういう仕事やってる香具師を採りたいんだろ
なんで変数が x しかないのに∂なんだ?
0673デフォルトの名無しさん
2011/11/04(金) 12:55:06.580674デフォルトの名無しさん
2011/11/04(金) 13:36:30.86それなら募集要綱に書くだろ
0675デフォルトの名無しさん
2011/11/04(金) 21:28:11.250676デフォルトの名無しさん
2011/11/05(土) 04:03:48.60PC_A --- モデム --- インターネッツ --- モデム --- PC_B
な構成だと普通にSENDで期待通りにデータが到達するのに
PC_A --- モデム --- インターネッツ --- モデム --- ブロードバンドルータ --- PC_B
という構成にすると
PC_Aがリスン状態でPC_BがPC_Aに接続することはできるのに
どちらからSENDしても相手にデータが到達しないっていう
ブロードバンドルータ的にはDMZに登録してない限り外部からのデータは受信しないと聞いているけど
それならせめて送信はできてもいいと思うんだけどNAT的にデータが到達しないのが正しい挙動なのでしょうか?
0677デフォルトの名無しさん
2011/11/05(土) 06:37:34.31いいえ。
0678デフォルトの名無しさん
2011/11/05(土) 07:02:49.520679デフォルトの名無しさん
2011/11/05(土) 09:38:56.15でもネットワークスペシャリストを取得した人間なら
こんな基礎はしっかり頭に入ってる。この違いがでかい。
0680デフォルトの名無しさん
2011/11/05(土) 13:15:28.190681デフォルトの名無しさん
2011/11/05(土) 14:01:39.420682デフォルトの名無しさん
2011/11/05(土) 14:21:42.43もちろんできるよ。
0683デフォルトの名無しさん
2011/11/05(土) 14:25:28.850
0684デフォルトの名無しさん
2011/11/05(土) 19:45:07.710685デフォルトの名無しさん
2011/11/05(土) 22:31:51.97全部解放でいいじゃん。
0686デフォルトの名無しさん
2011/11/06(日) 00:45:28.10まあ試しに開放で・・・。
0687デフォルトの名無しさん
2011/11/06(日) 01:25:56.850688デフォルトの名無しさん
2011/11/06(日) 02:42:34.88チャッチャと作って問題おこるころにバックレている方がずーっと賢い。
0689デフォルトの名無しさん
2011/11/06(日) 02:59:24.210690デフォルトの名無しさん
2011/11/06(日) 03:04:32.50それは賢いプログラマーだと思うが・・・。
0691デフォルトの名無しさん
2011/11/06(日) 13:02:11.820692デフォルトの名無しさん
2011/11/06(日) 16:20:10.430693デフォルトの名無しさん
2011/11/06(日) 20:55:45.99スマートで済むものにインテリの見積もり費用吹っかけておいたらウマー
0694デフォルトの名無しさん
2011/11/08(火) 17:26:44.08それを理解できないうちはお金持ちにはなれんよ
0695デフォルトの名無しさん
2011/11/09(水) 12:15:36.040696デフォルトの名無しさん
2011/11/13(日) 21:16:35.85複数のパケットに分割されて送られてきたものを一つにまとめて解凍するとなぜか失敗します
何が原因でしょうか?
0697デフォルトの名無しさん
2011/11/13(日) 22:32:16.480698デフォルトの名無しさん
2011/11/14(月) 00:06:55.750699デフォルトの名無しさん
2011/11/14(月) 11:39:37.530700デフォルトの名無しさん
2011/11/14(月) 11:46:33.72content encodingと・・・encodingってあったような
content-lengthはcontentの長さ。圧縮後の長さだったような
rangeは忘れた
0701デフォルトの名無しさん
2011/11/14(月) 13:36:01.680702デフォルトの名無しさん
2011/11/18(金) 04:09:33.92ひょっとしてこれスイッチの負荷が物凄い?
マルチキャストは同軸ケーブル一本に乗っていた時代だからこそ容易に実装できたわけで。
0704デフォルトの名無しさん
2011/11/18(金) 21:38:36.330705デフォルトの名無しさん
2011/11/18(金) 23:05:29.88まぁな, スイッチのバックプレーンには確実に負荷がかかる
まぁ, その程度でアップアップするようなスイッチは捨てろ
ってな話もあるが... ... ...
0706デフォルトの名無しさん
2011/11/25(金) 03:55:09.69ユニ・マルチ・ブロードでのキャストの違いはなかったんだっけ。
今は賢いのが当たり前すぎて完全に忘れていた。
0707デフォルトの名無しさん
2011/11/29(火) 14:22:20.99クライアント側でサーバーにTCP/IPで接続した後、WSARecvでOverlapped IOして放置して、
で、例えば、WSASendでこちらは同期呼び出しで送信してる間に、サーバー側からデータ来た場合、
WSARecvの最後の引数で指定した完了ルーチンが呼び出されるのでしょうか?というか
こういう使い方はアリなんでしょうか?
0708デフォルトの名無しさん
2011/11/29(火) 14:48:31.100709デフォルトの名無しさん
2011/11/30(水) 10:09:57.72イメージ的には
iexplore.exe http://ahoo.com/hoge/index.html
firefox.exe http://googoo.com/sage/index.html
spy.exe http://spy.gr/~12345
などです
言語はVB,VCのどちらかでお願いします。
0710デフォルトの名無しさん
2011/11/30(水) 14:00:46.120711デフォルトの名無しさん
2011/11/30(水) 14:21:30.31netstat -b は不可能なんだ
0712デフォルトの名無しさん
2011/11/30(水) 14:23:48.450713デフォルトの名無しさん
2011/11/30(水) 14:24:10.450714デフォルトの名無しさん
2011/11/30(水) 15:00:46.920715709
2011/11/30(水) 16:28:21.12接続先IPアドレスだけだとちょと足りないんで。
昔のようなバカハブが安く売ってればいいんだけど、今逆に高くて・・・
0716デフォルトの名無しさん
2011/11/30(水) 16:36:20.240717デフォルトの名無しさん
2011/12/06(火) 11:32:27.58HTTPNetworkSniffer
http://www.forest.impress.co.jp/docs/review/20111205_494893.html
まさしくWinPcapでHTTPをキャプチャする
0718デフォルトの名無しさん
2011/12/29(木) 15:57:22.25「ホスト側はポート●●番を開放して下さい」とよく表記されています
ホスト側はあけたポートでデータを受信しているのはわかりますが
クライアント側は一体どうやってデータを受信してるのでしょうか?
丸一日ほど探したのですが見つからないので質問させて頂きます
0719デフォルトの名無しさん
2011/12/29(木) 15:59:32.290720デフォルトの名無しさん
2011/12/29(木) 16:04:47.53TCPならクライアント側のポートはOSなどが決定する。
・クライアントが通信を開始する
通信用のポートをOSに要求
・そのポートからサーバの決められているポートにデータ送信
このときサーバはクライアントはどのポートからデータを送ったのかも通知している
(TCPの仕様でポート番号もヘッダに含まれるから)
・サーバはクライアントのポートに対してデータを返す
・サーバから、もしくはクライアントから接続を切る
要するに、クライアント側は出口を「返事の入り口として開けて待っている」という状態。
0721デフォルトの名無しさん
2011/12/29(木) 16:41:30.21ウソ教えんなよ。雑魚。
0722デフォルトの名無しさん
2011/12/29(木) 16:53:36.80TCPではとのことですけど
やっぱりUDPでは不可能なのでしょうか?
何か回避策などあったりするんですか?
0723デフォルトの名無しさん
2011/12/29(木) 18:58:09.85何が不可能なんだ?
何を回避したいの?
0724デフォルトの名無しさん
2011/12/29(木) 19:53:28.922chの専ブラを制作しているのですが、cookieの管理で悩んでいます。
cookieの仕様書通りに管理するプログラムを書いたのですが、
書き込み時に、PON=????の文字列が一番最初に来ないと書き込めませんでした。
ex) PON=...; HAP=... OK
HAP=...; PON=... BAD
仕様書によると、pathは優先度が変わりますが、domainはその詳細に順位が関係しないはずです。
俺が知らない何かがあるのでしょうか。
0725デフォルトの名無しさん
2011/12/29(木) 20:20:17.440726デフォルトの名無しさん
2011/12/29(木) 20:29:26.13なるほど。でも、これだけ大規模なのに?
0727デフォルトの名無しさん
2011/12/29(木) 20:30:46.67すみませんUDPでも
0728718
2011/12/29(木) 20:33:07.64すみませんUDPでも
ホスト側でクライアント側のIPやポート番号を取得することができました。
しかしホスト側でそのIPとポート番号を元に
クライアント側にデータを送信してもうまく受信できません
何故失敗するのでしょうか?
0729デフォルトの名無しさん
2011/12/29(木) 20:49:50.82お前が試行錯誤ででっち上げたクソコードの動作の予測なんてできるわきゃねーだろ。
0730デフォルトの名無しさん
2011/12/30(金) 00:17:59.99同一コネクションでも?
0731デフォルトの名無しさん
2011/12/30(金) 03:46:44.88クライアント側でconnect()でもしてなきゃ無理だよ。
0732デフォルトの名無しさん
2011/12/30(金) 07:12:22.76パケットキャプチャのソフト(ワイヤシャークとか)で、パケットが届いてるか確認してごらんよ。
あとはサーバとクライアントでプログラム入れ換えたらつながるか
0733デフォルトの名無しさん
2011/12/30(金) 07:37:51.65ポート開放とか書いてたけど、もしかしてそれNATルーターの話か?
エスパーすると、サーバー側で受信したそのソケットから返信してないとか?
0734718
2011/12/30(金) 19:32:14.69サンプルは色々探しているのですがUDPを使用したクライアントとホストの相互通信で
ホストのみがポート開放をする例のサンプルが見つからずに苦戦しております
●ホスト側
・準備
�@受信用のUDP用socketを作成する
�A受信用に使うsockaddrを作成する(ポート▲番指定)
�B送信用のUDP用socketを作成する
・受信
�@bindで受信用socketを結びつける
�Arecvfromで受信用socketからデータを取得する
�B上記の処理で手に入ったポート番号とIPで送信用socketを設定する(ポート■番がわかる)
・送信
�@sendtoで送信用socketを使う
●クライアント側
・準備
�@送信用のUDP用socketを作成する
�A送信用に使うsockaddrを作成する(アドレス・ポート▲番指定)
�B送信用のsocketをconnectする
・受信
�@bindで受信用socketを結びつける
�Arecvで受信用socketからデータを取得する(■失敗する■)
・送信
�@sendtoで送信用socketを使う
Q1・クライアントでホストがポート何番に返信されたかが不明なので受信は不可能なのか
Q2・UDP通信でconnect()は本来の用途ではないと書かれていたのですが正しいのか
0735デフォルトの名無しさん
2011/12/30(金) 19:57:09.52ホスト側、クライアント側ともに「送信用ソケット」と「受信用ソケット」を使わない。
1つのソケットを送信、受信で共用する。
ホスト側にUDPが届く設定ができているなら、これで送受信できるはずだ。
0736デフォルトの名無しさん
2011/12/31(土) 00:12:52.06普通ソケットは、同一マシン送受信で1個で設計する。
サーバ側 7001
クライアント側 7001 (分かりやすくするため7011とかもok)
まあ送信用と受信用で別にしても作れる。その場合は、同一マシン内はポートを別にする。
例えば、
サーバ 受信 7001
サーバ 送信 7002
クライアント 受信 7001 (7011とかもok)
クライアント 送信 7002 (7012とかもok)
送信で相手ポートを指定するのに、sendじゃなくsendtoするんだからconnectは不要。
自分のポート指定は全部bindで行ける。
前の人も言ってるとおりまともな教科書買えよ。スレのアタマ見たか?
0737デフォルトの名無しさん
2011/12/31(土) 00:25:06.581方向の1通信で、送信元ポートと送信先ポートがあるんだぞ。
サーバ側プログラムでrecvfrom 呼ぶときお前が指定すべきなのは、クライアント側の送信元ポート。どの送信元ポートでも受け付けるならanyaddrを指定する。
呼んだあとで取得できるのは、サーバのどのポートに届いたか(送信先ポート)であって、送信元ポートじゃない。普通はbind済みで自明なので、そんなの見る必要ない。
0738デフォルトの名無しさん
2011/12/31(土) 00:26:08.920739デフォルトの名無しさん
2011/12/31(土) 00:34:38.820740デフォルトの名無しさん
2011/12/31(土) 00:48:08.96サーバー側が recvfrom で受け取ったアドレスをまんま使って sendto しないのはなぜ?
以下じゃだめな宗教的理由でもあるの?
recvfrom(s, rb, sizeof rb, 0, (struct sockaddr*)&a, &l);
/* 何かの処理, aとlの内容はつつかない */
sendto(s, sb, sizeof sb, 0, (struct sockaddr*)&a, l);
0741デフォルトの名無しさん
2011/12/31(土) 01:00:31.54そうなのですね勉強になります
0742デフォルトの名無しさん
2011/12/31(土) 01:02:28.41>>737
そうなのですね勉強になります
anyportについて検索してみても資料が出てこなかったので別の言い方とかありませんか?
>>740
わかりにくくてすみません
ちゃんとプログラム側ではそう実装しておりました
0743デフォルトの名無しさん
2011/12/31(土) 02:19:42.46どっちが本当なのよ?
0744デフォルトの名無しさん
2011/12/31(土) 09:48:53.300745デフォルトの名無しさん
2012/01/03(火) 02:28:39.890746デフォルトの名無しさん
2012/01/03(火) 04:27:43.30C++やjavaでtcp通信用のソケットを生成して通信する場合、
生成から破棄まで、特殊なことをしない限りは、通常は通信相手は固定ですよね?
0747デフォルトの名無しさん
2012/01/03(火) 12:22:11.25まぁそうだね。
自分が特殊な事をしなかったとしても、経路上にある機器や、
通信相手が特殊な事をしていないとは限らないけどな。
0748デフォルトの名無しさん
2012/01/03(火) 13:39:18.520749デフォルトの名無しさん
2012/01/03(火) 13:43:20.100750デフォルトの名無しさん
2012/01/03(火) 18:55:54.44口実を手に入れたつもりになっているんだろう。
0751デフォルトの名無しさん
2012/01/03(火) 19:29:52.810752デフォルトの名無しさん
2012/01/08(日) 18:29:24.53付けようとしていますが、うまくできません。
誰かIPv6でヘッダに拡張ヘッダを付加する方法を知りませんか?
0753デフォルトの名無しさん
2012/01/08(日) 19:58:02.600754デフォルトの名無しさん
2012/01/08(日) 22:00:57.570755デフォルトの名無しさん
2012/01/23(月) 11:13:35.01用途は、VC++で作った自前のアプリからrsh.exeを呼んで、サーバのシェルを実行し、その結果を取得したい。
無償、有償は問わない。rshクライアントのソースコードでも構わない。
0756デフォルトの名無しさん
2012/01/23(月) 15:13:45.92100万/納期1か月で作ってやるよ。
0757デフォルトの名無しさん
2012/01/23(月) 15:21:05.56Cygwin使えば?
0758デフォルトの名無しさん
2012/01/23(月) 15:45:27.561か月とかw
>>757
論外
誰かまともなレス頼む
0759デフォルトの名無しさん
2012/01/23(月) 15:46:28.59どうしてCygwinのrsh.exeは論外なの?
0760デフォルトの名無しさん
2012/01/23(月) 16:16:17.75そんなに複雑なコードじゃなかった記憶があるし
0761デフォルトの名無しさん
2012/01/23(月) 16:48:32.78CygwinのrshってVC++からコールして使えるの?
あとCygwinって商用利用とかダメだった記憶が。調べてないけど
あくまでもrsh単体を自前のアプリに含めて商用利用したい
一応売り物なんでどこぞの怪しい物は使いたくない
0762デフォルトの名無しさん
2012/01/23(月) 17:33:51.75コマンドラインアプリなんだから普通に使える
GPLなので商用利用は問題なくできる
ソース公開義務はrshにのみ発生する
0763デフォルトの名無しさん
2012/01/23(月) 18:59:19.290764デフォルトの名無しさん
2012/01/23(月) 19:10:22.600765デフォルトの名無しさん
2012/01/24(火) 16:31:41.70PuTTYのplink.exe使うと良いよ。
0766デフォルトの名無しさん
2012/01/24(火) 16:55:59.720767デフォルトの名無しさん
2012/01/24(火) 17:02:24.09Googleの検索結果
約 31,200,000 件 (0.13 秒)
0768デフォルトの名無しさん
2012/01/24(火) 17:04:08.41http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
0769デフォルトの名無しさん
2012/01/24(火) 17:10:40.8825万1週間ならどう?
0770デフォルトの名無しさん
2012/01/24(火) 17:12:33.960771デフォルトの名無しさん
2012/01/24(火) 17:16:23.00人月いくらでやってるITドカタには、こんなレベルの奴腐るほどいるよ
0772デフォルトの名無しさん
2012/01/24(火) 17:20:34.26そこらへんの主婦でも書けるもんな
アセンブラからC#みたいな今風のやつまで全部できる奴が欲しい
あと、大規模なプログラムも設計できて、他人のコード読めて、数学ができて、コードが速く簡潔に書ける奴
俺のことだけど
まあ、プログラミングの仕事したこと無いんだけどさ
0773デフォルトの名無しさん
2012/01/24(火) 17:21:23.110774デフォルトの名無しさん
2012/01/24(火) 17:37:33.22俺もできる。
ついでのハードもできる。
0775デフォルトの名無しさん
2012/01/24(火) 17:40:09.010776デフォルトの名無しさん
2012/01/24(火) 19:09:21.940777デフォルトの名無しさん
2012/01/25(水) 09:35:17.82C#のWCF、やってみたらなかなかよかったぞ。
オイラ、(多分ここの住人も同じと思うが)バークレーソケットをこのスレの頭にあるような本で学んだクチだ。
SolarisやLinux、HP-UX、win32等の仕事で大いに役に立ったが、あのAPIっていまいち「イケてない」感があると思っていた。
RPCエンコとかもXDR,NDR,SDR,...統一されてないし。
WCFはイマドキな(httpやxmlなど、ヤレヤレって思うような)感じだが、少し対象レイヤーが上で、API構成に「イケてる」感がある。
機会があったら毛嫌いせずやってみるといいよ
0778755
2012/01/25(水) 16:43:56.75仕方ないんでC++でRSHクライアント自作することにした
どこかRSHの詳しい通信仕様のせてるサイト教えろ
0779デフォルトの名無しさん
2012/01/25(水) 17:37:19.25アホなの?
0780デフォルトの名無しさん
2012/01/25(水) 18:38:50.55それは上のほうですでに判明している。
0781デフォルトの名無しさん
2012/01/25(水) 20:10:19.95多分オレに100万/納期1か月で依頼した方が安いと思うよ。w
ホレ、仕様。
http://linuxjm.sourceforge.jp/html/netkit/man8/rshd.8.html
0782デフォルトの名無しさん
2012/01/25(水) 20:25:47.49馬鹿じゃねえの
0783デフォルトの名無しさん
2012/01/25(水) 21:35:45.55だから100万出せって。w
0784デフォルトの名無しさん
2012/01/25(水) 22:31:12.970785デフォルトの名無しさん
2012/01/25(水) 22:32:34.89^^^^^^^^^^^^^^^^t の間違いだった
0786デフォルトの名無しさん
2012/01/25(水) 22:55:08.610787デフォルトの名無しさん
2012/01/25(水) 22:58:26.930788デフォルトの名無しさん
2012/01/25(水) 23:18:02.43実際楽だしな
httpsでパスつけりゃやりたいことはすぐ出来るしね
0789デフォルトの名無しさん
2012/01/26(木) 01:19:19.38荒らしをいつまでも構うのも荒らしです。
0790デフォルトの名無しさん
2012/01/26(木) 09:17:31.87多分無能上司の下で働く、上司に輪をかけた無能なのだろう。
0791デフォルトの名無しさん
2012/01/27(金) 06:17:43.65ちっさいちっさい視野でほざくなカスが。
特定の企業向けアプリケーションで、当然お客様にも了承済み。
ポートも開放してもらう。
ローカルエリアネットワーク内にアプリの乗った端末PCを入れて、
装置ワークステーション(以下W/S)に対して様々な通信処理を行う。
内一つの機能として、RSHを使用し、W/Sのシェルを実行して、
その結果を得る機能を提供している。
先日、RSHクライアントの仕様が掲載されている良い書籍を見つけました。
汎用的なRSHクライアントではなく、機能を限定した形で自作完了した。
以上、いろいろとご教授ありがとうございました。
徹夜明けなんで今から寝ます。
0793デフォルトの名無しさん
2012/01/27(金) 10:06:50.40まともな客:まともなSIer → (SIer)rshはやっぱダメですよね。(客)うんダメだね。
無知な客:まともなSIer → (SIer)rshはやっぱダメですよね。(客)そーなの? じゃやめとこう
まともな客:素人SIer → (SIer)rshでいいですね? (客)寝言言ってるんじゃねー、帰れ
無知な客:素人SIer → >>791
ロシアンクラッカーの踏み台候補が一つ増えたって事だな。
0794デフォルトの名無しさん
2012/01/27(金) 12:43:40.59今の時代、パケットのエンディアンてリトルに合わせたほうが多数が幸せな気がする。
最近のビッグ陣営ってどことどこなの?
0795デフォルトの名無しさん
2012/01/27(金) 13:29:29.22「パスワード無しのサーバーと同等ですが、いいですね。情シスにも
そのようなサーバを設置すると報告しておいてください。」と説明し
て了承受けたわけでもあるまい。
> 今の時代、パケットのエンディアンてリトルに合わせたほうが多数が幸せな気がする。
バカ? エンディアンが混在するなんて真っ平御免だ。
既存のネットワークと一切無関係な世界作るなら勝手に作れ。
0796デフォルトの名無しさん
2012/01/27(金) 13:40:37.020797デフォルトの名無しさん
2012/01/27(金) 14:13:14.040798デフォルトの名無しさん
2012/01/27(金) 14:27:34.50相手(サーバ)側の都合で、sh叩いてくれってのは今でもたまにあるが。
0799デフォルトの名無しさん
2012/01/27(金) 15:03:17.16rshでなくsshでやれ
といいたいんだと思うが、今時のrshはsshなのでどうでもいいかな
0800デフォルトの名無しさん
2012/01/27(金) 15:05:10.58IP層とかTCP層とかがビッグ代表格じゃね?
0801デフォルトの名無しさん
2012/01/27(金) 16:31:41.71え、そういう話?
なら、そう言えばいいのに。
0802デフォルトの名無しさん
2012/01/27(金) 21:03:24.95> 最近のビッグ陣営ってどことどこなの?
汎用機, power, 68k/coldfire, spark 辺りかな
# メモリーマップの左上が 0 番地な big の方がドキュメント書くときは楽
0803デフォルトの名無しさん
2012/01/27(金) 22:19:19.090804デフォルトの名無しさん
2012/02/01(水) 02:06:59.57良く落ちるスパークの綴りぐらいおぼえておいてくれよSPARCだよ
0805デフォルトの名無しさん
2012/02/09(木) 16:07:15.48WSARecvで受信した後、いろいろ処理してて次のWSARecvまでに
間があると取りこぼしちゃうみたいなんですけど
取りこぼさないようにする方法はないでしょうか?
0806デフォルトの名無しさん
2012/02/09(木) 16:09:45.790807デフォルトの名無しさん
2012/02/09(木) 16:17:41.59間を開けずに次のWSARecvを呼べばよいです。
0808デフォルトの名無しさん
2012/02/09(木) 17:37:48.750809デフォルトの名無しさん
2012/02/10(金) 08:34:51.98だめみたいです。あきらめます。
0810デフォルトの名無しさん
2012/02/25(土) 02:08:51.53adobeのRTMPにて映像のストリームと音源のストリームをサーバーに送信したいと思っています。
OSはWindowsでクライアント環境は.Net(C#で組もうと思っています)です。
FluorineFxというのを見つけたので、中のサンプルを動かして見て接続はできたのですが、その先が分かりません。
(Misc\RtmpClient\WindowsApplicationというのを動かしました)
映像のストリームと音源のストリームをサーバーに送る方法が分かる方がいらっしゃいましたらお願いします。
0811デフォルトの名無しさん
2012/02/26(日) 12:40:41.57> 今時のrshはsshなのでどうでもいいかな
油断禁物。普通に古典的なrshが入っているOSある。
0812デフォルトの名無しさん
2012/02/26(日) 13:26:57.910813デフォルトの名無しさん
2012/02/26(日) 13:58:26.64お前がかっこうわるい。反省しろ。
0814デフォルトの名無しさん
2012/02/26(日) 14:02:06.36http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/rtmp/pdf/rtmp_specification_1.0.pdf
ここらへん調べてからやろうぜ?
最近ショートカットする奴が多すぎる
ライブラリの使い方ばっかり上手い奴らな。そいつらに俺は駆逐されていくわけだ
0815デフォルトの名無しさん
2012/03/01(木) 16:37:28.68使い方だけ知って終わりにする奴が増えた気がする
0816デフォルトの名無しさん
2012/03/01(木) 16:56:23.74すべての人がすべてを知る必要は無い
0817デフォルトの名無しさん
2012/03/01(木) 20:09:58.760818デフォルトの名無しさん
2012/03/01(木) 20:33:02.01料理人が絶滅したらメシ食えなくなるかもな
そのころには料理ロボでもできてるかもしれんが
0819デフォルトの名無しさん
2012/03/01(木) 22:13:18.24悪習は蔓延する
0820デフォルトの名無しさん
2012/03/01(木) 22:22:29.640821デフォルトの名無しさん
2012/03/02(金) 13:02:12.73全てを調べろというのは無茶だ。
っていうかソレ言うと、このスレの存在意義が無くなる。
0822デフォルトの名無しさん
2012/03/02(金) 14:33:05.610823デフォルトの名無しさん
2012/03/03(土) 05:52:58.55君はwinsockの全てを知っているといいたいのだな。
0824デフォルトの名無しさん
2012/03/03(土) 09:31:12.800825デフォルトの名無しさん
2012/03/04(日) 03:12:14.21お らは わんと からん かw
一部だと解らんがな?
0826デフォルトの名無しさん
2012/03/04(日) 03:35:55.610827デフォルトの名無しさん
2012/03/04(日) 10:18:11.662chもレベルが下がったもんだ。
0828デフォルトの名無しさん
2012/03/07(水) 21:41:38.610829デフォルトの名無しさん
2012/03/08(木) 19:20:08.310830デフォルトの名無しさん
2012/03/08(木) 22:33:39.260831デフォルトの名無しさん
2012/03/08(木) 23:18:30.000832デフォルトの名無しさん
2012/03/09(金) 10:15:03.37思ってるだけじゃダメだろ!
その思いをもっと表現しろよ!
0833デフォルトの名無しさん
2012/03/17(土) 11:50:48.54239.255.255.6と受信設定した場合、239.255.255.6宛のマルチキャストのみ届くの?
それとも、239.255.255.2、4、6宛のマルチキャストがすべて届くの?
0834デフォルトの名無しさん
2012/03/17(土) 19:15:14.690835デフォルトの名無しさん
2012/03/17(土) 19:45:17.56joinしていれば239.255.255.6宛のマルチキャストのみ届く。
0836デフォルトの名無しさん
2012/03/18(日) 21:16:48.592と4はどこから出てきたのだ?
0837デフォルトの名無しさん
2012/03/18(日) 21:32:29.056からだろ
0838デフォルトの名無しさん
2012/03/18(日) 21:51:13.47192.168.0.255 & 192.168.0.X == 192.168.0.X
が成立すればブロードキャスト範囲に含まれる!とかそういう発想でもあったのであろうか?
0839デフォルトの名無しさん
2012/03/21(水) 16:26:23.89ってなんだっけか。 なんかあったよね?
0840デフォルトの名無しさん
2012/03/21(水) 16:56:29.820841デフォルトの名無しさん
2012/03/21(水) 19:56:16.010842デフォルトの名無しさん
2012/03/21(水) 21:19:42.75chinko.unko とかぜったい解決できないだろ
0843デフォルトの名無しさん
2012/03/22(木) 01:00:35.06は解決とは別問題だったような
0844営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 01:45:01.220845営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 02:54:25.17官僚が他人の金を盗んでしゃーしゃーと「年収7千万は問題ない」
などと国会答弁するんだから人権以前の問題だな
完全にトチ狂ってるw
0846営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 14:35:50.610847営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 09:51:35.77・送ったものが届かないかもしれない
・送った順番で届かないかもしれない
・受信されたものは受信側のPC内部で化けない限り正しい
・送られたパケットが重複して受信される事はない
0848営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 11:30:11.36それじゃ信頼性低いという用途であれば、
自分で信頼性を確保しましょう。
4. 重複します。
0849営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 12:08:40.85UDPってエラーパケットは闇に葬る仕様だと認識してますけど
どういう仕組みで重複するのでしょう?
0850営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 12:41:15.320851営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 12:53:26.45ありがとう!
Ethernetが大きなお世話をすることがあるのか。
0852営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 13:02:36.980853営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 13:11:55.420854営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 13:19:05.09え?
CRC合わなくなるんで破棄されて届かないんでは?
0855営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 14:20:22.560856営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 14:53:31.150857営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 15:24:49.90IPで使われるのが16bitのチェックサム
0858営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 15:50:29.940859営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 16:12:33.00たまたま運がよくて動いているプログラムが出来上がる。
0860営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 22:03:51.680861営利利用に関するLR審議中@詳細は自治スレへ
2012/04/02(月) 15:06:50.87IPやUDPの設計の基本は、
「(ルータ等が)こういう仕組みで〜してしまうことがあるから」ということじゃなくて、
ピアトゥピアのパケット転送で保証できないことは何も保証しないということ。
つまり中間がどんな馬鹿な経路であっても、(ただし邪悪"mal-functional"な経路は仮定しない)
端末と端末だけでできることのみ保証する。
これにより経路設計に自由度を与えている。その代わりにTCP層その他で頑張ってる。
この設計はEthernetから大きな影響を受けてる。
残念だけどこうなってしまったねということじゃなくて、
雑多なネットワークを様々な種類の経路で接続するための中間(inter-)ネットワークとして開発され、
自由度を最大限に発揮するために、理屈詰めで設計されている。
消極的ボトムアップ設計ではなくて、色々と概念整理した後の積極的トップダウン設計です。
0862営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 02:35:02.37ビット数から受ける印象よりも頻度高い。
0863営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 10:44:17.220864営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 11:33:05.82相手が何をしてきても平気なように作れ
自分の家から出たらみんな敵
0865営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 11:54:08.92RFC793にもそう書かれているな
0866営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 12:19:26.44あんなの最初作ったときに想定しろっつーの
0867営利利用に関するLR審議中@詳細は自治スレへ
2012/04/05(木) 16:44:02.72単に固定応答でかまいません。
ですがシングルタスクタイプはNG
検索したのは複雑のばかりでした。
0868営利利用に関するLR審議中@詳細は自治スレへ
2012/04/05(木) 16:45:16.64http://toro.2ch.net/test/read.cgi/tech/1215352849/
0869営利利用に関するLR審議中@詳細は自治スレへ
2012/04/05(木) 18:48:29.91有名なところ
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/examples/basics/
0870デフォルトの名無しさん
2012/04/13(金) 12:50:47.92ノンブロッキングで複数のクライアントを待ち受けるとき
select()を使うのとスレッドを使用するのはどちらがいいのでしょうか?
速度とか安全性とかそういう面も教えて頂きたいです。
0871デフォルトの名無しさん
2012/04/13(金) 13:53:06.930872デフォルトの名無しさん
2012/04/13(金) 13:53:53.990873デフォルトの名無しさん
2012/04/13(金) 15:24:12.81そんなん状況によるとしか言いようが無いだろ
なので、メインロジックはどっちの方法でも動くように書いとく
0874デフォルトの名無しさん
2012/04/13(金) 18:19:02.52aioも検討対象にしようぜ。
まあOSと言語によるが。
0875デフォルトの名無しさん
2012/04/13(金) 20:30:15.81スレッドが良くわかっているとすると
CPUコア数と同じスレッドとSelect()の組み合わせ
0876デフォルトの名無しさん
2012/04/14(土) 09:38:18.67複数クライアント同時処理したいとして、俺なら
select方式にするならシングルスレでブロッキングでやるし
マルチスレ方式にするならなおのことブロッキングでやるから
何言ってんのか分からん
unix 系とwindows では公式リファレンスが「非同期」と呼んでるものがズレてるからos分からんと混乱するし
作る気あるなら手動かしてから○○が上手く行かないと
聞くはずだし
覚えたての単語で書き込みたかっただけか?
0877デフォルトの名無しさん
2012/04/14(土) 13:02:03.67ソケットそのものはノンブロックにするのが基本だろ?
なに言ってんだ?
0878デフォルトの名無しさん
2012/04/14(土) 13:21:21.880879デフォルトの名無しさん
2012/04/14(土) 13:40:34.41何考えてるんだ
0880デフォルトの名無しさん
2012/04/14(土) 18:23:22.21ブロックしちゃってもまずくなければブロックのままで良いのでは?
0881デフォルトの名無しさん
2012/04/14(土) 18:35:04.00メインのスレッドが「accept()→別スレッドにブン投げ」くらいしか
やることがないなら、ブロッキングで充分じゃないか。
(クライアント数が少ない場合)
ブロッキングだと自分の側からスレッドを終了できないのがつらいところ(通信相手から QIET みたいなのを送ってもらう、とか取り決めておかないといけない)。
0883デフォルトの名無しさん
2012/04/14(土) 22:08:04.59例えばCPUが4コアなら4つのスレッドを立ち上げて
それぞれのスレッドでSelect()処理を行わせて多重化する。
0884デフォルトの名無しさん
2012/04/14(土) 22:44:38.84そのとき、select()で監視するソケットは各workerに振り分けるんだろうか?それとも共通なんだろうか?
常識的に考えて select() はひとつ、read() した結果をみてから各スレッドにわけるんじゃないかい?
0886デフォルトの名無しさん
2012/04/14(土) 23:20:23.15するのが普通かと思っていたが。
>>883も>>885もやり方違うんだな。
0887デフォルトの名無しさん
2012/04/14(土) 23:28:07.94select()で処理すりゃ良いんじゃない。
0888デフォルトの名無しさん
2012/04/14(土) 23:33:52.940889デフォルトの名無しさん
2012/04/14(土) 23:38:16.28select()って複数ソケット守りできるんでは
サーバー側なら確かに 1 クライアント 1 スレッドになりますね。
http://hibari.2ch.net/test/read.cgi/tech/1295273862/27
http://codepad.org/wDEPkAtB
0891デフォルトの名無しさん
2012/04/14(土) 23:48:56.38nクライアントmスレッドに出来るだろ・・・
0892デフォルトの名無しさん
2012/04/14(土) 23:49:10.41そこで、1threadが複数のsocketを処理するworker方式で>>883はどうやってるんだろう
というのが元の質問だったんだが。
新しくaccept()されたソケットを各workerのどれかに振り分けるとした場合、
・1つのworkerが担当するソケットが複数読み書き可能になった場合、他のスレッドが遊んでいても
直列的にしか処理できない
・そもそも割り振られたworkerがselect()で待ち受け中の場合、新しいソケットを待ち受けることができない
という問題がありそうに思えるけど。
0893デフォルトの名無しさん
2012/04/15(日) 00:53:55.45パイプで渡すから問題ない
0894デフォルトの名無しさん
2012/04/15(日) 00:54:46.29割り振ったworkerが偏っちゃった場合は諦める
0895デフォルトの名無しさん
2012/04/15(日) 00:55:26.360896デフォルトの名無しさん
2012/04/15(日) 07:06:24.33なのにそれでもworkerスレッド内でselect()したいという理由がわからないんだが。
他になにかメリットがあるんだろうか?
それとやはり、そのやり方だと全スレッドがselect()でブロックされたまま新しいソケットを
処理できなくなることがあるように思うんだが。
0897デフォルトの名無しさん
2012/04/15(日) 07:35:59.32コルーチンの切り替え判断をC++のストリームに内臓させちゃって
結構使いやすいんだ
0898デフォルトの名無しさん
2012/04/15(日) 07:42:15.64カーネル内でなんかやってメモリコピーが減りましたってやつ
思い出したsendfileだ
0899デフォルトの名無しさん
2012/04/15(日) 07:48:03.60俺なんてサーバー作ったとき書きやすさのためにバッファ何層も重ねたぞ
chunk用のストリーム、・・・用のストリームって
0900デフォルトの名無しさん
2012/04/15(日) 09:41:08.09単なるメモリアクセスじゃなくて、
カーネル/ユーザ空間間のコピーだよ。
0901デフォルトの名無しさん
2012/04/15(日) 09:49:33.87リスナーのソケットをSelect()に入れればAccept()拾えるんでは?
0902デフォルトの名無しさん
2012/04/15(日) 09:56:02.40recv()〜何かの処理〜send() が
短時間で終わらないと破綻する。
0903デフォルトの名無しさん
2012/04/15(日) 10:03:01.10処理を渡せない場合があることは変わらない。
それとも、全部のスレッドで同じリスナーソケットをselect()する?
0904デフォルトの名無しさん
2012/04/15(日) 10:05:51.25そこでノンブロッキングI/Oですよ。
0905デフォルトの名無しさん
2012/04/15(日) 10:11:33.93複数ソケットでそれを行うとselect()の再発明になる。
0906デフォルトの名無しさん
2012/04/15(日) 10:22:27.31select()のかわりにノンブロッキングI/Oを使えと言っているわけじゃないよ?
select()でトリガを受けて、read/writeをノンブロッキングでやるのが最近の流行。
0907デフォルトの名無しさん
2012/04/15(日) 10:45:26.33今更何をw
0908デフォルトの名無しさん
2012/04/15(日) 11:08:40.66今更と言うか、結局、>>883のように各workerスレッドでselect()するという場合
どのスレッドでどのソケットを監視することになるのか、これだけ質問しても
よくわからなかったんだ。
今更というくらい明らかなことだったらちょっと教えてくれないか?
0909デフォルトの名無しさん
2012/04/15(日) 11:29:24.83select()でトリガ拾うとrecv()/send()はブロックされないのでは?
>最近の流行
最近じゃない。初心者本
http://www.amazon.co.jp/dp/4874085032/
ですら昔からだ。
0911デフォルトの名無しさん
2012/04/15(日) 11:47:43.930912デフォルトの名無しさん
2012/04/15(日) 12:05:55.34待ってれば読めるだろうけど多少なりともブロックされることはあるらしい。
0913デフォルトの名無しさん
2012/04/15(日) 12:54:56.19WSAEWOULDBLOCK をスルーすれば良いのんか。
0914デフォルトの名無しさん
2012/04/15(日) 13:36:07.17入門本に書いてあることが流行だと言ってる?
0915デフォルトの名無しさん
2012/04/15(日) 13:51:27.591スレッド100本くらいで100スレッドくらい
これならそんなに無理なく1万本管理できる
0916デフォルトの名無しさん
2012/04/15(日) 13:53:58.20OSにもよるだろうけど。。。
0917デフォルトの名無しさん
2012/04/15(日) 14:03:06.100918デフォルトの名無しさん
2012/04/15(日) 14:09:25.25無理がある気がするな。
Apacheなんかどういう実装になってるのだろう?
0919デフォルトの名無しさん
2012/04/15(日) 14:20:28.63いや、そういう問題じゃなくて。
その100本のスレッドのうちリスナーを監視するのが1本なのか全部なのか?
もしリスナーをselect()しないスレッドがあるとした場合、そいつらがselect()で
ブロックしてしまう問題をどうするのか?ってことなんだが。
もちろん、100本もスレッドを用意したのに状況によって1本しか走れない
ということも考えられるし。
0920デフォルトの名無しさん
2012/04/15(日) 14:23:15.17そのselect()とやらが何をブロックするのだ?
0921デフォルトの名無しさん
2012/04/15(日) 14:39:07.53そうですね。当然でした。
調べてみると、例えばWindowsのCreateThreadで作れるのは
最大で1プロセス2028スレッドとありました。
0922デフォルトの名無しさん
2012/04/15(日) 14:45:56.01もしかして、timeout=0でブン回すという使い方なのかな?これ。
0923デフォルトの名無しさん
2012/04/15(日) 14:51:37.06そのスレッドでアイドリング処理をしないのならブロックしても問題なかろう。
recv(),send(),accept()の処理以外で何をするのだ?
0924デフォルトの名無しさん
2012/04/15(日) 15:05:42.391スレッドが100ソケット受け持ったとして、そこで複数のソケットが読み書き可能に
なったとしても他のスレッドは何もできないんだから。
入門書であること力点をおいているのではなく、1990年代の書籍であることに力点をおいています。
1990年代にしめされている手法が「最近はやっている」とは考えにくいでしょう、普通。
関係ありませんが、この本、ネットワークバイトオーダーに問題はあるものの、 fj でも一定の評価がついていましたね。
0926デフォルトの名無しさん
2012/04/15(日) 18:04:19.36一昔前ならわざわざ面倒なノンブロッキングI/Oを使うよりも
上の人のようにスレッド+ブロッキングI/Oの方が人気があった
ような気がする。さらに前だとfork()が主流だったよねぇ。
0927デフォルトの名無しさん
2012/04/15(日) 18:27:54.740928デフォルトの名無しさん
2012/04/15(日) 18:33:40.531990年代後半からだよ。本格的には2000年代入ってから。
マルチスレッド+ブロックI/Oやforkによる実装も普通に行われていた。
非同期I/Oの優位性は80年代から言われていたけど、(X11のプロトコルがそうだし)
低レベルAPIとして登場したのはその後だね。
0929デフォルトの名無しさん
2012/04/15(日) 20:19:03.11そうならないように分配すればいい
その上でどうしてもそうなったらあきらめればよろしい
0930デフォルトの名無しさん
2012/04/15(日) 20:20:01.53リスナーは1本で。
各ワーカーにはパイプで適当にソケットを送りつければ良い。
0931デフォルトの名無しさん
2012/04/15(日) 20:26:49.72分配にポリシーを実装する必要なければ、複数のworkerが直接同時にselectすればいい。
0932デフォルトの名無しさん
2012/04/15(日) 20:34:20.91だれも待ち受けしなかったらサーバにならなくね?
0933デフォルトの名無しさん
2012/04/15(日) 20:38:39.05>>902
0934デフォルトの名無しさん
2012/04/15(日) 20:40:52.100935デフォルトの名無しさん
2012/04/15(日) 20:46:01.12Winsock FAQ
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/articles/io-strategies.html
には 「経験則3: select()は避ける」 とあるけど
これの元ネタの英文はかなり古いものなのかな。
0936デフォルトの名無しさん
2012/04/15(日) 20:47:38.090937デフォルトの名無しさん
2012/04/15(日) 20:49:17.95winならそれでいいんじゃね?
unixlinuxには選択肢ないからな
0938デフォルトの名無しさん
2012/04/15(日) 20:50:29.14なるほど、やりかたはわかった。ただ、わざわざそうすることのメリットがよくわからないな。
activeなソケットの偏りで効率が落ちる問題は残るし、特にプログラミングが簡単になるようにも
思えないし。
>>929
「そうならないように」って、無理だろそりゃ。どのソケットがactiveになるか事前に判断できる
わけがないし。
0939デフォルトの名無しさん
2012/04/15(日) 20:51:19.09スレッド嫌いなのでselect()で実装してやったけど
なんの問題もなくサクサク動いたよw
Winsock FAQってWindows 9x の時代のものじゃないのかな。
0940デフォルトの名無しさん
2012/04/15(日) 20:51:57.12意外にもfd maskのbit演算がボトルネック!
0941デフォルトの名無しさん
2012/04/15(日) 20:53:25.28C10Kのようなのだとスレッドのオーバーヘッドのが大きくなるから。
クライアント数が少ないのならスレッド実装のが楽
0942デフォルトの名無しさん
2012/04/15(日) 20:53:27.29詳しくは古いwinsockのドキュメント読んでくれ。
0943デフォルトの名無しさん
2012/04/15(日) 20:56:10.86こっちは同時select()か。全スレッド同時に起きるけど、mutexを奪った1スレッドだけが
処理するという形になるわけかな。
0944デフォルトの名無しさん
2012/04/15(日) 21:00:20.71それではスレッドにする意味がないような。
0945デフォルトの名無しさん
2012/04/15(日) 21:06:57.74違うよ。
同時selectしているスレッドの一つだけが起きる。
どれが起きるかはスケジューラ任せ。
自分で選びたいならlistener/schedulerを作らないと仕方ない。
read等も同様の仕様。ほとんどのUNIXが。
0946デフォルトの名無しさん
2012/04/15(日) 21:50:18.53そうだっけ?それだとレベルトリガじゃないような気もするが、正直1つのソケットを複数のスレッドで
同時にselect()するなんてやったことなかったから勘違いしていたかもしれん。
であれば、どのスレッドにどのソケットを監視させるかという割り振りも必要なかったといことか。
0947デフォルトの名無しさん
2012/04/15(日) 22:03:10.33じゃないと同じポート番号にならないし。
もちろん起きるのは一つのプロセスだけ。
0948デフォルトの名無しさん
2012/04/15(日) 22:53:17.93Unix 系はいいんだが, WinSock ってそのへんどうなってんの?
# 明日から Windows でネットワークプログラムするはめになってしまった orz
0949デフォルトの名無しさん
2012/04/15(日) 23:07:41.221万スレッド起こせるならその方が楽だけどね
普通は無理っしょ
0950デフォルトの名無しさん
2012/04/15(日) 23:09:42.76事前に判断なんて無理なので、無理しないで淡々と振り分ける。
偏ったらあきらめるか、ソケットを余力がある他のスレッドに投げる。
0951デフォルトの名無しさん
2012/04/15(日) 23:11:13.18特にXPでは〜、Vistaでは〜、7では〜との注意書きは必ず読みましょう。
読まない人はプログラム書くなと言いたくなるくらい細かい違いが多い。
0952デフォルトの名無しさん
2012/04/15(日) 23:11:39.79今はそこはどうでもいい
0953デフォルトの名無しさん
2012/04/15(日) 23:18:52.51これ本当?どこかにリファレンスがあるなら教えて欲しいな。
例えば、ソケットがread readyになって起こされたスレッドがreadしなかった
場合とかどうなるの?
0954デフォルトの名無しさん
2012/04/15(日) 23:25:42.660955デフォルトの名無しさん
2012/04/15(日) 23:35:15.90「何もない」があるのよ!
epollとかでエッジトリガとかだと何もしないがゆえに
問題になることはあるかも
0956デフォルトの名無しさん
2012/04/15(日) 23:44:57.62理解できないです。
select/pollはレベルトリガですよね?
起こされたスレッドがreadしないでsleepしたら同じsocketでselectしている
別のスレッドが起きない?
0957デフォルトの名無しさん
2012/04/15(日) 23:45:51.97それでいいだろ
Aのスレッドでなにも怒らないからBのスレッドで怒り爆発だろ
0958デフォルトの名無しさん
2012/04/16(月) 14:16:21.100959デフォルトの名無しさん
2012/04/16(月) 15:25:23.722ちゃんねるは世界の全てではない。
0960デフォルトの名無しさん
2012/04/16(月) 16:11:19.98unixでCPUコアが4つあって
1000人までクライアントを待ち受ける場合
・スレッドを4つ作る
・各スレッドでselect()をする
ってことですか?
その場合、各スレッド250人までをどうやって割り振ればいいんでしょうか?
均等に割り振る事ができるんでしょうか?
0961デフォルトの名無しさん
2012/04/16(月) 16:17:40.24んじゃ、バシッと常套手段教えてやれよ
0962デフォルトの名無しさん
2012/04/16(月) 16:19:44.02スレッドを作らなくてもいい。
振り分けは適当でいい。
全部スレッドでもいい。
0963デフォルトの名無しさん
2012/04/16(月) 16:24:25.45最大せっちゃん数を
上回ってればどうでもいい
0964デフォルトの名無しさん
2012/04/16(月) 16:24:50.62> 1000人までクライアントを待ち受ける場合
処理する内容を詳しく言わないとわからない。
スレッド数、ジョブの回し方は処理する内容に依存する。
0965デフォルトの名無しさん
2012/04/16(月) 18:51:41.921000人までのロビーがありゲームする部屋が10あるとします。
4人集まったらゲーム開始、サーバではゲームの進行やカードを配ったり
といった処理もさせます。
こんな感じのことをしたいのですが、どうでしょうか?
0966デフォルトの名無しさん
2012/04/16(月) 19:54:42.640967876
2012/04/16(月) 22:49:16.49OSがUnix系なら、Windowsに関する話は参考にならないよ。
>3 先頭のリチャードスティーブンスの本を、超おすすめする。
お前の人生上絶対、もととれる。
参考までに、俺なら
・4プロセス。
・各プロセスは別ポート番号。全く別のマシンであるかのように設計。
・1プロセスは1スレッド。
・長いトランザクションで1クラがサーバを占有しないよう
トランザクションを中断・再開できる工夫をする。
で組む。
マジレスだが、プロトタイプを各方式で作って実測し、
本チャンの方式を決定するのが王道だぞ。どんな案件でも、
方式設計でプロトの実測値がないと空中戦(机上の空論ばかりで
結論が出ない)になる。
「均等に割り振ることができるんでしょうか?」じゃねぇよ
アプリの特性を考慮してお前がそれを考えて、比較して、決定するの。
そんなレベルで1000人とか言ってないで
まず250人処理できる1個のサーバを作るほうが先。
0968876
2012/04/16(月) 22:57:49.50どうやってるかを学んで、そこで振り分け先の「サーバ」を
「プロセス」に置き換えて考えてみやがれ。
参考まで: http://www.networld.co.jp/slb/load_sharing.htm
(俺は、お前さんが今やるべき事は違うと思うけどね)
>877 俺と君は意見が違うようだが、
Unixでselect(epoll等含む)するならブロッキングのままのほうが、
俺の経験上は楽だった(テスト工程とか)。
君がどうつくるのが好きかは君次第だから、君の言葉で語れ。
俺は否定しない。
>879 ソケットはブロッキングモードで、selectすれば
ブロックしないよう作れるよ。"Unixでは"その方が普通。
てかselectってそのためのものだよ。
syn reset してくる、普通じゃないクライアント(ポートスキャナ等)
の対策とか、高度な話はいろいろあるけど、今はそういう話じゃない
から割愛します。
0969デフォルトの名無しさん
2012/04/16(月) 23:24:37.22そう。だからソケットはノンブロックが基本なんだよね。
select使うならなおのことブロッキングにしとく意味がない。
0970デフォルトの名無しさん
2012/04/17(火) 11:08:39.890971デフォルトの名無しさん
2012/04/17(火) 11:14:18.58Windowsは大変だよね
0972デフォルトの名無しさん
2012/04/17(火) 16:16:27.35俺なら、
・部屋数プロセスを起動
・ゲーマごとにスレッド
・その他必要なプロセス(対戦者入り口、割り当てなど)とスレッド(カード配布する親など)。
ポートは、
・入り口 (*1)
・部屋ごと
でacceptして、前者のプロセスから後者のアドレス/ポート番号を聞き、
部屋プロセスとゲーマのクライアントは直接接続を張る。
こんなところから始めてみる。
開発では、最初は1プロセスのみで、1部屋4人だけのサーバを作る。ロビーとかなし。
部屋割り当てロジックは後から作る。
上の構成なら分離されてるので、独立に開発できる。
0973デフォルトの名無しさん
2012/04/17(火) 16:18:02.55workerの仕様次第だから。
0974デフォルトの名無しさん
2012/04/17(火) 17:05:38.130975デフォルトの名無しさん
2012/04/17(火) 17:08:05.210976デフォルトの名無しさん
2012/04/18(水) 08:13:22.36そうだよ。だからどうした。スタートはそこからだ。
それを理由におまいさんがネットプログラムやめてくれても
全く構わないし、「俺がガンダムだ」宣言して
各OS統一できる基本的な枠組みを作ってくれてもいいぞ。
そしたらおっちゃん嬉しくて涙出る。
みんな夢見て挫折した、死屍累々の歴史があるの。
俺はWindowsの64ソケット制限がガンだと思うんだが、
でもその分WinはUnixのAIOより非同期が明後日の方へ進化して
カッケェことになってるしなぁ。
0977デフォルトの名無しさん
2012/04/18(水) 10:43:04.21だからどうしたって、されてないでしょと言ったらされてると主張した奴がいたから、
やっぱりされてないじゃんと言っただけなんだけど
なんか気に障ることでもあんの、おっさん
0978デフォルトの名無しさん
2012/04/18(水) 11:11:24.05なんだ、ただのゆとりかよ
0979デフォルトの名無しさん
2012/04/18(水) 13:46:26.16>開発では、最初は1プロセスのみで、1部屋4人だけのサーバを作る。ロビーとかなし。
スレッド(カード配布する親など)、これはゲーム進行をコントロールしている
スレッドって意味ですか?
それプラス4人の計5つのスレッド構成でやる感じでしょうか?
スレッドを駆使してやる理由を教えて頂いてもいいですか?
select()では駄目でしょうか?
0980デフォルトの名無しさん
2012/04/18(水) 13:58:04.89名前付けて。
無視するから。
0981デフォルトの名無しさん
2012/04/18(水) 14:03:08.690982デフォルトの名無しさん
2012/04/18(水) 14:11:35.38妥当なスレってないのかな。
0983デフォルトの名無しさん
2012/04/18(水) 16:54:52.45次スレよろしく
0984デフォルトの名無しさん
2012/04/18(水) 17:18:10.24たてた。
ネットワークプログラミング相談室 Port28
http://toro.2ch.net/test/read.cgi/tech/1334736934/
0985デフォルトの名無しさん
2012/04/18(水) 19:43:45.9264ソケット制限っておっちゃん浦島太郎なのか?
0986デフォルトの名無しさん
2012/04/18(水) 19:53:44.11対ゲーマーのロジックに専念出来るから。
ちなみにマルチスレッド構成と、
selectは共存しうる。
1スレッドが複数の(I/O)イベントを対象いすることがありうるから。
0987デフォルトの名無しさん
2012/04/18(水) 20:15:00.170988デフォルトの名無しさん
2012/04/18(水) 21:30:51.25ありがとうございます。勉強になりました。
979を指針にして作成してみようと思います。
0989デフォルトの名無しさん
2012/04/18(水) 21:33:29.51作るのはスレッドにしてしまったほうが楽だが。
0990デフォルトの名無しさん
2012/04/18(水) 21:33:36.00間違いました。972でした。
ありがとうございました。
0991デフォルトの名無しさん
2012/04/18(水) 22:08:47.58おつうめ
0992デフォルトの名無しさん
2012/04/19(木) 04:15:54.520993デフォルトの名無しさん
2012/04/19(木) 13:24:31.35ネットワークプログラミング相談室 Port28
http://toro.2ch.net/test/read.cgi/tech/1334736934/
0994デフォルトの名無しさん
2012/04/19(木) 15:13:02.590995デフォルトの名無しさん
2012/04/19(木) 20:39:50.890996デフォルトの名無しさん
2012/04/19(木) 20:59:14.790997デフォルトの名無しさん
2012/04/20(金) 07:27:18.020998デフォルトの名無しさん
2012/04/20(金) 11:26:16.880999デフォルトの名無しさん
2012/04/20(金) 11:26:33.361000デフォルトの名無しさん
2012/04/20(金) 11:26:48.95ダー
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。