トップページ⇒tech
1001コメント282KB

ネットワークプログラミング相談室 Port11

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん ◆TCP/IPmFAM NGNG
主にソケットに関しての質疑応答スレです。

Programming UNIX Socket FAQ (日本語訳)
http://www.kt.rim.or.jp/~ksk/sock-faq/indexj.html

Winsock Programmer's FAQ (日本語訳)
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/

過去スレ:
Port1 http://pc.2ch.net/tech/kako/970/970344582.html
Port2 http://pc.2ch.net/tech/kako/1006/10062/1006258198.html
Port3 http://pc3.2ch.net/tech/kako/1023/10233/1023359282.html
Port4 http://pc3.2ch.net/tech/kako/1034/10342/1034236536.html
Port5 http://pc2.2ch.net/tech/kako/1040/10402/1040220302.html
Port6 http://pc5.2ch.net/tech/kako/1052/10521/1052106444.html
Port7 http://pc5.2ch.net/test/read.cgi/tech/1063035045/
Port8 http://pc5.2ch.net/test/read.cgi/tech/1073560271/
Port9 http://pc5.2ch.net/test/read.cgi/tech/1080658835/
Port10 http://pc5.2ch.net/test/read.cgi/tech/1090385857/

関連リンクは>>2-10辺り
足りなかったら適当に付け足してね
0002デフォルトの名無しさんNGNG
図書コーナー!

UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI
http://www.amazon.co.jp/exec/obidos/ASIN/4894712059/
詳解TCP/IP〈Vol.1〉プロトコル
http://www.amazon.co.jp/exec/obidos/ASIN/4894713209/
The Implementation (TCP/IP Illustrated, Volume 2)
http://www.amazon.co.jp/exec/obidos/ASIN/020163354X/
Linuxソケットプログラミング―ネットワークプログラミングにおける実践技法
http://www.amazon.co.jp/exec/obidos/ASIN/4894714671/
TCP/IPによるネットワーク構築〈Vol.3〉―クライアント‐サーバプログラミングとアプリケーション
http://www.amazon.co.jp/exec/obidos/ASIN/4320028007/
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/
0003デフォルトの名無しさんNGNG
今までに出てきたURL抜粋

RFC 日本語版リスト
http://www5d.biglobe.ne.jp/~stssk/rfcjlist.html
C10K ヘヴィーロードサーバ
http://www.kegel.com/c10k.html
JPNIC RFC関連リンク集
http://rfc-jp.nic.ad.jp/link/
RFC 2616 "Hypertext Transfer Protocol -- HTTP/1.1" 日本語訳
http://www.studyinghttp.net/rfc_ja/2616/rfc2616_ja.html
IANA Well known port numbers
http://www.iana.org/assignments/port-numbers
MSDN
http://msdn.microsoft.com/library/en-us/dnsitehelp/html/tochelp.asp

ツール類
tcpdump
http://www.tcpdump.org/
Windump
http://netgroup-serv.polito.it/netgroup/tools.html
pathchar
ftp://ftp.ee.lbl.gov/pathchar/
pchar
http://www.employees.org/~bmah/Software/pchar/
0004デフォルトの名無しさんNGNG
問題ありのサイト

ネットワークプログラミングの基礎知識
http://X68000.q-e-d.net/~68user/net/
0005デフォルトの名無しさんNGNG
5げっと
0006デフォルトの名無しさんNGNG
■ゲーム系関連スレ
実装や設計、雑談など主にソケットプログラミングについて。
スレタイトルにMMORPGとついていますが気にしている人は少ないです。

MMORPGを一緒に作りませんか?
http://pc5.2ch.net/test/read.cgi/gamedev/1078434119/
MMORPG 作成
http://pc5.2ch.net/test/read.cgi/gamedev/1005040802/
MMORPGを作ってみたい
http://pc5.2ch.net/test/read.cgi/gamedev/1061892441/
0007デフォルトの名無しさんNGNG
ツール類には

ethereal
http://www.ethereal.com/

も入れて欲しいです。
0008デフォルトの名無しさんNGNG
同じく、ツール類に入れて欲しい。

Packetyzer
http://www.networkchemistry.com/products/packetyzer/
0009デフォルトの名無しさんNGNG
0010デフォルトの名無しさんNGNG
漏れはPacMonPro使ってるが、使いやすいぞ
もちろん不正利用だが(w
0011デフォルトの名無しさんNGNG
>>1 乙!
0012デフォルトの名無しさんNGNG
RedHatLinux使っています。

socket システムコールshutdownを調べようと
$ man shutdown
すると、/sbin/shutdownのmanualが表示される
どうしたらsocket システムコールshutdownのmanualみれるの?
0013デフォルトの名無しさんNGNG
>>12
man man
0014デフォルトの名無しさんNGNG
man 2 shutdown
0015デフォルトの名無しさんNGNG
>>14
ありがとう
0016デフォルトの名無しさんNGNG
>>15
13には礼は無しかよ
0017デフォルトの名無しさんNGNG
>>16
役にたたなかったから
0018デフォルトの名無しさんNGNG
>>16
sageているから
0019デフォルトの名無しさんNGNG
int MakeSocket(void){
struct hostent* myhost;
struct servent* service;
struct sockaddr_in server;
int sock;
service = getservbyname(SERVICE_NAME,"tcp")
myhost = gethostbyname("hoge-.com")
sock = socket(AF_INET,SOCK_STREAM,0)
server.sin_family = AF_INET;
server.sin_addr.s_addr = htonl(INADDR_ANY);
service -> s_port = 25;
server.sin_port = htons(service -> s_port);
bind(sock,(struct sockaddr*)&server,sizeof(server))
listen(sock,5);
return sock;
}
としてこの後acceptしているのですが,25ポートにアクセスしてもサーバから
反応がありません.
何が問題でしょうか.
25番ポートを使用する他のプログラム(SMTP)は他に走っていません.
0020デフォルトの名無しさんNGNG
>>19
・socket(), bind(), listen() のエラーチェックをちゃんとやりましょう
・そのプログラムが動いている同じホストから繋がるかどうか確認しましょう
0021デフォルトの名無しさんNGNG
>>20
ありがとうございます.
解決しました.
関数にあくせぷとしたときの戻り値を渡すべきところを,ソケットを作ったときの
ディスクリプタをそのまま渡してしまったので,エラーが出ていたようです.
なんでこんなことに気がつかなかったのだろうか。。。
0022デフォルトの名無しさんNGNG
C#の方のスレに一度投稿したのですが、話題がこちら向けだと思うので、此方にて再度質問させてください。

現在、下記URLのC#を使ったRawSocketのサンプルを元にネットワークプログラムを勉強しています。
ttp://www.thecodeproject.com/csharp/networkmonitor.asp

上記のソースを改良し、パケット取得時にIPヘッダにてTCPプロトコルのものだけを抽出し、
その後、パケットからTCPヘッダを取り、それぞれのデータに分割し、さらにデータ部だけを取り出し、
パケットモニタのように表示するという事をしました。

そこで、今度は分割されて送信されたTCPパケットを再結成したいのですが、
どのように行えばよいのでしょうか。
やりたいことは、分割されたパケットの場合、分割パケットが全て届いた所で、
データ部を全て結合して、別の処理部に渡したいのです。

また疑問なのは、TCP/IPパケットが分割されている途中に、他のパケットが割り込む事はあるのでしょうか?

つまり、AとBというデータが共に分割されて送られたとして、
Aの分割された複数のパケットが最後まで届く前にBの分割されたパケットが割り込むといった事は
あるのでしょうか。
それとも、分割されたデータを全部受け取るまでは、他のパケットは何処かにプールされていて、
割り込む事はないのでしょうか?
0023デフォルトの名無しさんNGNG
http://www.yomiuri.co.jp/komachi/reader/200409/2004092200016.htm

こいつを救ってやって
0024デフォルトの名無しさんNGNG
>>23
RFC2549を自前で実装すればなんとかなるんじゃねーの
すこし前にウィルスがかなり問題になってたからオススメはしないが
0025デフォルトの名無しさんNGNG
バナーのひとつもメモリに入らないとみた
0026デフォルトの名無しさんNGNG
>>25
http://my.reset.jp/~toragiku/kopa/6601sr.htm
RAMが64KBあるから入るんじゃない?
0027デフォルトの名無しさんNGNG
>>26
503iよりショボい気が…
0028デフォルトの名無しさんNGNG
>>22
RAW ソケットなら、たぶんパケットは受信した順に読み込まれます。
どんな順序で受信されるかは、送信側の機器及び通信経路上に存在する機器等に依存します。
0029デフォルトの名無しさんNGNG
getsockoptでSO_LINGER指定でlinger構造体読みたいんだけど読めない
初期値が知りたいんだけど どうしたらいいかな
0030デフォルトの名無しさんNGNG
>>22
ほぉ〜、このレベルの方がここにいたとは。ちょっと驚いた。

ワームを書く際によく用いられるチッキングという技術をyahooってみなよ
0031デフォルトの名無しさんNGNG
長文ってだけでは。
0032デフォルトの名無しさんNGNG
>>31
確かに聞いてる時点で>>22のネットワークプログラムのレベルは低いだろうけど、
『何を疑問に思っているのか』とか『何をしたい』とかそういう部分での
向上心?というか知識欲という部分ではレベル高いんじゃない?

そして、>>22に対する的確な回答を誰もしていない時点で
このスレの住民のレベルが知れてる・・・
勿論、俺も含めてだけどな。
0033デフォルトの名無しさんNGNG
いや、別にいいんじゃない?
パケットは割れることあるし
ケツの片割れが先についても
頭が来るまでプールされるし
そのための背番号ついてるし
0034デフォルトの名無しさんNGNG
>>32
基本的なところで知識の詰め込みが足りません、という気がするけど。
>>22はComerの本でも読みなさい、ってことで。
0035デフォルトの名無しさんNGNG
> そして、>>22に対する的確な回答を誰もしていない時点で
> このスレの住民のレベルが知れてる・・・

あまりにも当たり前のことを聞いてるので誰も答えてないのかと。
0036デフォルトの名無しさんNGNG
>>35
その返し方って、答えられない奴がよく使う方法だよね。
質問の仕方がアレな訳じゃないし、知ってるなら答えてやっても良い気がする。

俺?俺はその部分知らないから答えられないや。
仕事だとDLL化されたモジュールから呼んでるだけだから、
中身のロジック(アルゴリズム)なんてシラネ。
0037デフォルトの名無しさんNGNG
22=30=32=36
0038デフォルトの名無しさんNGNG
>>32
んなこたないって。
知識欲があるなら「TCP 仕組み」とかでググって、セグメントという重要な言葉くらいは見つけてくるはずだし、
IPパケットのフラグメント化とTCPデータのセグメント分割の区別のつかないような質問の仕方はしないはず。
0039デフォルトの名無しさんNGNG
答えられない奴の常套句
「ググったほうが力になる。」
0040マイク ◆yrBrqfF1Ew NGNG
googleした方が力になる。間違いない。
0041デフォルトの名無しさんNGNG
だったら、こんなスレッドもMLも必要なくね?
0042デフォルトの名無しさんNGNG
>>41
リソースの無駄だな。
過去スレ含めて削除したほうが良い。
0043デフォルトの名無しさんNGNG
検索で探すのはね、結構時間のかかるものなのよ。
技術関連の情報なら、半日くらい直ぐに飛んでいく。

まあそれでも、90%位はそれで済ませてるが。
0044デフォルトの名無しさんNGNG
素直に本買えと
0045デフォルトの名無しさんNGNG
inet_ntoaとかの戻り値は、deleteしないでもいいんですよね
0046デフォルトの名無しさんNGNG
当たり前だろ
004745NGNG
ごめんなさい
0048デフォルトの名無しさんNGNG
ここはネスペも持ってない人ばかりですねw
0049デフォルトの名無しさんNGNG
>>48
いつ取ったの?
0050デフォルトの名無しさんNGNG
ネスペってのは Netscape の略
0051デフォルトの名無しさんNGNG
>>49
なんでそんなことを聞くんだい?
0052デフォルトの名無しさんNGNG
>>51
もう存在しない資格を取れと言われても……と思っただけだよ。
0053デフォルトの名無しさんNGNG
なーんだ。しょうもな。そんな返しかよ。もう見飽きた。
0054デフォルトの名無しさんNGNG
>>53
0055デフォルトの名無しさんNGNG
つーか、ネスペレベルの知識もないやつばっかりだなと思った。
005649NGNG
>>51
何歳で取ったのか気になったのです
参考にしたいので教えてください
0057デフォルトの名無しさんNGNG
なんでそんなことが聞きたいんだ?
俺が持ってるのはテクネだぞ。
でも、ネスペのほうがかっこいいだろ。
じじいよばわりしたいのか?俺は若いぞ。
0058デフォルトの名無しさんNGNG
プログラマーも免許制にするべきだな。
0059 ◆cReQ1pJtI. NGNG
間違ってUNIXスレに書いてしまったんですが、移動してきました。

FTPクライアントのサブセットを作成していますが、
コマンドに対する応答の終了をどのように判断したらいいのか
悩んでいます。
多くのコマンドは1行の応答のようなので、その場合は改行を
見ればいいと思いますが、なかには複数行返ってくるものも
あるし、RFCにも複数行処理しろと書いてあります。

コマンドを送って、応答を待って、次のコマンドを送って、、

ってやれれば簡単でいいなと思ってるんですが、そのためには
応答の終了を知る必要があると思います。
回線状況が悪い場合も想定したいので、タイミングでの処理は
避けたいと思っています。

よろしくお願いします。
0060デフォルトの名無しさんNGNG
ここでも読めば
http://x68000.startshop.co.jp/~68user/net/ftp-4.html
0061 ◆cReQ1pJtI. NGNG
>>60
ありがとうございます!!
すごく参考になりました。
0062デフォルトの名無しさんNGNG
http://pc.2log.net/logic/archives/blog66.html
こんなんみつけたけど、コレって使えるのか?穴だらけの気がするんだが。
0063デフォルトの名無しさんNGNG
ネタだろどうみても
0064デフォルトの名無しさんNGNG
2chのdatを取得する際の判断として
HEADを見るようにしようとしてたのですが、
どうもdatによってヘッダ情報のパラメータがあったりなかったりするようなのですが、
なぜなのか分かる方いませんか?

例)
http://pc5.2ch.net/tech/dat/1095479831.dat

HTTP/1.1 200 OK

Date: Thu, 30 Sep 2004 20:20:32 GMT

Server: Apache/2.0.48 (Unix) PHP/4.3.4 mod_ssl/2.0.48 OpenSSL/0.9.7c

Last-Modified: Thu, 30 Sep 2004 17:13:29 GMT
ETag: "496df-1a469-cc126040"

Accept-Ranges: bytes

Vary: Accept-Encoding

Content-Encoding: gzip

Connection: close

Content-Type: text/plain

↑このヘッダ例では、なぜかContent-Lengthが含まれていない
0065デフォルトの名無しさんNGNG
こちら場合はContent-Lengthがあります。
ほとんどの場合はこちらです。
pc5.2ch.net/tech/dat/1095583235.dat

HTTP/1.1 200 OK
Date: Thu, 30 Sep 2004 20:20:31 GMT
Server: Apache/2.0.48 (Unix) PHP/4.3.4 mod_ssl/2.0.48 OpenSSL/0.9.7c
Last-Modified: Thu, 30 Sep 2004 00:52:11 GMT
ETag: "4972f-6904-16ab64c0"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 9495
Connection: close
Content-Type: text/plain
0066デフォルトの名無しさんNGNG
すみません、>>64こっち余計な改行入ってしまいました。
0067デフォルトの名無しさんNGNG
ちなみに要求側はこうしてます
HEAD $uri HTTP/1.1
Accept-Encoding: gzip
Host: $host
User-Agent: Monazilla/1.00 (test)
Connection: close
0068デフォルトの名無しさんNGNG
>>64
mod_deflateの仕様です。
datのサイズが大きいとContent-Lengthが付かなくなります。
したがって付いたり付かなかったりする可能性をあらかじめ
想定してコードを組むしかありません。
0069デフォルトの名無しさんNGNG
>>67
Accept-Encoding: gzipを外せ
0070デフォルトの名無しさんNGNG
それじゃ無駄に転送量増える
0071デフォルトの名無しさんNGNG
>>68
うーむなるほど。

鯖側ではある程度のサイズからdat.gzに圧縮しているということで、
dat.gzのContent-Lengthを表示しても dat.gzじゃない他のファイルや、
datからdat.gzに切り替わった時などのサイズ比較には使えないから
敢えてContent-Lengthをヘッダに含めなくしている。

ということでしょうかね・・・ん?違うかな
0072デフォルトの名無しさんNGNG
>>71
全然違う。
dat.gzの場合Content-Lengthは圧縮後のサイズになる(これはHTTPの
仕様)。
mod_deflateはメモリ上で一度にすべて圧縮できなかったとき、
圧縮後のサイズをその場で計算できないので
仕方がないからContent-Lengthなしで送り出す。
HTTP/1.1なんだからchunkedエンコーディングで送ってくれても
よさそうなもんだが
0073デフォルトの名無しさんNGNG
ネットワークプログラミングの話題かどうか微妙なんですが、
javaMailって使えないって噂はほんとですか?
0074デフォルトの名無しさんNGNG
>>72
その辺の話からすると、gzip を Accept して HEAD 要求するのって
そこそこCPUに厳しい処理っぽいような気がするけど、あってる?
0075デフォルトの名無しさんNGNG
>>73
そういうのはレイヤが違います。
メーラ開発スレ(あるのか?)とかjavaスレへでもいってください。

0076デフォルトの名無しさんNGNG
>>70
無駄とは思えないが
0077デフォルトの名無しさんNGNG
>>76
理由は?
0078デフォルトの名無しさんNGNG
>>77
圧縮の手間を省ける
0079デフォルトの名無しさんNGNG
>>78
ttp://megumi.delta-z.org/~yajiman/no-heavy/flash/unix.swf
見たこと無いのかな
0080デフォルトの名無しさんNGNG
>>30は>>22よりかなり馬鹿なことは判った。

>>22はカマー本読んでTCP/IPの基本的なところを勉強してね。
プログラミングスキルは問題ないみたいだから。
ちなみにあなたの懸念は的中です。順番さえね…
0081デフォルトの名無しさんNGNG
>>74
HEADで更新チェックしてるから負荷は小さいはずというのは
あまりなりたたないね。
つーか更新チェックならAccept-Encoding: gzipすべきでないってことか
0082デフォルトの名無しさんNGNG
>>80
Comerの本を読めというのがとっくに既出なのに今頃出てきて何言ってんだ……。

0083デフォルトの名無しさんNGNG
>>82
みんな無視してるのに今頃出てきて何言ってんだ……。
0084デフォルトの名無しさんNGNG
80から82はまだそれほど時間たってないだろ。
ヒキコモリ>>83的には半日もあれば既に誰もがスレチェックずみなのかも知れんが。
0085デフォルトの名無しさんNGNG
粘着かよ
0086デフォルトの名無しさんNGNG
せめてageろ
0087デフォルトの名無しさんNGNG
仮想ストレージに関する提案。

ストレージはデータの保存要求を受け付けるとすぐさま
ネットワーク上の別のストレージへデータを転送する。

この要求を受け付けた別のストレージは、すぐさま
ネットワーク上の別のストレージへデータを転送する。

これを繰り返すことでデータはストレージではなくネット上に配備されることになる。

即ち、受け付けるデータ分のメモリーがあれば、無限の仮想ストレージを構築できる。

偉大なるネットワークに感謝。
0088デフォルトの名無しさんNGNG
suretigai
0089デフォルトの名無しさんNGNG
MFCのCAsyncSocketを用いて
ソケット通信プロセスを作っています
サーバ、クライアント両方からsend()すると
両者の送信タイミングはかなりずれてるのに
遅れてsend()したソケットは
自分が送信したあとでないと受信しない現象が発生します
どうしてでしょうか?
よきアドバイスをよろしくお願いします。
0090デフォルトの名無しさんNGNG
>>89
ストリーム型でかつ即座に送信すべきデータが流れるソケットならば、
ソケットトオプションでTCP_NODELAY あたりを指定してみては?
0091デフォルトの名無しさんNGNG
テンプレに挙げられてる「WinSock2.0プログラミング」が絶版のままなんですけど、
和書でこれに代わる様なものはないのでしょうか?
0092デフォルトの名無しさんNGNG
>>91
http://pc5.2ch.net/test/read.cgi/tech/1089492835/
0093デフォルトの名無しさんNGNG
MFCのCAsyncsockを用いてソケット通信を行っています。
1対1の通信で、サーバがメッセージを投げそれの返信を
クライアントが返す通信を10msec間隔で繰り返しています
このときランダムに(強いて言えば3万トランザクションに1回)、
どちらかで200強msecの送信か受信遅延が発生しているようです
どうしてでしょうか?
心当たりのある方、お助けください。
0094デフォルトの名無しさんNGNG
そんなもんだ
0095デフォルトの名無しさんNGNG
MFCのCAsyncSocketを用いて
ソケット通信プロセスを作っています
今度はサーバからsend()でメッセージを送信し
クライアントはそれに対してsend()で返信します
これを10msec間隔でおこなっていますが
30000回に1回くらいのわりあいで
どちらかの送信または受信遅延が発生します
どうしてでしょうか?
よきアドバイスをよろしくお願いします
0096デフォルトの名無しさんNGNG
>>94
そんなもんなんですかね〜
あ〜何とかなりませんかね〜
どうも受信遅延が怪しいのですが・・・
0097デフォルトの名無しさんNGNG
まあええことよ
0098デフォルトの名無しさんNGNG
>>96
プロトコル設計の段階で道を誤っていると思われ。
0099デフォルトの名無しさんNGNG
そもそもネットワーク技術を正しく理解していないような気がするが。
0100デフォルトの名無しさんNGNG
> MFCのCAsyncsockを用いて

今時何故…
こんなの考える気力も起きない…
0101デフォルトの名無しさんNGNG
>>95
リアルタイム制御系かあるいは音声かVideoを載せてるか、どっちかか?

10msec間隔で送受信するような処理をMFCで実装しようとしてる時点でDQN決定!
遅延が許容できないのならwin32のWSAEventSelectでも使え、
ってwinsockの専門書に英語で書いてあるぞ。
0102デフォルトの名無しさんNGNG
>>95
MFC/非MFCを問わず、Winsock2 のメッセージベースの非同期ソケットはメッセージポンプが
何らかの事情で滞ると、ネットワークの状況に関わらず遅延が生じてしまう。

専任のスレッドで select で待つか、I/O コンプリーションポート(ReadFileでコンプリーション
ルーチンを指定する)のが吉。
0103101NGNG
>>102
I/O コンプリーションポート、最高パフォーマンスだが難しくねか?
オイラまだキッチリ実装されたサンプルソース見たことねえ
あれば教えてくれ
0104デフォルトの名無しさんNGNG
>>103
難しいっていうか面倒なだけのような。トライアンドエラーとかしたくないコードになるし・・・
漏れは結局同期IOでプロトタイピングしてデバグ済ませて状態遷移を整理したうえで、
あらためてIOコンプリーションポートで実装しなおした。

IO Queueing とか企むとプログラムに不要な複雑さが増して死ねそうだったので、
結局パフォーマンスは出ていない模様(w

ところで .NET Framework では、メッセージベースじゃなくてI/Oコンプリーションポートの
方が非同期IOの基本になってるけど、皆これ使うかなぁ・・・
0105デフォルトの名無しさんNGNG
サーバ側のrecvの返値が、クライアントから送ったデータのサイズになりません。
つまり全部送られてきていないみたいなんです。
どういう原因が考えられますでしょうか。
0106デフォルトの名無しさんNGNG
>>105
まだデータが残っている。
0107デフォルトの名無しさんNGNG
>>105
それは正常な動作です。
ソケットプログラミングの入門書でも読みましょう
0108デフォルトの名無しさんNGNG
>>106
どこに?何の?
0109デフォルトの名無しさんNGNG
ひょっとして何回もrecvする必要があるんですか?
いちおう、受信バッファのサイズは十分とっているんですが。
0110デフォルトの名無しさんNGNG
>>109
だから>>1-のリンク見ろよ
0111デフォルトの名無しさんNGNG
>>109
あたりまえだ
0112デフォルトの名無しさんNGNG
結局あなたたちは、質問してきた初心者をバカにすることしかできないんですね。
0113デフォルトの名無しさんNGNG
>>112
どの書き込みの人がバカにしているの?
0114デフォルトの名無しさんNGNG
ばーか ばーか
0115デフォルトの名無しさんNGNG
>>105
今どきIPv6経由しないネットがあると思うか?
0116デフォルトの名無しさんNGNG
そりゃあるだろ。
第一IPv6と>>105は全く関係ないぞ。
0117 ◆FIcNi4f8js NGNG
パケット分割されないようにオプション付けて送信すれば?
0118デフォルトの名無しさんNGNG
>>117
どうやって?
0119デフォルトの名無しさんNGNG
>>112
というか「FAQ読め」と思う。

ネットワークの世界では自分の都合だけでAPIを決められないから、
>>109なんてことは当たり前にある。初心者がどれだけ不合理に思っても。
それを理解するのがネットワークプログラミングの始まり。
0120デフォルトの名無しさんNGNG
マルチクライアントのサーバーを作ってるんですが、
recvの返値が0という方法以外ですべてのデータが送られたことを確認するには
どうしたらいいのでしょうか。
0121デフォルトの名無しさんNGNG
最初にレングスを送る
0122デフォルトの名無しさんNGNG
それだな
0123デフォルトの名無しさんNGNG
やっぱり長さの情報を送るのがベストですか。
何か良い関数があればと思ったのですが・・・。
ともかくありがとうございました。
0124デフォルトの名無しさんNGNG
MFCで、FTP受信をする以下の様なテストプログラムを作成したのですが
実際のファイルサイズよりも、かなり少ないサイズが表示されてしまいます。
正しいファイルサイズを表示させるにはどの様にすればよいのでしょうか?

CInternetSession IntSession("Test");
CFtpConnection *pFtpCon;
CInternetFile *pFile;

pFtpCon = IntSession.GetFtpConnection("ServerName", "UserName", "Password");
pFtpCon->SetCurrentDirectory("CurrentDirectory");
pFile = pFtpCon->OpenFile("FileName", GENERIC_READ);

TRACE("size = %u\n", pFile->GetLength());

pFile->Close();
if(pFile != NULL){ delete pFile; }
IntSession.Close();
0125デフォルトの名無しさんNGNG
放置されているのでage
0126デフォルトの名無しさんNGNG
> かなり少ない
ってどのくらいよ?
0127124NGNG
>>126
え〜と、例えば1MB超えるようなデータでも 16824バイトと表示されてしまいます・・
というより、16824バイト以上のファイルは必ず、16824バイトになってしまいます。
FFFTPで見てみると、正しいサイズが表示されていますので、プログラムの問題だと思うのですが・・
0128デフォルトの名無しさんNGNG
結局あなたたちは、質問してきた初心者をバカにすることしかできないんですね。
0129デフォルトの名無しさんNGNG
結局あなたは、自分で一つも調べようとしないんですね。
0130124NGNG
>>128
自分は皆が呆れるほど、何か根本的な部分で間違いを犯しているのでしょうか?
本当にわからないので、何方かご教示して頂けるとありがたいのですが・・
0131デフォルトの名無しさんNGNG
>>130
1MB分受信できているの?
0132124NGNG
ちなみに、>>125で上げたり、途中でちゃちゃ入れたりしているのは自分ではないです。
0133131NGNG
受信はしていないのか。
0134デフォルトの名無しさんNGNG
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_mfc_cftpconnection.3a3a.openfile.asp
と書いてあるけど、どうなん?
0135デフォルトの名無しさんNGNG
レスが早くつくようにageてやったのに、なんだその言いぐさは・・・
0136デフォルトの名無しさんNGNG
ageてやったのにだって( ´,_ゝ`)プッ
0137124NGNG
>>131
OpenFile()の時点で受信しているのではないのですか?
0138デフォルトの名無しさんNGNG
>>134を読め
0139デフォルトの名無しさんNGNG
MSDN> アプリケーションは OpenFile を使ってファイルを開いてから、
MSDN> CInternetFile::Read を使用します。
0140124NGNG
>>135
すみません・・ 上げて頂いたお陰でレスが付いた事は感謝しています。

>>134
Read(), Write(), Close(), FindFile() 以外呼べないんですか・・・
ではファイルサイズはどうやって取得するのでしょうか?

ちょっと、またテストプログラム書いてから来ます。
0141デフォルトの名無しさんNGNG
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/vcrefcinternetfilegetlength.asp
まあこれを見る限りではファイルサイズを得るには>>124でいいみたいだけど(%uを使っているのは別として)
0142デフォルトの名無しさんNGNG
サーバがSIZEコマンド対応してないか、
ls -lの結果がCFtpConnectionでパーズ出来ない形式なんだろう。

別のサーバで試してみたら?
いずれにせよ、ftpでファイルサイズが必ず取得できると
仮定したプログラムはまずい。サーバ固定でないのなら。
0143124NGNG
>>142
なるほど! 勉強になりました!
要するに、FTPではサーバによってはファイルサイズが取得出来ないという事ですね。

ファイルサイズが取得出来ないので、カッコ悪いですが、こんな感じにしました。
char tmp[128];
DWORD size;
vector<char> buf;
while(size = pFile->Read(tmp, sizeof(tmp))){
for(int i = 0; i < size; ++i){ buf.push_back(tmp[i]); }
}
0144デフォルトの名無しさんNGNG
だせー
0145デフォルトの名無しさんNGNG
>>144
スマートな方法ありますか?
0146デフォルトの名無しさんNGNG
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_mfc_cftpfilefind.asp
こんなのは?
0147デフォルトの名無しさんNGNG
>>124
また荒しが粘着しているみたいなんで放置。
0148デフォルトの名無しさんNGNG
147=某スレの88
0149デフォルトの名無しさんNGNG
すみません。質問させてください。
ネットワークプログラミングっていうのは、一番上の層での話ですか?
業務
〜〜〜〜〜
基盤
〜〜〜〜〜
ネットワーク
って感じで層構造になっているじゃないですか?
それの一番上の層での話ですか?
0150デフォルトの名無しさんNGNG
OSIの下の方
0151デフォルトの名無しさんNGNG
え?下の方?
情報システム板で聞いたら、ネットワークエンジニアはOSIの下層をやるから
プログラミングなんて関係ない、と聞いたのですが・・・。
0152デフォルトの名無しさんNGNG
それはネットワークエンジニアの話だろ
0153デフォルトの名無しさんNGNG
>>151
くだらん事に頭使うヒマがあったら仕事しろ
0154デフォルトの名無しさんNGNG
>>152
はい。ネットワークエンジニアのことです。
初心者ですまそ。
0155デフォルトの名無しさんNGNG
とりあえずソケット使ってれば
ネットワークプログラミングしてるって言えなくも無い
0156デフォルトの名無しさんNGNG
いや、来年就職活動です。
業務系・基盤系・ネットワーク系のどれが自分にあってるのか、模索してます。
0157デフォルトの名無しさんNGNG
あんまり厳密にわけなくても・・
大きくない会社だとなんでもやらされるし
0158デフォルトの名無しさんNGNG
>>156
なんにしろ、プログラマー板でやれよ
0159デフォルトの名無しさんNGNG
>>151
下の層だからプログラミング関係ないという事はないだろ。
スイッチングHUBだってソフトウェアで動いているんだから。

機械のお守りするだけの人ならプログラミングは必要ないけどね。
0160デフォルトの名無しさんNGNG
>>149
一番上は political or religious layer だろ。
0161デフォルトの名無しさんNGNG
>>160
この馬鹿野郎が
0162デフォルトの名無しさんNGNG
どこにでもいるんだな、>>160のように空気の読めない奴が。
0163デフォルトの名無しさんNGNG
すみません。最後に一つだけ。
では、ネットワークエンジニアだったら、プログラミングはあまり関係ないということですか?
0164デフォルトの名無しさんNGNG
情報システム板に行け。あそこは就職情報の板だから。
http://science3.2ch.net/infosys/
0165デフォルトの名無しさんNGNG
ネットワークエンジニアは大雑把に分けて
1. ソフト(プログラム)を作る人
2. ハードを作る人
3. 1.2.を設置・運用する人
に分類されていてプログラミングをするのは1.の人だけ。
だから仕事によってはプログラミングする。
0166デフォルトの名無しさんNGNG
>>165
ありがとうございます。ネットワークの設計・構築・運用をやってみたいと思っています。
ということは3.ですね。
みなさん、お邪魔しました。どうも!
0167デフォルトの名無しさんNGNG
1.2.は通信機器を開発してる人ってこと?
で、3.がNEか。
0168デフォルトの名無しさんNGNG
1.2.はあまりネットワークエンジニアとは呼ばないんじゃ?
0169デフォルトの名無しさんNGNG
>>168
あくまでも、ネットワーク関連に携わる人の種類、ってことだろ。
0170デフォルトの名無しさんNGNG
れんさば屋は3か
0171デフォルトの名無しさんNGNG
>>170
サーバ管理者であって、ネットワークエンジニアじゃないだろ。
0172デフォルトの名無しさんNGNG
ネットワークエンジニアの定義がわからん
つーかスレ違いsage…
0173デフォルトの名無しさんNGNG
プログラミングってキーワードを出しまくってる割に選ばなかったってことは、
>>166は苦手なんだな
0174デフォルトの名無しさんNGNG
>>173
再び参上。

そうなんです。苦手というか興味がないというか。
0175デフォルトの名無しさんNGNG
>>174
どうでもいいから、ここから立ち去れ。
0176デフォルトの名無しさんNGNG
話を振ってきたから再び書き込んだのに・・。
ウワアア━━━━━(`Д')━━━━━ ン ...
0177デフォルトの名無しさんNGNG
うざ……
0178デフォルトの名無しさんNGNG
ネットワークの設置やら保守なんてつまんなそう。
ソフト書くほうがよっぽどいいと思うが。
0179デフォルトの名無しさんNGNG
床下に潜ってUTPケーブル這わせるだけでPGと同程度の給料がもらえます。
残業もほとんど無いし。
0180デフォルトの名無しさんNGNG
だな
0181デフォルトの名無しさんNGNG
WAN内でウィルス蔓延して、L3スイッチが高負荷で落ちて休日出勤とか、
SNMPマネージャのバグで基幹系ルータの設定がぐちゃになって、
ルータメーカのエンジニアとマシン室で一夜を明かしたり。
0182デフォルトの名無しさんNGNG
PGよりマシだな
0183デフォルトの名無しさんNGNG
>>179
そういうのの作業マニュアルを書く人を
おれはこの世で3番目くらいに尊敬する
0184デフォルトの名無しさんNGNG
>>183
たいてい既存のドキュメントの切り貼りなんでつまんねーよ。
具体的には、コーディングが終わった後で作る納品用仕様書の次につまらない。

実際に作業するのはど素人だったりするんで、図解入れたりしてやらないと
いけないのは面倒だが。
0185デフォルトの名無しさんNGNG
>>184
そうか・・・
マニュアル作成能力はオレには実装されてない機能だったから
あこがれてたんだよ
0186デフォルトの名無しさんNGNG
0187デフォルトの名無しさんNGNG
初心者です
FreeBSDを入れたPCにNICを2枚差して、ルーターではなく
サーバーAとサーバーBのクライアント(データーの受取)として
動作させたいんですが、socket()以下の書き方が判らずnetを探して
も、例がなくて困っております。
どなたかご教授願えませんか?
0188デフォルトの名無しさんNGNG
>>187
bind()で、INADDR_ANYでbindするのではなく、
それぞれのインターフェイスについてるアドレスでbindすれば良い。
0189デフォルトの名無しさんNGNG
>>188
なーんだ、ってとこです。
1週間悩んでいましたが、、、周りに詳しいのが
いないもんで。(中小企業)
ありがとうございました。
0190デフォルトの名無しさんNGNG
APUE買いなさい。
0191デフォルトの名無しさんNGNG
>>189
ソースを読め、ソースを。
ソースは君のお友達だよ!
いつでも君を待っている。
0192デフォルトの名無しさんNGNG
二言目にはソースを読めなんていってるけど
ソースを読んで理解できる程度の知識があるなら
こんなところで質問しないと思うが・・・
0193デフォルトの名無しさんNGNG
>>192
知識の問題じゃない。
理解しようという努力を怠ってるだけだ。
0194デフォルトの名無しさんNGNG
>>189はそうじゃないだろ。
0195デフォルトの名無しさんNGNG
bindが何の為にあるのかという意味を・・・
0196デフォルトの名無しさんNGNG
確かに質問スレでソースを読めなんていうレスは要らない罠。
0197デフォルトの名無しさんNGNG
ソースを読めば解決する質問もいらない
0198デフォルトの名無しさんNGNG
ソース読んで解決しない問題とは?このスレいらないじゃん
0199デフォルトの名無しさんNGNG
ソースに間違いが無いとは限らない。
0200デフォルトの名無しさんNGNG
ちゃんとドキュメント書けよ
0201デフォルトの名無しさんNGNG
ERROR:もうちょっと落ち着いて書きこみしてください。8秒ぐらい。


ホストnanashi.net

名前: デフォルトの名無しさん
E-mail:
内容:
201げっと
0202デフォルトの名無しさんNGNG
引きこもってソフトウェアのソース読んでるようなヲタクばかり
じゃないんだから・・・
いやいややらされてる身にもなれ
0203デフォルトの名無しさんNGNG
仕事としてベストを尽くせないやつはゴミ
0204デフォルトの名無しさんNGNG
>>202
辞めるのは自由ですよ。
0205デフォルトの名無しさんNGNG
嫌々やってるとストレス溜まるし、コルチゾールやインスリンが過剰分泌されて
肥満になったり鬱になったりするんだよね。 
その先には、生活習慣病や免疫力低下、更には発癌が待ってる。

楽しめないなら早めに見切って転職するのが吉かな
0206デフォルトの名無しさんNGNG
>>191だ、ちょっと待ってくれ。
ソースって言ったのは>>189が

> 1週間悩んでいましたが、、、周りに詳しいのが
> いないもんで。(中小企業)

って言ったからだ。毎回掲示板じゃ面倒だから、
ソースも読めるようになった方がいいだろ?

俺を置いてきぼりにして荒れないでくれ。
0207デフォルトの名無しさんNGNG
宿題でUDPでTCPのようにエラー処理をし、相手に確実にデータを送れるようにしなさい。
と言うのが出ました。
Winsockを使い、5秒でタイムアウトするまで送れるようにし、タイムアウトするとエラーを返すようなのを組む問題です。

どのようにすればいいのでしょうか?
CRCチェックをするにも、そのチェック情報自体のチェックが必要だと思われますし・・・
フラグで破損の場合、破棄するようにしても、相手に届いたかどうかのチェック自体が届かない場合の処理などなど
どのように解決するとスマートに出来るのでしょうか?

宜しくお願いします。
0208デフォルトの名無しさんNGNG
>>207
がんばれ。
0209デフォルトの名無しさんNGNG
>>207
それはだね、UDPを使ってTCPを自力で実装しなさいという事なので、
>>1以下にあるリンクや本を漁れという、辛い修行なのだよ
0210207NGNG
>>209
マジですか・・・
そんなに大変だったのですが・・・。

どうりで一ヶ月も期間をくれたわけか・・・
早くから手を付けといてよかった・・・。
危うく提出五日前辺りから手を付けて泣きを見る所でした。。。
0211デフォルトの名無しさんNGNG
一番手っ取り早いのが、データをブロック単位に分けて
それらのチェック用データを先に相手側へ転送
相手側がチェック用データを要求する形でブロック単位で転送していく
相手側は要求したデータが来るまで要求し続ける。
最後に相手側が転送完了データを送信側に送って来た時点で、送信側のバッファを開放する。
そのデータが来なかった場合、タイムアウト時間を過ぎれば強制的にエラー吐いてタイムアウトを出せば良い。

受信側も要求したデータがいつまでたっても来なかった場合はタイムアウトを出す。
0212211NGNG
付け足し。

送信先にデータが届いており、送信側に完了データが届かずにタイムアウトしたとして
プログラム側から再度データを送ろうとした時は、受信側はずっと完了データを送り続けるようにする。
0213デフォルトの名無しさんNGNG
>それらのチェック用データを先に相手側へ転送

このデータが壊れてたり届かなかったときは?
0214デフォルトの名無しさんNGNG
>>213
相手からの要求が来なければタイムアウトだから、その場合はタイムアウトでしょ
0215デフォルトの名無しさんNGNG
>>207
>CRCチェックをするにも、そのチェック情報自体のチェックが必要だと思われますし・・・
一致しなければデータとCRC共に間違ってるとして扱えばいい
0216デフォルトの名無しさんNGNG
そもそもUDPってフラグ指定でデータ化けしたら破棄するから
届くか届かないかしかないんじゃないかね?
0217デフォルトの名無しさんNGNG
宿題なんだから自分で考えないと意味無いじゃん。
教えたがりもいいけどさ。
0218デフォルトの名無しさんNGNG
しかも>211はセンスが悪い。
0219デフォルトの名無しさんNGNG
>>218
じゃあセンスの良い方法を挙げてみろよ。
0220デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1095075678/981-982
0221デフォルトの名無しさんNGNG
>>216
それと、パケットの到達順序くらいか。
UDP使ったことないんで、普通の状態で順番の入れ替わりが
おきるのかどうか知らんけど。
0222デフォルトの名無しさんNGNG
おきまくり
0223デフォルトの名無しさんNGNG
ネタにマジレスするのもあれだけど、
おきまくりだったな。
ローカルでやってもおきた。
0224デフォルトの名無しさんNGNG
>>207
>211のように横着すると,このようにネタにされるわけです。

ちゃんと,>>1以下のリンクや本漁れよ〜。
0225デフォルトの名無しさんNGNG
手間かかる割に意味のない課題だな
0226デフォルトの名無しさんNGNG
車輪の再発明だしな('A`)

大昔の資料だけどこんなのが役に立つんでね?
ttp://www.st.rim.or.jp/~phinloda/proto.html
0227デフォルトの名無しさんNGNG
届かないとか壊れたりとかならまだマシだが、順序が変わるのはめんどくさい
0228デフォルトの名無しさんNGNG
問題は順序だな・・・
0229デフォルトの名無しさんNGNG
プールしてソートすればいいだけ
0230デフォルトの名無しさんNGNG
>>229
・・・・は?何を基準にソート?
0231デフォルトの名無しさんNGNG
送るデータそのものに番号も付加しとけば良いだけじゃない?
0232デフォルトの名無しさんNGNG
そんな簡単な物だったら誰も何も言わないわな
0233デフォルトの名無しさんNGNG
なんの基準もなしに並べ替えたいなら超能力でも使っとけ。
0234デフォルトの名無しさんNGNG
>>233
そういう問題で言ってるんじゃないだろう。
まあやってみなよ。
0235デフォルトの名無しさんNGNG
何の説明もなしに脳内問題を持ち出されても意味わからん。
0236デフォルトの名無しさんNGNG
問題 >>207
0237デフォルトの名無しさんNGNG
お前が何を問題にしているのかと聞いてるんだが。
ID仕込んで何がまずいんだ?
0238デフォルトの名無しさんNGNG
>>237
IDしこんだだけじゃ無理だろ
0239デフォルトの名無しさんNGNG
実際にやってみればすぐに。
0240デフォルトの名無しさんNGNG
本当にそんな難問が宿題なのかよ。
俺だったら月60万で2ヶ月もらっても自身がないな。
0241デフォルトの名無しさんNGNG
先生が簡単にできるであろうと考えて問題作ったのならご愁傷様だな
0242デフォルトの名無しさんNGNG
>>240
宿題なんだから、こんなもんだろ。
仕事で受けるような課題じゃ意味ないし。
0243デフォルトの名無しさんNGNG
・タイムアウト5秒
・UDPを使って確実にデータを送る

確実にデータを受けとる必要は無いみたいだぞ?
0244デフォルトの名無しさんNGNG
>>243
ガキかお前は
0245デフォルトの名無しさんNGNG
スマートに作ろうとすると難しいよ。
ヘンテコなプログラムで我慢しる。
0246デフォルトの名無しさんNGNG
うち、通信系を重視する大学なんだけどさ
エラー訂正とSocketの勉強が同時に出来るって事でUDPでTCPモドキな実装の宿題出された事あったよ。

送れなかったら送れないとエラーを表示さえ出来ればOKな問題だったので、何とかなったけど・・・
でも、多分殆ど送れないソースだったろうなぁ・・、課題としてはOKだったので問題なかったけどw
0247デフォルトの名無しさんNGNG
じゃあ、常にエラーでどうよ?w
0248デフォルトの名無しさんNGNG
なにもしないで5秒間待て。
0249デフォルトの名無しさんNGNG
つーかさ
昔のパソコン通信はどうしてたんだ?
UDPみたいな感じだったんでしょ?
送信順序とかデータチェックとかどうやってたのかね?
0250デフォルトの名無しさんNGNG
MNPつーのがあったけど。
0251デフォルトの名無しさんNGNG
ていうかこんなの簡単だろ。
お前らレベル低すぎ。
0252デフォルトの名無しさんNGNG
昔はパケット交換じゃなかったしな。
0253デフォルトの名無しさんNGNG
>>251
じゃあお前のレベルとやらを披露してみせろや
簡単な概要で良いから手段を挙げろ。
0254デフォルトの名無しさんNGNG
留byさいこー
0255デフォルトの名無しさんNGNG
ここのスレで回答してる人はスキル高そうなんで勉強がてらみてるけど
全然具体的な答えを書かないので勉強にならなかったり

素直に>>1からのリンクをみた方がいいかな
0256デフォルトの名無しさんNGNG
送信側はデータを分割して
ID(4byte)+DATALEN(4byte)+DATA(DATALENbyte)
という形式で送信する。IDは0から1ずつ増やしていく。
データの終わりはDATALENに0を指定する。

受信側はデータを受け取ったらその印にIDだけを投げ返す。まとめて投げても構わない。
データは保存しておき最も若いIDが存在するならそれをアプリに渡して破棄する。
# 0, 3(データの終わり), 2, 1の順に受け取ったら0をアプリに渡し、1を待ってから1, 2, 3と渡す。

送信側は受信側からの受け取り通知のあったIDのデータを破棄する。
送信して受け取り通知のないまま1秒経過したデータを再送する。
5回再送してもなお通知がなければ送信を打ち切る。

受信側は最初の受信から5秒間受信がなければ受信を打ち切る。

データの破損は考慮しない。UDPに任せる。
同時に送信するデータの個数は受け取り通知を見ながら調整する。
# 同時送信を1にすれば順番を考慮する必要はないので実装が楽になる。
# ただしパフォーマンスが落ちる。
0257デフォルトの名無しさんNGNG
>>256
質問。
ラストの0を受け取った受信側が番号の0を送信側に送るみたいですが
それがもし届かなかった場合。
受信側では受信は完了してるのに、送信側は完了してないと言う矛盾が発生すると思われるのですが・・・
0258デフォルトの名無しさんNGNG
再度0を送ればいいんじゃない?
0259デフォルトの名無しさんNGNG
っていうかパケロスとか順番入れ替わったときの
補正機能の実装が出来たとしても確認試験とかそういうのが
えらい大変そう。
0260デフォルトの名無しさんNGNG
>>257
それはキリがないのでどこであきらめるかという話になる。

受信完了が送信側に届かないことがあるので
受信完了のackをを返してもらうことにして届くまで再送しよう
↓
受信完了ackが受信側に届かないことがあるので、
受信完了ackのackを返してもらうことにして届くまで再送しよう
↓
受信完了ackのackが送信側に届かないことがあるので、
受信完了ackのackのackを返してもらうことにして届くまで再送しよう
↓
...

0261カントールNGNG
ノープロブレム
0262デフォルトの名無しさんNGNG
順番が飛んだら、思いきって捨てましょう。
後は確認応答、リトライだけでなんとかなるんでない。
0263デフォルトの名無しさんNGNG
・・・
0264デフォルトの名無しさんNGNG
こればかりは真面目に考えた事が無い人にはわからんだろう
才能ある人は、なんとかなるんでない なんて言えないよな
0265デフォルトの名無しさんNGNG
白ヤギさんからお手紙着いた
黒ヤギさんたら読まずに食べた
しかたがないからお手紙書いた
「さっきのお手紙ご用事なぁに?」
0266デフォルトの名無しさんNGNG
ウィンドウ制御の実装か...
低レベル過ぎて詰まらん

0267デフォルトの名無しさんNGNG
>>257
その食い違いが発生しても受信側は困らないから問題ない。
どうしても厳密にやりたいなら受信側が最後に終了通知を投げて
その応答がなかったらエラーにすればいい。

>>259
テストはライブラリのデバッグビルドでn%の確率で故意に順番入れ替えたり
ロストさせたり受信通知を送信しなかったりすればいい。
アプリがデータの整合性チェックするようにすれば異常も検出できるし。
あと同時に100プロセスとか立ち上げてこの方式が破綻する様を眺めてみるのも面白いかも。
帯域埋める->UDPロストしまくり->再送されまくりの悪循環

>>262
どっちみち複数のUDPを同時に受信して溜め込むようにしないと
パフォーマンスがた落ちになるから整列させる機能をつけない手はない。
0268デフォルトの名無しさんNGNG
>>267
>帯域埋める->UDPロストしまくり->再送されまくりの悪循環
タイムアウト5秒で終了だな
0269デフォルトの名無しさんNGNG
再送って、もっと下の層でも行われてなかったっけ?
0270デフォルトの名無しさんNGNG
どの層だよ。
0271デフォルトの名無しさんNGNG
コリジョン層
0272デフォルトの名無しさんNGNG
コチジャン層?
0273デフォルトの名無しさんNGNG
おねーさん、ナムル追加ね
0274デフォルトの名無しさんNGNG
まず、カルビを全部網の上に並べるのよ。
そこでタイマーをセットする、タイムアウト時間は50秒ね。
タイムアウトが発生したら一気にID番号順に喰い始める。
ここでもたもたしてると肉が黒焦げになってロストするから要注意だ。
0275デフォルトの名無しさんNGNG
>>274
先生! ID順に食べてるんですが真ん中にあるカルビが焦げてます!
0276デフォルトの名無しさんNGNG
>>275
焦げてロストしたらリセットして再送要求を送るのよ。

おねーさん、カルビもう一人前追加
0277デフォルトの名無しさんNGNG
先生! ホルモンがくっいて境目も順序もわかりません!
0278デフォルトの名無しさんNGNG
>>277
そうなったらリセットです。

おねーさん、焼き網交換して
0279デフォルトの名無しさんNGNG
我々のカルビが隣りの席に行ってしまったみたいです…
0280デフォルトの名無しさんNGNG
すみませんC言語の宿題スレで質問したのですがこっち向きかと思い来ました。
すれ違いでしたらゴメンナサイ

http://www.geocities.jp/i035192/forksample.c
上のプログラムの実行結果をもとに
fork関数の使い方と親プロセスと子プロセスの処理について説明せよ

ネットワークアプリケーションとして複数のクライアントからの要求を受け付けるサーバプログラムの例をあげ説明せよ

すみませんが、この2つについて教えてください
0281デフォルトの名無しさんNGNG
(・3・)
0282デフォルトの名無しさんNGNG
思考停止して丸投げするなら宿題スレでやれ。
覚える気があるならここでも読んどけ。
http://x68000.q-e-d.net/~68user/net/
0283デフォルトの名無しさんNGNG
>>282
宿題スレにも投げてるんだよ、彼は
何故誰も答えないかもわからず、あちこちに投げまくってるようだが。
0284デフォルトの名無しさんNGNG
宿題スレは答えてやればいいのにな。
俺は行かないけどな。
0285デフォルトの名無しさんNGNG
Google代行者に成り下がるような気分でイヤだ
0286デフォルトの名無しさんNGNG
>>285
Google宣伝者に成り下がる気分は良いのか?
0287デフォルトの名無しさんNGNG
>>286
なにそれ
意味わかんねえよ氏ね
0288デフォルトの名無しさんNGNG
自分がわからなければ氏ねという低脳が居るのはここですか?w
0289デフォルトの名無しさんNGNG
最近の学校は図書館もないのか。
0290デフォルトの名無しさんNGNG
>>288
お前も同レベルだ
0291デフォルトの名無しさんNGNG
>>280
2ch
0292デフォルトの名無しさんNGNG
IPヘッダの先頭から9バイト目以降の8ビットの各値は、
デフォルトで0のようですが、任意のビットを立てる方法はないのでしょうか?
開発はVC++6.0です。
MFC使ったソケット通信プロセスに反映できないでしょうか?
0293デフォルトの名無しさんNGNG
bit立てても、立てた通りに届かないのでは?
0294デフォルトの名無しさんNGNG
>>292
9byte目ってprotocolか? それとも+8byte目のttlのことか?
なんにせよ意味のある値なので書き変えちゃダメ。
0295デフォルトの名無しさんNGNG
>>294
TypeofServiceの優先度0〜2とD・T・Rの部分の話なんですが。
0296デフォルトの名無しさんNGNG
独自プロトコルを定義したいのか?
0297デフォルトの名無しさんNGNG
10msec間隔でソケット通信をしたいのだけど
どうしても20000回に1度程度の割合で300msec程度の送信か受信遅延が
発生しています。それの解決方法の一つとして
優先度や遅延処理のビットを変更して試したいのです。
0298デフォルトの名無しさんNGNG
またお前か。
0299デフォルトの名無しさんNGNG
そうです
0300デフォルトの名無しさんNGNG
質問です。
IPアドレスからホスト名に変換する関数ってありませんか?
言語はCです。
0301デフォルトの名無しさんNGNG
gethostbyaddr
これしきのことすら知らなくてネットワークプログラムを書くのは無謀。

0302デフォルトの名無しさんNGNG
ネット周りのAPIなんて数限られてるんだから
遅延学習は非効率的だよな。
0303デフォルトの名無しさんNGNG
>>301
二行目は余計
0304デフォルトの名無しさんNGNG
事実だろ
0305デフォルトの名無しさんNGNG
ウザ
0306デフォルトの名無しさんNGNG
そうだけど・・・
0307デフォルトの名無しさんNGNG
ネットワークプログラムの場合、プログラマがタコなリスクはSEGVどころじゃないからねえ
セキュアなプログラミングが必要と叫ばれたのはもう数年以上前だけどまだ場末には全然浸透してないし
0308デフォルトの名無しさんNGNG
ウザ
0309デフォルトの名無しさんNGNG
今使ってるOSじゃSEGVなんて出ません!
0310デフォルトの名無しさんNGNG
MS-DOSでつか
0311デフォルトの名無しさんNGNG
OS板の貴公子が作っているOSとか
0312デフォルトの名無しさんNGNG
MXレコードを参照したいので,popenした後,標準出力から結果(nslookupした結果)を読んでいるのですが,
結果の途中でnull文字にぶち当たって,%s等をすると正確に全てを読み出せません.
MXレコードを参照するのはどんな方法で行うべきしょうか?
0313デフォルトの名無しさんNGNG
>>310
なんでわかったんだよ
('A`)
0314デフォルトの名無しさんNGNG
>>313
だってSEGVがないなんてまともなOSならほとんど考えられないし
つーかマジでMS-DOSでしたか
ご愁傷様('A`)
0315デフォルトの名無しさんNGNG
>>312
SPAMメーラ作ってる人ですか?
0316デフォルトの名無しさんNGNG
>>315
なんでわかったんだよ
('A`)
0317 ◆9dYLE8z3D6 NGNG
ふつーのSMTP鯖を勉強で作ってます
悪用する気はないです
ので,だれか回答お願いします
0318デフォルトの名無しさんNGNG
%s等をしないで別の方法を使う
0319デフォルトの名無しさんNGNG
普通のMTAはそんなショボいことはしない
0320デフォルトの名無しさんNGNG
>>317
2ch だからとか悪用とかいうのは抜きにしても、質問の仕方が悪すぎ。
 「%s等をすると正確に全てを読み出せません」
なんだこりゃ。質問事項すら手抜きする馬鹿に誰が回答するんだ。この馬鹿。
0321デフォルトの名無しさんNGNG
>>312
UNIXならres_query(3resolv)使えよ。
0322デフォルトの名無しさんNGNG
>>301
gethostbyaddrなんて古いAPIをいまさら持ち出すんじゃない。
POSIX的にはもうObsolescentとなってるぞ。
ttp://www.opengroup.org/onlinepubs/009695399/functions/gethostbyaddr.html
> The gethostbyaddr() and gethostbyname() functions may be withdrawn in a future version.

これからの時代、getnameinfo()すら知らなくてネットワークプログラムを書くのは無謀。
0323デフォルトの名無しさんNGNG
>>322
へぇ
0324デフォルトの名無しさんNGNG
>>322
今使えれば良いじゃん
0325デフォルトの名無しさんNGNG
これからの時代はJavaで書けば別にそんなもの知らなくてもいいような。
0326デフォルトの名無しさんNGNG
POSIXの規格制定って、今更って気がするよね
UNIX自体死滅の寸前なのに
動くのが遅すぎだよ
0327デフォルトの名無しさんNGNG
CはもうObsolescent
0328デフォルトの名無しさんNGNG
これからの時代、Cを使ってネットワークプログラムを書くのは無謀。
0329デフォルトの名無しさんNGNG
無謀も何もバッファオーバーフローしまくりで破綻してる品。
0330デフォルトの名無しさんNGNG
かといってJavaでサーバ作るのもなー
0331デフォルトの名無しさんNGNG
初歩的な質問ですがお願いします

Win32で名前つきパイプを使っているのですが、
サーバ側で、UNIXでいうselect()やpoll()の様に多重待ち(?)
を実現するのはどうやればいいんでしょうか
0332デフォルトの名無しさんNGNG
>>331
select
0333デフォルトの名無しさんNGNG
なんで、Win使ってるのにイベント駆動型にしないんだろ・・・
といつも思うのは俺だけ?

0334331NGNG
調べてみました
WaitForMultipleObjects()
が使えそうなのでコレでやってみます

0335デフォルトの名無しさんNGNG
WSAWaitForMultipleEventsのほうがいいかもな
0336デフォルトの名無しさんNGNG
WSAWaitForMultipleEvents
ってNamedPipeで使えるのかな
0337デフォルトの名無しさんNGNG
イベントで待ち合わせられるソケットの最大数は制限がある。
しかもかなり低め。本格的なサーバには使えない。
素直にメッセージループで処理するのが吉。
WindowsOSとsocketの親和性は次の通り。

WinProc > WaitForXXX > select
0338デフォルトの名無しさんNGNG
重複I/Oでブロッキングせずにガンガン処理していった方が
パフォーマンスも良くなるし、簡単に実装出来る様な・・・
0339デフォルトの名無しさんNGNG
>>338
MAXIMUM_WAIT_OBJECTS はいくつになってる?
想定される実用サーバの同時クライアント接続数と比較してみるとどうだろうか?
とうてい使い物にならないことがわかるはずだ。
0340デフォルトの名無しさんNGNG
WaitForXXXは噂に反して、決して低負荷じゃない。
噂に流されないよう注意。
0341デフォルトの名無しさんNGNG
WinでサーバサイドならIOCPじゃないのか。
0342デフォルトの名無しさんNGNG
おまいらココ嫁
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/articles/io-strategies.html
0343デフォルトの名無しさんNGNG
そうなんだ
selectって万能だから好んで使ってたんだけど
0344デフォルトの名無しさんNGNG
>>343
WSAAsyncSelect使え
0345デフォルトの名無しさんNGNG
>>344
や、Windowsじゃないし
0346デフォルトの名無しさんNGNG
>>345
>>342はWinsockについて書いたものだ。
0347デフォルトの名無しさんNGNG
UNIXでTCPを使って通信をしたいのですが、どのヘッダをインクルードして、どの関数を使えばよいのでしょうか?
0348rNGNG
www.turbolinux.co.jp/world/library/features/c_magazine/vol_11.html
自分はここを参考にしました

>>347
0349デフォルトの名無しさんNGNG
>>347
ヘッダはいろいろあるよ。
そういうのはまとまった情報無いんで。
10のうち真実が1しかないような初心者向け解説サイト
がたくさんあるから一通り読んで。
0350デフォルトの名無しさんNGNG
StevensのUNIX Network Programmingの和訳を買え。
0351デフォルトの名無しさんNGNG
> ヘッダはいろいろあるよ。
> そういうのはまとまった情報無いんで。

は?
 使いたい関数の man を読め。必要な include ファイルが書いてある。
でおしまいじゃん。
0352デフォルトの名無しさんNGNG
>>351
自分がどの関数を使いたいかなんて素人にわかるわけ無いじゃん
0353デフォルトの名無しさんNGNG
よって>>350が結論。
0354351NGNG
「どの関数を」ってのを読み落としていたじゃん。
0355デフォルトの名無しさんNGNG
WindowsのオーバーラップI/OとI/O完了ポートを使ってサーバを作ろうとしてます。
MSDNライブラリなどを見て、とりあえず1つのクライアントの接続を受け付けて
送受信を行うプログラムは動作したのですが、
なにぶん情報が少なくてよくワカンナイコトがいっぱいです。

1)複数の接続を受け入れる場合はバックログの数だけソケット確保・AcceptEXを
  しておいて適宜追加していく、という方法で良いのでしょうか。

2)AcceptEXは接続受け入れと最初のパケットの受信を行いますが
  クライアントが接続してきたにも関わらず何も送信してこない場合には
  とりあえず接続だけ確認して、しばらく待って何も送ってこないようなら
  切断したいのですが、コレはどのように対処すれば良いのでしょうか...

なんか根本的に間違ってる気がしないでもないのですが
アドバイスしていただけるとありがたいです。
0356デフォルトの名無しさんNGNG
proposed-updates って何?
0357356NGNG
ごめん誤爆した
0358デフォルトの名無しさんNGNG
>>355
無理だから止めとけ
0359デフォルトの名無しさんNGNG
>>355
この辺みてみたら?
http://www.codeproject.com/internet/JBSocketServer3.asp
0360355NGNG
>>359
ありが�d!超参考になったです( ´▽`)
0361デフォルトの名無しさんNGNG
コネクションの終了時に、相手のFINに対する応答でACKではなくRSTを返すって、
普通じゃないとはおもうんですが、実装のヒントいただけないですかね?

いきなりRSTっていうのはsetsockoptで、SO_LINGER使えば
できることはわかったんですがRSTの契機をを相手のFINに対して
行いたいんです。
0362デフォルトの名無しさんNGNG
>>361
「このままでは二人はダメになってしまうよ。もう別れようか・・・」

「うーん、あーごめんねーキャッチ入ったからー ばいばーい」 ガチャッ

「・・・」

あんまりだよそれは
0363デフォルトの名無しさんNGNG
>>362
そうそう、そんな感じ。
二股はおろか、百股くらいなんでわずらわしいのは全部リセットしたいんですw
別れの余韻(TIME_WAIT)も不要です。
0364デフォルトの名無しさんNGNG
RSTだと未受信のまで捨てられちまいそうな気がする
0365デフォルトの名無しさんNGNG
>>361
この辺読んで勉強しろ
http://www.sean.de/Solaris/ttcp-2.gif
http://www.sean.de/Solaris/ttcp.html
http://www.kohala.com/start/ttcp.html
0366デフォルトの名無しさんNGNG
Windowsの、しかもソケットじゃなくてMACアドレス取得に関しての
質問なのですが一応ネットワーク絡みということでこのスレで質問
させて下さい。
Win32APIのGetAdaptersInfoを使って全アダプタを調査、MACアドレスを
取得したのですが、IEEE1394のMACアドレスだけ取れませんでした。
ipconfig /allでも出てこないMACアドレスなのですが、getmac.exeでは
出てきます。どうやって取得するのでしょうか。
0367361NGNG
>>364
一般的にはそうですね。
けど、特殊な要件でRSTとばすのは上位のAPレベルではもう処理が
終わったタイミングなんでとりあえず、それは無視できます。

>>365
レス�d。
すいません。私がおバカなだけなのかもしれませんが、
残念ながら参考になりませんでした。
datagramのパケットにSYN/FINフラグの付けてパケットを減らすという技術は
わかりましたが、ちょっと意図するところと違ってそうです。

引き続き、なんか情報あればお願いします。
0368デフォルトの名無しさんNGNG
age
0369デフォルトの名無しさんNGNG
>>368
発言数が少ないわけでも無し、何故無意味に上げる?
0370デフォルトの名無しさんNGNG
age
0371デフォルトの名無しさんNGNG
>>369
アホを相手にしてはいけません
0372デフォルトの名無しさんNGNG
( ´-`).。o(ageただけで噛みつかれた・・・)
0373デフォルトの名無しさんNGNG
いらん事するからだろ
0374デフォルトの名無しさんNGNG
>>372
何のためにやってんだ?お前
0375デフォルトの名無しさんNGNG
>>374
なんか下がりすぎかなーと思って。
0376デフォルトの名無しさんNGNG
>>375
余計なお世話だからやめとけ
全部のスレがそんな事やったらどうなると思う?
0377デフォルトの名無しさんNGNG
>>376
ア ホ を相手にしてはいけません
0378デフォルトの名無しさんNGNG
>>367
馬鹿な考え休むに似たり。
0379776デフォルトの名無しさんNGNG
VC6とWinsockで簡単なチャットプログラムを組んでまして、
今まではchar型の文字列を↓のようなかたちでそのまま送受信してたのですが、

GetDlgItemText(hDlg,IDC_SENDTEXT,SendMsg,sizeof(SendMsg));//テキストボックスの文字を受け取って
send(sock,SendMsg,(int)strlen(SendMsg),0);//そのまま送信

これって文字列がそのまま覗き見されるような形で送受信されてるんでしょうか?
(基本的な部分の仕組みが分かってない…)
そうだとした場合、例えばですが、
内容を簡単に見られたくないテキストファイルをバイナリファイルにするような感じで
送受信するデータをバイナリ化するにはどうすればいいのでしょうか?
教えてください。お願いします。
0380デフォルトの名無しさんNGNG
テキストファイルをバイナリファイルにする方法を使えばいいのでは?
0381379NGNG
バイナリでファイル出力するときは確かWriteFile(〜)で
勝手にやってくれたように思いますが、、、これ以外方法をしらないんですが、
これでどうすればよいのか見当がつかないであります。
できればもう少し具体的に教えていただけないでしょうか。
0382デフォルトの名無しさんNGNG
カエサル暗号でも使っとけ。
0383デフォルトの名無しさんNGNG
fd = socket()でソケットを取得しておいて
その後、ネットワークのインターフェースをifdownしちゃったとしたら
このfdって使えるの?
その後でifupしたら、このfdって使えるの?
0384デフォルトの名無しさんNGNG
やってみりゃいいじゃん?
簡単に試せるでしょ。
0385デフォルトの名無しさんNGNG
g++ hoge.cc -lresolv
としてコンパイルしようとすると
usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../../../i-686-pc-cygwin/bin/ld:
cannot find -lresolv
collect2: ld returned 1 exit status
となってしまうのですが,解決策をお願いします.
Cygwinです.
0386デフォルトの名無しさんNGNG
resolvライブラリをインストールする。
0387デフォルトの名無しさんNGNG
BGPについて詳しく説明してるサイトってないですか?
0388デフォルトの名無しさんNGNG
本買え。最近出てなかったか?
ってーかBGPいじる奴がRFCも読めないんじゃ世の中迷惑するわけだが。
0389デフォルトの名無しさんNGNG
Windowsでファイルを転送するプログラムの具体的な例が欲しいんだけど
スレッドと非同期I/Oを組み合わせてCかC++かJavaで誰かプログラム書いてソース公開して!

と言ってみるとソースがあがってくるか試してみるテスト
0390デフォルトの名無しさんNGNG
javaならいくらでもあるだろ。探せ。
0391デフォルトの名無しさんNGNG
WinとUNIX系で、ソースコードコンパチなネットワークサーバープログラムを組みたいのですが
そういうのに適したライブラリとか無いですかね?
0392デフォルトの名無しさんNGNG
aprとかは?
俺はよく知らないけど
0393デフォルトの名無しさんNGNG
cygwin
0394デフォルトの名無しさんNGNG
Perl
0395デフォルトの名無しさんNGNG
boost::socket
ace
0396デフォルトの名無しさんNGNG
>>391
Java使えw
0397デフォルトの名無しさんNGNG
>>389
つーかソース手に入れて何すんの?
ファイル転送プログラムなんてググりゃすぐでてくるだろ
目的を聞かしてよ
0398デフォルトの名無しさんNGNG
>>395
boostにsocketなんてあったっけか?
0399デフォルトの名無しさんNGNG
>>398
pukiwikiに書いてある。
まだ正式実装はされてない模様。
0400デフォルトの名無しさんNGNG
>>399
探しちゃったじゃん、バカチンが...

でも仕様ドキュメントを見たけど、
select使ってんのね、Linuxは問題ないけどWindowsじゃパフォーマンスは期待できんなあ。
0401デフォルトの名無しさんNGNG
文句あるなら自分で作れよ
0402デフォルトの名無しさんNGNG
ACEだけど、日本で使ってるの見たこと無いなあ。
英語のトレーニングになるからと一応ドキュメントはチェックしたけど、話題にもならん。
0403デフォルトの名無しさんNGNG
>>401
Windows版はパフォーマンスやスケーラビリティが要求されない処理向きだよね。
0404デフォルトの名無しさんNGNG
>>400
Linuxだってパフォーマンス期待できないだろ。
0405デフォルトの名無しさんNGNG
Linuxでselectって実際どうなの?
ソケット周りはなんでもかんでもselectに押し込んじゃって
時間かかってほったらかせるのだけpthreadってのが
マイブームなんだけど
0406389NGNG
>>397
PureP2Pのファイル転送システムを作りたいんだよ
オープンソースにして漏れみたいな初心者プログラマーの
スキルアップに使えるようにしたいんだ

実際に作ろうと思ってるんだけどスレッドと非同期I/Oのところが
よくわかんないんだよ ググってもでてこないしね
0407デフォルトの名無しさんNGNG
>>406
このスレの>>1からを読んでも駄目なら何やっても駄目だな
0408デフォルトの名無しさんNGNG
Windowsでselect()はまずいだろ。
Unixのselect()使用のオープンソースをWindows環境にそのまま移植しようとして
返って手間がかかる羽目に陥るってのは、大抵のsocketプログラマが一度は経験する。
0409デフォルトの名無しさんNGNG
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostSocket
これか・・・

割と期待してたり
0410デフォルトの名無しさんNGNG
>>408
言いたいことがよくわからん。具体的に何がまずいの?
0411デフォルトの名無しさんNGNG
英語読めない俺はboost::socketの解説がされる入門書が出るまで待たねばなるまいか・・・

はぁ・・・
0412デフォルトの名無しさんNGNG
多分出ないよ
0413デフォルトの名無しさんNGNG
英語が読めないのにC++使ってるのかよ
0414デフォルトの名無しさんNGNG
国産のはずのRubyですら英語読めないといけないしな
0415デフォルトの名無しさんNGNG
ぶっちゃけ、英文で読んで意味が分からない文章というのは、
日本語だったとしても意味が分からないことが多い。
つまり、あまりに説明不足で説明したうちに入らないような文章は、
万国共通で存在するのである。
0416デフォルトの名無しさんNGNG
>>415
だから何?と聞き返したくなるような趣旨不明の文章の典型。
0417デフォルトの名無しさんNGNG
416はネタだよな・・・
0418デフォルトの名無しさんNGNG
で、Windowsではなんでselectまずいの?>408
0419マイク ◆yrBrqfF1Ew NGNG
Winsock 2.0プログラミングだかなんだかで
selectでブロックしてると
Windowsのメッセージイベントを処理しないとかあったような気がするな。
0420デフォルトの名無しさんNGNG
Windowsで関数名が全て小文字の関数を使うと格好悪いからでは?
0421デフォルトの名無しさんNGNG
>>419
それはWindowsのスレッドがわかってない無知のたわごとです。
selectしてブロックしてるからメッセージを処理できない当たり前であって、
select待ちをワーカースレッドに追いやれば済む問題ですよ。
ただしselectにタイムアウトを設定してポーリングで毎度アプリケーションの
終了要求等に答えるための処理が必要だとは思いますけど。
0422デフォルトの名無しさんNGNG
むしろ非同期メッセージ通知で処理するselectの代わりに用意されたWSA〜の方は
メッセージキュー処理に依存するので逆にパフォーマンスが悪くなったりする
弊害の方がやばいです。
素直にselect使いましょう。
0423デフォルトの名無しさんNGNG
>421
>メッセージを処理できない当たり前であって
メッセージを処理できないのが当たり前であって
の間違いです。
0424デフォルトの名無しさんNGNG
>>422
それは無いでしょ。 
select()は使うな、WSASelect()を使えというのが一般的だけどね。
勿論、実装次第でパフォーマンスが悪化するケースはあるだろうけど、
それは使い方がマズイだけでしょ?
まあ、ホントはIOCPとか使えば良いんだろうけど
0425デフォルトの名無しさんNGNG
おまいらココ嫁
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/articles/io-strategies.html
0426デフォルトの名無しさんNGNG
重複I/O使える環境で、オーバーラップI/O使わない理由ってあるの?
0427デフォルトの名無しさんNGNG
>>426
対話的処理とかで、応答の過半が UI スレッド(メインスレッド)の介入を必要するケースとか、
IOCP でやっても結局 UI スレッドにメッセージングで通知する(かつ転送量が少い)場合にはおとなしく
WSAAsyncホゲホゲ使っとくのがいいのかも知れない。

漏れはAPI覚えるのがメンドクサイからつい IOCP で何でもやっちゃうけど・・・
0428デフォルトの名無しさんNGNG
>>427
俺様専用お約束ライブラリを作っときゃいいじゃん。
0429デフォルトの名無しさんNGNG

















0430デフォルトの名無しさんNGNG
うーん、WinSOCKのLSPつかってみた。
WSAduplicatesocket()でlistenできなくなった。
回避方法しらない?
0431デフォルトの名無しさんNGNG
戻り値確認しる
0432デフォルトの名無しさんNGNG
>>431
いや、戻ってこないんだ。
0433デフォルトの名無しさんNGNG
>>408
どういうとこに困るの?
漏れは逆にWindows->Linuxの移植やってんだが、
Windows/Unixのselectを使用する際に気をつけるべき点とかあったら教えてください。
おながいします。
0434デフォルトの名無しさんNGNG
winsockのselectは64個まで
0435デフォルトの名無しさんNGNG
Linuxもそんなもんだろ
0436デフォルトの名無しさんNGNG
さすがに今の主なUNIX系OSでそんな制限はないだろ。昔はともかく。
0437デフォルトの名無しさんNGNG
ネ
0438デフォルトの名無しさんNGNG
>>434-435
それは本気で言っているのか?
0439デフォルトの名無しさんNGNG
selectって何であんなに変な仕様になったの?
ソケットの実装上あれが最適だったとか(まさかね・・・)。
そこらへんの歴史的経緯ってどっかに書いてあるのかな。
0440デフォルトの名無しさんNGNG
どこが変なのだ?
まずそれを書け。
0441デフォルトの名無しさんNGNG
とりあえずselectはソケット専用ではないですから!残念!
0442デフォルトの名無しさんNGNG
selectは変だとは思わないが、socket関連の関数群には変な仕様のものが多い
0443デフォルトの名無しさんNGNG
どこが変なのだ?
まずそれを書け。
0444デフォルトの名無しさんNGNG
変というか非効率的って事だな。
一ループごとに登録でループまわしてポーリングして
チェックでまたループまわしてで空振り多すぎ。
add_fd(this, fd), del_fd(this, fd), poll_fd(this, read_callback, write_callback)
なんてインターフェースにしとけば字面上は無駄なく書けるのに。
きっと設計時には数十程度のコネクションしか想定してなくててきとーに作ったんじゃないかと
想像してるんだけど真相はどんなものかと。

>>441
fdを統一的に扱えるから専用ではないけどソケットを想定してなきゃあんな大げさな仕様にはなってないだろ。
0445デフォルトの名無しさんNGNG
なんだ厨房か。
0446デフォルトの名無しさんNGNG
callbackって…
0447デフォルトの名無しさんNGNG
TCP/IPの実装はBSD UNIXの頃だからもう20年くらい経つんだよね。
ビルジョイは今何してんだろ?
0448デフォルトの名無しさんNGNG
そもそも、その時代はイベントの概念ないだろ・・・
OSが到達を教えてくれるなんて親切設計になったのは、つい最近の話だよ。
それまでは全てプログラム側でチェックしなきゃいけなかった。
0449デフォルトの名無しさんNGNG
signalはイベントですよ。

マルチスレッド環境じゃないと、I/Oのイベントを効率的に使いづらいね。
0450デフォルトの名無しさんNGNG
>>444
つうかselectはsocketができるよりも前にすでにあったんじゃないか?
0451デフォルトの名無しさんNGNG
妄想はいいからソース出せ
0452デフォルトの名無しさんNGNG
selectもsocketもマニュアルには4.2BSDからと書いてあるので
同時といってもいいんじゃないのかね。
0453デフォルトの名無しさんNGNG
>>451
ソケットのソースなんていくらでもあるだろ。
てめーがソース読めないだけだろ!
0454デフォルトの名無しさんNGNG
スレ違いかもですが、
会社がウィルス(W32.Beagle.AV@mm)にやられちゃったみたいです。
明日、ローラー作戦で退治させられると思うと激しく鬱なんです。
なんかパケット追跡して変なメール出してたりアクセスしてるPCを特定しちゃうような
プログラムって簡単に作れないでしょうか?
力業で探すのはとてもつかれるので。。。
0455デフォルトの名無しさんNGNG
普通にログ見ればいいじゃん。
0456454NGNG
>>455
あ、そうか!そうだよ。サンクスです。m(__)m
あれ、でもメールsubjectとかもログされるんだったか。。な
明日出勤したらちょっと調べてみるです。
0457デフォルトの名無しさんNGNG
>>444
select はシステムコールで、カーネル側で実行されるから、
そこからユーザプログラムの関数を呼ぶなんて無理。
signal みたいなことをやると、そこからは async signal safe
な関数しか呼べなくなるから、プログラミングが困難。

でもまあ今時の *BSD にある kqueue は、add_fd に近い発想。
libevent は、callback 登録方式なので、まさに 444みたいな
感じ。libevent はユーザランド実装なので、async 問題はない
のね。
0458デフォルトの名無しさんNGNG
>>456
あふぉ発見
0459デフォルトの名無しさんNGNG
>>457
>select はシステムコールで、カーネル側で実行されるから
?
0460デフォルトの名無しさんNGNG
?
0461デフォルトの名無しさんNGNG
!
0462デフォルトの名無しさんNGNG
@
0463デフォルトの名無しさんNGNG
@!ため吾郎
0464デフォルトの名無しさんNGNG
>>459
select はシステムコールでしょ?
0465デフォルトの名無しさんNGNG
質問です。
winsock2が使える環境で以下の二つのプロセスがあります。
 ・プロセスA : ソケットの作成、listenまでを行う。プロセスBを起動。listenを行ったソケットハンドルを複製してプロセスBにパイプを使って渡す。
 ・プロセスB : パイプ経由でプロセスAから渡されたソケットハンドルを使用してAcceptを行う。
ここでプロセスAで、WSADuplicateSocketを使用してソケットを複製するとハンドル数(タスクマネージャーに表示されるハンドル数)が
増加していきます。
ハンドル数の増加を防止する為に、複製したソケットハンドルをプロセスBに渡した後にプロセスAで明示的にクローズしたいのですが
プロセスAでclosesocketを使用してクローズしようとするとエラーが返ってきます。
(closesocketに渡すソケットハンドルは、WSADuplicateSocketで取得したWSAPROTOCOL_INFO構造体をWSASocket関数に渡して作成してハンドルです。)
この為、プロセスAがプロセスBを起動するたびにハンドル数が増加していって困っています。
同様の現象が起こった方がいらっしゃればどのような対策をされたか伺いたいです。
0466デフォルトの名無しさんNGNG
B->Aの順に両方閉じる
0467デフォルトの名無しさんNGNG
PunchingHoleUDPを簡単に利用する為のDLL作ったけど需要あるのかな?
今はとてもじゃないけど外部に公開できる状態じゃないので、需要あるなら色々手直しして公開してみようと思うけど・・・

ちなみに、サーバーサイドにDLLを置いて、サーバーだけはTCPで接続して、設定したバッファーサイズ分ブロックにわけて
そいつのhashをサーバー経由で相手に確実に送った後、データを転送。
バッファーサイズが到達する度にhashの同一チェックしてサーバー経由で確実に届いたと知らせるようなシステムなんだけどね。

サーバーのレスポンスが悪いと、到達通達が送れて、せっかく転送速度速くても遅くなってしまうと言う難点あり。
0468デフォルトの名無しさんNGNG
うpきぼんぬ
ソースも公開してくれるとなお嬉しい
0469デフォルトの名無しさんNGNG
>>467
その素晴らしい作品をネタに議論して盛り上がろうよ。
0470デフォルトの名無しさんNGNG
到達通知がサーバ経由なのが解せない・・・
別に批評でもなんでもないけど。
0471デフォルトの名無しさんNGNG
>>470
UDPだけで完全なTCPエミュレーションが不可能なのは過去logの議論で実証されてるだろ。
UDPだけだと、到達通知が確実に届いたと言う通知のエラー処理をせねばならない。でそのエラー処理のエラー処理が(ry
とキリが無いって話だったはず。
0472デフォルトの名無しさんNGNG
鯖味噌なんだろ
0473デフォルトの名無しさんNGNG
TCPはUDPと同様に不確実なIPで実装されてるのに不可能なの?
0474デフォルトの名無しさんNGNG
WindowsXPではOverIEEE1394が使えますが
Windows2000用のドライバってないですか?
0475デフォルトの名無しさんNGNG
>>471
ソース希望。
0476デフォルトの名無しさんNGNG
>>471
難しいという話は出たが、不可能と実証されたっけ?
0477デフォルトの名無しさんNGNG
ソース期待age!
0478デフォルトの名無しさんNGNG
>>476
確か直近の関連したカキコで、
・宿題で UDP でエラー訂正してXXXってのが出た
・TCP のプロトコルの説明読め
ってのがあったような気がする・・・

そもそも別に難しくない。世のほぼ全ての P2P ソフトが普通にやってることだし。
0479デフォルトの名無しさんNGNG
P2PはTCPだろ
0480デフォルトの名無しさんNGNG
WinMXはUDPも使っている。
0481デフォルトの名無しさんNGNG
TCPがやっていることを、UDPを使って模擬ることは
普通に出来るでしょ。
0482デフォルトの名無しさんNGNG
>>478
「ほぼ全て」のところのソース希望
0483デフォルトの名無しさんNGNG
難しくないのであれば、こんな話にはならないのだがな。
0484デフォルトの名無しさんNGNG
>>482
WinMXが人生においてほぼすべてのウェイトを占めてるんだろ。
0485デフォルトの名無しさんNGNG
>>483
どこが難しいのか、俺には全くわからない。

TCP が使える状況で車輪の再発明みたいなことをするのは意味無いけど、
UDP で(TCP程度に)リライアブルなデータ転送を行うのは何も難しくない。
API一発でできないから難しい、という意味?
0486483ではないけどNGNG
>>485
ただ実装するのは難しくもないけど(実際課題レベルだし)
高負荷時にもTCPと同レベルでちゃんと動くものを作るのは結構しんどいよ。
あえてTCP使わないって事はパフォーマンス重視なことが多いから
いい加減に作ると使い物にならない。
0487デフォルトの名無しさんNGNG
>>486
課題レベルの話なので、この場合では
高負荷とか多分どうでもよくて、それなりに安定した
通信が出来ればいいんじゃないかな
0488デフォルトの名無しさんNGNG
ソフトイーサの人が確かやってたが結構なスループットだった気がする。
0489デフォルトの名無しさんNGNG
>>486
なるどほ。UDP Hole Punching なんかしか使えない状況でなら、
パフォーマンスが若干劣化しても意味アリか。

「いい加減に」って例えば1パケ毎に応答確認とか(w?
0490デフォルトの名無しさんNGNG
>>471
TCPもそんなことやってないよ。両側で完全な送達確認ができたことの確認が
できたことの確認....は本質的に不可能(笑) 最後はどちらかが送りっぱなし
であきらめるしかない。TCPだとFINに対するACKは待つけどACKは送りっぱなし
というあたりに相当する。
0491デフォルトの名無しさんNGNG
>>490
うちのサーバに FIN_WAIT っていっぱい表示されてるのは喪前のせいか!!
0492デフォルトの名無しさんNGNG




















0493デフォルトの名無しさんNGNG
>>492
見辛くなるからやめろ
0494デフォルトの名無しさんNGNG
何気に良スレあげ
0495デフォルトの名無しさんNGNG
良スレって…

>>471が馬鹿なだけでしょ。
0496デフォルトの名無しさんNGNG
晒しage
0497デフォルトの名無しさんNGNG
馬鹿じゃないよ
0498デフォルトの名無しさんNGNG
馬鹿じゃなければいい
0499デフォルトの名無しさんNGNG
普通に考えればわかると思うけど、UDPで完全なTCPエミュレーションは不可能
絶対どこかで妥協しなければならなくなる。

よく考えれば必ずチェックのチェックと言う永久ループに突入するから
どこかで妥協して限りなく信頼性をあげる事は出来るものの、100%の正確性は得られるはずが無い。

生ソケットとかでも使わん限りな。

出来るって言ってるヤツは、その方法晒してみ?
まぁ、間違いなく突っ込みどころ満載だと思うが・・・
0500デフォルトの名無しさんNGNG
まぁ、間違いなく突っ込みどころ満載だと思うが・・・

まぁ、間違いなく突っ込みどころ満載だと思うが・・・

まぁ、間違いなく突っ込みどころ満載だと思うが・・・

それはお前だろ・・・
0501デフォルトの名無しさんNGNG
>>500
四の五の言わずに作ってみろ
0502デフォルトの名無しさんNGNG
>>500
まずお前の方法とやらを晒してみろ。
話はそれからだ。

出来ないならただの口だけ野郎だ
0503デフォルトの名無しさんNGNG
>>256-260
↑結局こういう事になるんだよな。

出来るって言ってるヤツは、実例示さない辺りあんまり深く考えてないと思われる。
ちょっと考えれば無理な事に気づくだろ。
0504デフォルトの名無しさんNGNG
>>503
>>256-260 は、「完全なエラー通知処理は無理」ってことを言ってるわけだけど、
>>490 にあるように TCP でもそれは同じこと。
(最後のパケットが lost すると FIN_WAIT2 ステートまでしか行けない)。

最後の「さよなら」を相手がちゃんと聞いたかどうかなんて、超能力者にもわからない。
0505デフォルトの名無しさんNGNG
アホを相手にするのは面倒なのでTCP over UDPでググってください。
0506デフォルトの名無しさんNGNG
再送の話か・・・
TCP in TCPだと、外側と内側のそれぞれのTCPが再送して
それはもう大変なことに
0507デフォルトの名無しさんNGNG
質問です。
これからネットワークプログラミング入門をしようと思うんですが
まずここで上がってるようなUDP,TCP,TCP over UDP と言うような基本的な用語を理解出来る様になりたいのですが
どのような本を読めばいいのでしょうか?
0508デフォルトの名無しさんNGNG
TCP/IPによるネットワーク構築〈Vol.1〉原理・プロトコル・アーキテクチャ
http://www.amazon.co.jp/exec/obidos/ASIN/432012054X/

これテンプレに入ってないな…
0509デフォルトの名無しさんNGNG
>>508
高すぎ
0510デフォルトの名無しさんNGNG
>>4のサイトが問題ありとされているのは何故ですか?
0511masatakaNGNG
現在、WSAEventSelectを使用していろいろやってみているのですが、
どうも使い方がよくわかりません。
いままでは、WSAAsyncSelectの方を使っていて、問題ありませんでした。

socket → WSACreateEvent → WSAEventSelect → bind →
→ listen → WSAWaitForMultipleEvents → WSAEnumNetworkEvents
の順番で呼び出すのですが、たしかに、FD_ACCEPTイベントは発生し、所得でき
ます。
しかし、それ以外のイベントが発生しません。
また、FD_READがもし発生したとしても、WSAAsyncSelectのように、socketが引
数で飛んでくるわけでもありませんので、socketハンドルを所得することができ
ません。

もしかして、こういうものなのでしょうか?
もちろん、FD_ACCEPTが発生した時に、accept関数を呼び出し、その後、recv関
数を呼び出せば正常に読み込めます。
現在は、
FD_ACCEPTが発生→accept関数→read関数→close関数
という順序で、やりたいことはできているのですが、
なんとなく納得できません。
WSAEventSelect(listenSocket,hEvent,FD_ACCEPT | FD_READ | FD_WRITE |
FD_CLOSE) として呼び出しているので、FD_CLOSEイベントに対応してclose関数
を呼び出さなくてはいけないような気がするのですが。

以上、詳しい方がいらっしゃいましたらば、よろしくお願いします。
0512デフォルトの名無しさんNGNG
>>511
>しかし、それ以外のイベントが発生しません。
一回 select が完了 (イベントが発生) したら再度 WSAEventSelect する必要があります。

>もしかして、こういうものなのでしょうか?
そういうものです。普通の select のケースと同様、自分で覚えておいてください。

>close関数を呼び出さなくてはいけないような気がするのですが。
必要ありません。
0513デフォルトの名無しさんNGNG
>>510
別にいいんだよわからなくても。
そこで勉強して実装して勉強して実装して
ある日問題に気づいたときに
「今までありがとう!そして、バーカバーカ」
と言うためのページ
0514デフォルトの名無しさんNGNG
PunchingHoleUDPのサンプル作ってみたけど、やっぱルーターが変換したポート番号を感知するサーバーが必要なんだね・・・。
ポート番号固定でやってたら、ルーターがどんどんポート番号変えてくるんで、そいつに変えてイタチゴッコしてみたけど・・・

う〜ん、微妙な技術だ・・・。
使いどころがわからん。
0515デフォルトの名無しさんNGNG
>>514
例えばIP電話プログラムで、交換局に相当するサーバでクライアント A, B を結びつけたら
あとは A <-> B で自立してパケットをやりとりできる。
0516デフォルトの名無しさんNGNG
IP電話は電話帳役のサーバはいても交換局は普通いないよ。
0517デフォルトの名無しさんNGNG
え? 交換局=ルータだろ?
0518デフォルトの名無しさんNGNG
>>514
FTPのPORTモードとかでも使う
0519相談あげNGNG
UDP通信についての相談です。

現在某社の制御機器のUDP通信機能を作っています。
プロトコル自体はそのメーカーの独自のもので、接続を許可する
クライアントのIPとポートをあらかじめサーバ(=制御機器)に登録
しておき、クライアントからは自分のクライアントIDをヘッダに含めて
コマンドを送信します。

基本的な通信部分は実装できたのですが、同時に複数のクライアント
からコマンドを受信した場合の処理の仕様が無いため、提案するための
仕様を考えています。一般的な処理などあれば教えてください。

現在は
・ 1回のコマンドが複数のパケットに分割されてもOK
・ 最初のパケットから設定されたタイムアウト以内にコマンドが完結
  しなかったらNG
・ NGの場合は何も返さない
としています。この方法だとクライアントでもタイマを実装してNGの
場合を判定しなければならないという問題が考えられます。

「そんなもんだ」でもいいし「○○という概念を調べれ!」でもいいので
教えて!エロい人!
0520デフォルトの名無しさんNGNG
「制御機器」がUDP通信でいいのか、その点について提案する方が先じゃないだろうか?
0521デフォルトの名無しさんNGNG
クライアントがタイマでNGにした、その0.0001秒後に制御機器側で受理してしまった。
さて、運命や如何に?
0522デフォルトの名無しさんNGNG
受理してなんか返してもクライアントはもうNGだから無視するだけだろ。
0523デフォルトの名無しさんNGNG
でもその制御機器がそれにより何か動作をしてしまい、
クライアントは動作していないはずだと思い込む(応答は捨てるわけだから)。

というパターンは?
0524デフォルトの名無しさんNGNG
クライアントは無視するからそのうちサーバもNGで切断。そんだけ。
0525519NGNG
>>520
ファームなんで、あんましデカい処理は実装できないんですよ。。。

>>521-522
仰るとおり、クライアントでNGになった後に制御機器から応答が返って
しまう場合も考えられます。
この状態を想定して、ベタなんですけれどもクライアント側でコマンドを
送信する前に受信して受信バッファを空にしてから送信する、という
サンプルを配っておきました。一応皆さんそれに合わせてくださってるんで
今のところ問題にはなってないです。

>>523
クライアント→制御機器:コマンドビット
クライアント←制御機器:完了ビット
クライアント→制御機器:状態監視
クライアント←制御機器:状態通知
というメンドいハンドシェイク(?)で回避してます。UDPなので「なってるはず」
というのは極力避けるように考えています。
0526519NGNG
皆さんありがとうございます。

>>520(追記)
そもそも状態監視ではなく制御をEtherNetでやること自体
私は反対だったんですけどねw

>>524
残念ながらクライアントの受信スッドレは常時動いちゃってたりするのですよ。。。
そんなわけで>>525のような事をして回避してまつ。。。
0527デフォルトの名無しさんNGNG
>>517
>>516は>>515に合わせたレイヤの話な。
0528デフォルトの名無しさんNGNG
制御機器って何だ?
0529デフォルトの名無しさんNGNG
ちなみにUDPだとパケット順序が入れかわるかもしれないことも
考えておけよ
0530デフォルトの名無しさんNGNG
>>525
クライアントがエラー、終了、再接続したとき受信が前回分のと混ざる可能性があるんじゃないのか?
バッファが空かどうかって怪しい感じ。
セッションごとにユニークID振らないとまずいんじゃないの。
0531デフォルトの名無しさんNGNG
TCPをデカイ処理だと認識しているようなシビアで高度なプログラマがこんなサイトで質問しているとは驚きだ。
0532519NGNG
なんだかUDP入門みたくなっちゃってすみませんね。

>>528
サーバにあたります。
数十点のI/Oで検査機器の制御を行うものです。
人が死ぬような種類のものでは無いので、仕様にも危機意識が
若干無視されているような気がしますが、、、それはスレ違いっとw

>>529
ありがとうございます。
実験ではルータ/ハブをかませても2分割程度だったので
入れ替わっちゃったらヘッダが無くなってNGになるからあんまり
問題視されていません。

>>530
それこそが今回の質問の核心なんですよ。。。タイムアウト時間内に
混ざっちゃったらどうしたらいいのかが解らないんです。
一応ユニークIDは振ってあります。

>>531
まったくもって同感です。私のようなド素人(入社2年目)に任せてるのは
マズいんじゃないかと。。。
0533デフォルトの名無しさんNGNG
ファームのTCP/IP以外の通信プロトコルが過去の遺物で
高負荷・OS道連れロックとかいうオチは用意されてないよな?
全てLAN環境とかいうオチは用意されてないよな?
0534デフォルトの名無しさんNGNG
楽しようとUDPにして却ってハマル奴が多いんだよね。
それなりのシステムになりそうだね。
0535519NGNG
>>533
> 高負荷・OS道連れロックとかいうオチ
制御ユニットとはバス接続で切り離されています。
ネットワークユニット単体でウォッチドックされています。

> 全てLAN環境とかいうオチ
最初の構想でありましたが、猛反対して回避しました。ルータ使用は
オプティカルユニットがルータ機能を持っちゃってるためです。
制御端末(=PC)が3台、制御機器(=サーバ)が1台の閉じた
ネットワークです。

>>534
えぇ、ハマってますとも。どっぷりとw
仕事でお勉強しちゃうのもどうかとは思いますが、
しっかりと基礎理論を構築しておこうと思っています。
0536デフォルトの名無しさんNGNG
余談だけど仕様の段階での危機意識って薄い感じでも
実際テストをやりだすととたんに厳しいこと言ってくることってあるよね。
そんな細かいこというなら仕様の段階からもっとつめとけと。
0537デフォルトの名無しさんNGNG
なんでTCPにしなかったの?
0538519NGNG
>>536
以前やった仕事がまったくもってそんな状態でしたよw
後から言った、言わないの話になるのは嫌なので、気付いた事は
先手を打ってテストして仕様に盛り込んでもらうようにしています。

>>537
私が勉強不足なのでTCPの実装にどれくらいの工数が掛かるのか
見積もりできない、というのが本音です。お客さんもUDPしか経験が
無いみたいですし。。。
0539デフォルトの名無しさんNGNG
UDPで出しているパケットを全て強く型付けして、
パケット到着、タイムアウトのイベントに対して、
きっちりと(マトリックスに抜けがないように)状態遷移図を書く。

こういう基本をやっておけば、
>>523というようなことは起きないというか、
起きても問題なく処理される。

シーケンス番号を使う場合は、
シーケンス番号順にパケットを渡してくれるdaemon (thread)を動かすとよい。
そうすれば後は全てシーケンス番号順と仮定して構築できる。
0540519NGNG
うぅ、、、なんだかTCPをマトモに実装した方がラクな気がしてきた。。。

>>539
ありがとうございます。
シーケンス番号というものを振るdaemonというのは、自分で実装する
ものなんでしょうか?
ならば別のセッションのパケットの一部が割り込んでもそこでハジく
ことができますね。
0541デフォルトの名無しさんNGNG
>>540
> うぅ、、、なんだかTCPをマトモに実装した方がラクな気がしてきた。。。

TCPでやってもちゃーんと状態遷移を確認する必要がありますよ。
相手は何送ってくるか分からないし、(mal-functional failure)
途中で勝手に接続切るかもしれない。

というか状態遷移も書かずにマルチベンダーで開発するのは無謀。
大部分が未定義のまま実装が始まることになる。

学生の頃バイトでシステム構築やっていたけど、
仕様の書き直し、詳細化をたくさん上流に上げましたね。


シーケンス番号はセンダーが付けたのを、レシーバ側で整列する、
と言うつもりで書きました。(UDPはなくなったり順番変ったりするので)
再送ロジックがない場合は、特別な型のパケットが来た時には、
resetするようにすればいいでしょう。
0542デフォルトの名無しさんNGNG
スキルが無いと異常系が想定できないんだよね。
0543519NGNG
> 再送ロジックがない場合は、特別な型のパケットが来た時には、
> resetするようにすればいいでしょう。
現在は受信スレッド内で受信したパケットは「全てそのまま」ループバッファに
溜めてますが、仰る通りパケットごとに判別しなければいけない(というか
回避不可能)ですね。どういった実装になるかは今は思い付けないんですが、
キチンと練るための時間をもらうことにします。
厳密にやるとTCPが何をしているのかが勉強できそう♪

> 状態遷移も書かずにマルチベンダーで開発するのは無謀。
ループバッファに溜まったデータを解析する際の状態遷移は起こした
んですが、確かにパケット単位での状態遷移は今初めて考えている
ような状態です。

>>542
仰るとおりです。精進しまつ。。。

一応の結論。
・ UDPのパケット単位での判定方法を練り直す。
・ TCPの実装を検討してみる。
ということにします。
レスをくださった皆様、こんな夜更けにお付き合いいただき
ありがとうございました m(_ _)m
0544デフォルトの名無しさんNGNG
>>535
>制御端末(=PC)が3台、制御機器(=サーバ)が1台の閉じたネットワークです。 

・・・これがLAN【Local Area Network】じゃなかったら何なんだ、と小一時間(ry
0545デフォルトの名無しさんNGNG
>>543
>厳密にやるとTCPが何をしているのかが勉強できそう♪
なにをやってるが勉強してからにすれ
0546519NGNG
>>544
すみません。論点が見えません。

>>545
もちろんそうしますよん♪
0547デフォルトの名無しさんNGNG
ちなみにTCPはbyte streamなので、
ill-functional failureのclientを想定すると、
・どんどんデータを送りつけてくる。
例えば、データ境界として定義したNULを全然送らずにデータが続く。
・layer 6のヘッダにあるデータ長が間違っている!(ジーザス!)
などなどの状況を想定する必要があります。
つまりデータ境界の保証は上のレイヤーの仕事です。
(アプリ内や自作ミドルウェア内などで)

そんな状況を引き起こすのは、例えば糞ベンダーの書いた糞クライアントです。
最初からコードきっちり書いておかないと屑ベンダーに引っかき回されます。

今まで一番酷かったケースは(板違いなのでry
0548デフォルトの名無しさんNGNG
524 :デフォルトの名無しさん :04/02/17 19:06
tcp over udpなソースってどこかにあったりしませんか?


525 :デフォルトの名無しさん :04/02/17 19:09
>>524
airhookとか。

死ぬ程糞だけど。
0549519NGNG
>>547
ありがとうございます。
バグとして突き返すのも必要だけれど、それだけじゃマズいんで
切るようにします。幸いコマンドは長くて20バイト以下なので、
そのあたりで切れるかな?
>547さんがどのように対処なさったのかを教えてくださると嬉しいです。

> 今まで一番酷かったケースは(板違いなのでry
すっごく聞きたいけれど、マ板じゃないので諦めますw
0550デフォルトの名無しさんNGNG
>>547
そうなんだよね。
TCPのストリームを扱う煩雑さを回避するために
1回のデータ送受信毎にセッション接続・切断する糞プログラムを良く見かける。
それじゃ学習用のサンプルプログラムそのままじゃねえか、ってな感じ。

0551デフォルトの名無しさんNGNG
>>550
「そうなんだよね。」とか言ってるが、>>547とまるで内容が違わないかね。
セッションを分割できる仕様なのであればそうするに越した事はないと思うが?
障害の影響を最小域に留めることができると思うのだが、どのへんが糞なのか教えてもらいたいものだ。
0552デフォルトの名無しさんNGNG
HTTPでキープアライブ導入前は要求、応答、切断だったんじゃ。
0553デフォルトの名無しさんNGNG
オレはとりあえず、
>>550の作った糞プログラムへの障害対応を重ねて>>550に依頼する煩雑さを回避するより、
TCPのストリームを扱う煩雑さを回避するね。
0554デフォルトの名無しさんNGNG
TCPはセッション接続時のオーバヘッドが大きいし、伝送効率も悪くなる。


0555デフォルトの名無しさんNGNG
socketのコネクション・プーリングとか知らないのかなあ
0556デフォルトの名無しさんNGNG
>>554
実測したの?
何か、具体的な実例挙げてもらえるとうれしいな。
0557デフォルトの名無しさんNGNG
>>555
なにそれ?実装上の話?
0558デフォルトの名無しさんNGNG
>>556
"slow start"するので、あんまり接続しなおさない方がいいよ。
けど本当にスループットを必要とする場合だけね。
VPN over TCPとか。
0559デフォルトの名無しさんNGNG
>>549
異常な状態の生起もイベントとして定義して全て状態遷移図に書き込む、です。
イベントのフィルタリングをして、扱うイベントを少なくしてやると、楽です。
layer 6がしっかりしていれば、
layer 7に異常なリクエストを渡すこともないですよね。
0560デフォルトの名無しさんNGNG
ネットワークプログラミングこれから始めるとしたらお勧めの本は
なによ。
0561rNGNG
linuxのソケット通信に関する質問なのですが

gethostbyname,socket,connectを1まとめに関数にして、
connectできないと、この関数を実行する。
という方法でソケット通信のプログラムを作ったのですが、
通信の相手がいない場合、1時間半弱で必ずプログラムが終了する
という状態です。(リコネクトのウエイトは5秒)

connectだけをループするようにすると、
connectが、Bad file descriptor を返します。

接続の手順に問題があるとは思うのですが、どのように
すればよいか、調べてもわかりませんでした。
どなたか教えてください。
アーキテクチャはsh4です。
0562RubykitchNGNG
UNIX Network Programming
0563デフォルトの名無しさんNGNG
Internetworking with TCP/IP volume3
client-server programming and applications
もいい本ですよ。ただし、IPV4のみ。
0564rNGNG
connect 失敗時の closeにもれがあったようです
失礼しました
0565デフォルトの名無しさんNGNG
>>563
おいおい、ここは日本だぜ
0566デフォルトの名無しさんNGNG
それが何か?
0567デフォルトの名無しさんNGNG
ここで話題になってるPunchingHoleUDPについて質問です。
Winsockでの実装の話なんですが。

クライアントAとクライアントBとサーバーSがあって。

AからSへUDPで適当なデータを送って、SはAのグローバルIPアドレスとソースポートを記録
BからSへUDPで適当なデータを送って、SはBのグローバルIPアドレスとソースポートを記録
SはAへBの情報を送信
Aはその情報を元にBへ適当なデータを送信(でも送れない)。
SはBへAのデータを送信
Bはその情報を元にAへ適当なデータを送信(これで遅れる)。

こんな感じでしょうか?
0568デフォルトの名無しさんNGNG
しょっちゅうPunchingHoleUDPネタが出るね
0569デフォルトの名無しさんNGNG
それくらいの設定ユーザーにやらせろよと思うが。
0570デフォルトの名無しさんNGNG
PunchingHoleUDPって何?
0571デフォルトの名無しさんNGNG
NAT超えってのは、ネットワーク関係の膨大にある問題の中でも大きな問題の一つだったからな。
それが解決できるって言うんだから、その手のシステムに興味ある人には夢のような話なんじゃない?

・・・今流行のP2P系では、今後スタンダードな技術となりそう。
0572デフォルトの名無しさんNGNG
そういうのはUPnPで解決すると思ってたけど
MS発ってだけで反発されてそうだなw
0573デフォルトの名無しさんNGNG
UPnPとはまた違うでしょ。
UPnPは
UPnP対応のハードじゃないといけないって事と
ISPからプライベートIPアドレスしか貰ってない場合、どうしようもない って事

PunchingHoleはUDPがNATを経由する本来の仕組みを使ったものだから
後から追加する必要性が殆ど無いって事。
唯一の欠点は、シンメトリックNATの場合通過出来ないって事くらい。
でもこれはよほどセキュ重視してる企業でもない限り使ってないから、一般ユーザーとは無縁の話
0574デフォルトの名無しさんNGNG
>>519
でおくれちゃったけど、ひとこと。
linee(イーサネット回線エミュレータ)使って、パケットを
ドロップさせたりすると、テストの足しになるかもしれん。
# 残念ながら、パケットの順序の入れ替えはできなかったような気がするけど。
# 改造すればできるかなあ。
がんばれ。
0575質問NGNG
質問させてください。

ルーター(192.168.0.1)の下にホストA(192.168.0.2)、ホストB(192.168.0.3)だけが存在し
ルーターが192.168.0.4(本当は存在しない)にARPリクエストを出してきたときにホストA
が偽造ARPパケットを作成して応答するというプログラムを作りたいのですが、そのような
事が分かるサイトを教えてください、お願いします。

やりたい事はルーターに対して存在しないホストのMACアドレスとIPアドレスの対応表を
覚えさせ、ルーターの外からくる192.168.0.2から192.168.0.255すべてのパケットを
ルーターで遮断させずに中に入れたいのです。

環境 WindowsXP Visual C++
0576デフォルトの名無しさんNGNG
わざわざ作らんでも昔からある。
proxy arpでぐぐれ。
0577デフォルトの名無しさんNGNG
ついでに言うとルータがいわゆるご家庭向けの箱物ルータでなければ
そいつのarp tableに書いちゃう方が早い。
0578デフォルトの名無しさんNGNG
/usr/sbin/arp -s IP_address ethernet_address
0579質問NGNG
>>577,578
回答有難うございます。

もし ホストAで arp -s 192.168.0.4 適当なMACアドレス を実行した場合に
ルーターからくる192.168.0.4に対するARPリクエストにホストAが代理に
応答してくれるのでしょうか?
0580デフォルトの名無しさんNGNG
だからそれはproxy arpでぐぐるか本読めば書いてあるんだってば。

0581デフォルトの名無しさんNGNG
ちょっとぐぐってみただけだけど、Windows で proxy arp 実装した例は見つからないなぁ。
商用APならDDKでプロトコルハンドラ書けばできると思う。
DDKいじってる時間が無いなら、http://www.rawether.net/product/re-pricelist.htm 等を
買ってもいいし(フリーで似たようなものもあるかもしれない)。
0582デフォルトの名無しさんNGNG
>>575
ルターは言った、「キリスト者の自由」において「人は信仰によってのみ義とされる」と...
キリスト者を欺くとは何事ぞ!
0583デフォルトの名無しさんNGNG
>>575
この本に偽造ARPパケットの作り方がソース付で書いてある。WindowsでもOK
http://www.amazon.co.jp/exec/obidos/ASIN/4274065847/
0584デフォルトの名無しさんNGNG
ゼロウィンドウのプローブって何ですか?
0585デフォルトの名無しさんNGNG
>>584
http://www.freesoft.org/CIE/RFC/1122/103.htm
0586デフォルトの名無しさんNGNG
>>585
日本語でお願いします。
0587デフォルトの名無しさんNGNG
>>586
http://www.excite.co.jp/world/english/web/?wb_url=http://www.freesoft.org/CIE/RFC/1122/103.htm&wb_lp=ENJA
0588デフォルトの名無しさんNGNG
LinuxにもWindowsで言う所のOverlapped I/Oみたいな機能はありますか?
0589デフォルトの名無しさんNGNG
aio_read/write/...
0590デフォルトの名無しさんNGNG
>>587
頭が腐りそうな日本語だな。
英語の方がよっぽど判り易いし簡単じゃん。
0591デフォルトの名無しさんNGNG
スペイン語とかのサイトを読むときは直接日本語に翻訳しても
読めたもんじゃないから英語にして読んでるよ
0592デフォルトの名無しさんNGNG
質問です.
res_queryでDNSに問い合わせしてるのですが,なぜか戻り値-1が返ってきて,うまく接続できていないようです.
res_queryの問合せ先はどのように設定されているかわかる方いますか?
0593デフォルトの名無しさんNGNG
環境は?
0594デフォルトの名無しさんNGNG
>>593
Cygwin
BIND
あたりが関係しているでしょうか?
0595592NGNG
>>593
自己解決しました.
thx!
resolv.confの設定をいじったらうまく動きました.
0596588NGNG
>589
ありがとう!
0597デフォルトの名無しさんNGNG
linux kernelのversion調べてね。
0598デフォルトの名無しさんNGNG
あ
0599 NGNG
ttp://www.stackasterisk.jp/tech/program/howtosniff02_01.jsp
ここのプログラムを2台のマシンを用意して実験しているのですが、
どうもパケットを送信出来ている気配がありません。
(パケット監視ソフトで監視しても反応がない)
環境は以下の通りです。
Microsoft(R) Visual C# .NET Compiler version 7.10.6001.4
for Microsoft(R) .NET Framework version 1.1.4322
なにか原因がわかる方いましたら教えていただけませんか?
0600デフォルトの名無しさんNGNG
マルチキャストしてるから
0601599NGNG
送信先のホストは1つだけなのですが、
これをマルチキャストと呼ぶのでしょうか?
0602デフォルトの名無しさんNGNG
>>601
ユニキャスト/マルチキャスト/ブロードキャスト について調べてみれ。
0603デフォルトの名無しさんNGNG
httpプロトコルで
RESUMEやりたいんですが。
どうすればいいでしょうか?

あと、HTTPプロトコルを詳しく書いてるサイトが合ったら教えてください。
日本語で
0604デフォルトの名無しさんNGNG
馬から落馬
0605デフォルトの名無しさんNGNG
>>603
コンパクトCDですか
0606デフォルトの名無しさんNGNG
電子レンジ
0607デフォルトの名無しさんNGNG
。°°(>_<)°°。 えーん
0608デフォルトの名無しさんNGNG
>>603
日本語RFC
0609603NGNG
Cで、Httpでファイル受信プログラム書いてるんです。
MFCは、使いません。

で、普通の送受信ですが、
GET http://pc5.2ch.net/test/read.cgi/tech/1096187183/ HTTP/1.0\r\n
…
をSendすると、
サーバーから、返事戻ってくるだろ。
そのあとファイルも帰ってくる。

そのファイル受信を途中から(RESUME)やりたいんです
Recvに、fseekみたいなものがあるんですか?
あるわけ無いですよね。
で、実現するには、どのようなメッセージを送ればいいのですか?

という相談なのです。
0610603NGNG
>>608
ありがとう
0611デフォルトの名無しさんNGNG
2ちゃんねる用ブラウザがレジュームやってるから
それを見ろ
Janeならこんな風

GET /tech/dat/1096187183.dat HTTP/1.1
Content-Type: text/html
If-Modified-Since: Fri, 15 Oct 2004 07:28:32 GMT
Host: pc5.2ch.net
Accept: text/html, */*
User-Agent: Monazilla/1.00 (Jane2ch/0.1.9.2)
Range: bytes=45543-
Connection: keep-alive
0612603NGNG
>>611
すんげ。
ありがとう。
0613デフォルトの名無しさんNGNG
Linuxでネットワークデーモン作りたいと思っています。
Apacheのpreforkのように、リクエストに応答するプロセスをそのたびにforkするのではなく
あらかじめ起動しておきたいのです。かなりリクエストが多くなると思うので、
いちいちforkする方法は避けたいです。
そこで、子プロセスにソケットの複製を渡すにはどうしたらいいでしょうか?
スレッドの使用も考えたんですが、プロセスごとにユーザー権限を変えられるようにしたいので
プロセスを複数作る方式で行きたいです。
0614デフォルトの名無しさんNGNG
>>613
forkした時に複製されない?
0615613NGNG
>614
親プロセスがacceptしたときに得られるクライアントとの通信用ソケットを
すでにfork済みのプロセスに送りたい、ということです。説明が不十分ですみません。
0616デフォルトの名無しさんNGNG
>>613
「UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI」の14.7
0617613NGNG
>616
ありがとうございます。暇ができたら購入してみようと思います。
0618デフォルトの名無しさんNGNG
買わなくても図書館にゆけばあるかも
0619デフォルトの名無しさんNGNG
暇がなくても今すぐ買って最初から熟読しろ。
0620デフォルトの名無しさんNGNG
教科書は買っておいたほうがよいというか、
目も通さずに質問したら、叩かれる可能性高い。
0621デフォルトの名無しさんNGNG
>>620
釣れますか?
0622デフォルトの名無しさんNGNG
>>603
そーゆーテの開発をしたいのなら送受信しているパケットをモニタする
環境を早めに用意しておいた方がラクだよ。
0623VC初心者スレの685NGNG
再描画がうまくいきません

ファイルをダウンロードするhttpクライアントを作っています。
全体の何%ダウンロードしたかをリアルタイムで表示させたいの
ですが、再描画がうまくいかないのでできないです。
100%ダウンロードした後にのみ再描画が発生するだけです。

それから↓以下のような経緯でもがき、
http://pc5.2ch.net/test/read.cgi/tech/1097880265/685-696
http://pc5.2ch.net/test/read.cgi/tech/1097880265/705-710
http://pc5.2ch.net/test/read.cgi/tech/1097880265/745

描画作業を別スレッドで行うようにプログラムを変更したのですが、
症状は改善されないです。
for文ループ中でrecv関数でデータを受信してる間は、
別スレッドで描画させようとしても無理なのでしょうか?
0624デフォルトの名無しさんNGNG
> 別スレッドで描画

別スレからUpdateAllView()なんてできねーYO!

ダウンロードスレッドはダウンロード専門にして、
メインウィンドウに対しPostMessageするのがいいと思うYO!
0625VC初心者スレの685NGNG
>>624
さんきゅ、よう分からんけどやってみるわ。
0626デフォルトの名無しさんNGNG
よう分からんのならやるなよ。理解してから動け。
0627VC初心者スレの685NGNG
>>626
うるさいんじゃ。我ドタマおかしいんけ。
0628デフォルトの名無しさんNGNG
っていうかそれネットワークプログラミングと本質的に関係ないだろ
0629デフォルトの名無しさんNGNG
>>628
うるさいん(ry我ドタマおか(ry
0630デフォルトの名無しさんNGNG
ういんにー初心者くだ質スレッド その4
http://winny.info/2ch/qa/1026120991.html

UDP何とかってのが↑のスレに俺が書き込んだ296-303の理屈にちょっと似ている
のに感動したので記念カキコ。
0631デフォルトの名無しさんNGNG
>>611
通常のレジュームは更新なかったとき続きを取得だが
2chブラウザは更新があったときに取得だから
ちょっと特殊だけどな
0632デフォルトの名無しさんNGNG
スレ違いかもしれないけど質問させて下さい。
RHL の上でコード書いてるんだけど、
楽しようと思って xinetd を使っています。
(serverで指定する)プログラムに xinetd から
接続にきたリモートホストのIPアドレスを渡すことって出来ます?
プログラムの中から取得することも無理だよね。
(リモートホストに教えてもらうしかないかな?)
0633632NGNG
何も考えずにgetpeername(0, ...) でいけるのか。
お騒がせしました。

0634613NGNG
「UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットXTI」どこいっても在庫がありませんでした。(絶版!?)
後日、図書館とかもあたってみようと思います。
0635デフォルトの名無しさんNGNG
みんなUDPが好きだなあ。
おいらはUDPを「うだっぺー」と呼んでる。
0636デフォルトの名無しさんNGNG
UDPのチェックサムわけわかめ
疑似ヘッダ、イラネ。
0637デフォルトの名無しさんNGNG
そういや前から気になってたんだけど
Punchingなんちゃらってシンメトリックでは使えないんだよね?
IPアドレスもチェックするから・・・

じゃあ、Skypeはどうやってんの?
全てのNATを通過させる事に成功したって書いてるけど・・・

もしかして、RAWソケットでUDP自作して、アドレス偽装する方式とか?(汗
UDP自作なんて俺にゃ無理だ・・・orz
0638デフォルトの名無しさんNGNG
同期 >>>>>>>>>>>>>>>>>>>>>>>>>>>> 非同期
0639デフォルトの名無しさんNGNG
UDPでできることって大抵TCPでもできるからあまり使わないなぁ。
ブロードキャスト使わなきゃいけないときくらいか。あとはよっぽどパフォーマンスが
気になるところとか。
0640デフォルトの名無しさんNGNG
Ethernet装備だけどUDPもTCPもインプリメントされていない環境で
これから実装するとしたらUDPとTCPのどっちが良いですか?
0641デフォルトの名無しさんNGNG
>>640
まず IP。
ってか、OS でも作ってんの?
0642デフォルトの名無しさんNGNG
IPと同時にICMPやARPもいる。
0643デフォルトの名無しさんNGNG
ARPはもちろんとして、俺なら全部ICMPでやるな
0644デフォルトの名無しさんNGNG
いやIP実装しないとICMP働かない。(大昔はともかく)
0645デフォルトの名無しさんNGNG
>>639
漏れは最近 HTTP 以外の生の TCP 使うことって殆ど無いなぁ。http なら proxy も通るし、
サーバ側の構築もラクだし。peer to peer だと TCP 通ることが殆ど期待できないのでudp
になっちゃうし。

>>637
サーバ側のNWを自前で構築していれば、A <-> B で UDP 通すために、まずサーバがA からの
パケットを偽造して B に送るなんてこともそう難しくないです(4年くらい前にやったことある)。

ただ零細企業や民間人だと、ソースIPが変なパケットは ISP やらホスティング元等のルータを
通過しない可能性があって難しいんだけど。
0646デフォルトの名無しさんNGNG
印刷の際にプリンタに送られるデータを
別のPC(OSはWin2000)のLPTポートで受信したいのですが
検索して調べてみた所、Win32APIだけでは不可能という文章を見つけました
実際にプリンタに送られるデータをPCで受信するソフトはあるのでしょうか?
素人の質問で申し訳ないです、よろしくお願いします
0647デフォルトの名無しさんNGNG
>>646
そのプリンタをネットワークで共有するのはできないの?
FILEにして流す事もできないわけじゃないけど。
0648646NGNG
>>647
詳細を書いてなくてすみません
うちにある計測機器のCOMポートが調子悪いみたいで
PCでデータ受信ができない状態です
んで、計測機器からプリンタに繋げることができるんで
LPTポートからデータ取れるかなぁ、と思ってた所です
0649デフォルトの名無しさんNGNG
>>648
その計測器が出力するデータとは何者?
パラレルから受けて、何をするわけ?印刷のみ?
機械の修理はできないの?
0650646NGNG
>>649
計測器から出力されるのは数字の羅列で、テキストデータです
そのテキストデータをエクセルに入れて色々と編集するつもりですが
説明書にはプリンタにもテキストで送信されるとあったので
同様の作業ができるかな・・・と考えてる所です
自分は貧乏なんで装置の修理に大金出せない状態です・・・
0651デフォルトの名無しさんNGNG
>>650
それじゃあたとえば
ttp://www.getplus.co.jp/product.asp?product=194973
のような物を検討したほうが手っ取り早いな
その計測器がどんなデータ出してるか謎だけど。
0652646NGNG
>>651
それは調度いいですね
プログラミングと離れてすみません
ありがとうございました
0653デフォルトの名無しさんNGNG
>>645
Webサービスってこと?
0654デフォルトの名無しさんNGNG
>>639
すっごい簡単な組み込み向けの実装ならこんなのがある:
MiniIP: http://www.iti.fi/documentation/miniip.html
uIP: http://www.sics.se/~adam/uip/
0655デフォルトの名無しさんNGNG
>>654
誤爆?
0656デフォルトの名無しさんNGNG
>>655
>>640へのアンカーミスじゃないかと
0657デフォルトの名無しさんNGNG
ezwebのMXレコード引いてlsean.ezweb.ne.jpと帰ってきたので
そこのSMTPサーバにTELNETから接続しようとしたのですが,なぜかConnection time outで
接続できません.
なぜでしょうか?
0658デフォルトの名無しさんNGNG
>>657
ちゃと接続されるけど?
$telnet lsean.ezweb.ne.jp smtp
220 EZweb Mail
QUIT
221 Bye
0659デフォルトの名無しさんNGNG
>>657
嫌われているんだよ
0660デフォルトの名無しさんNGNG
>>659
どうしたら好かれますか?
0661デフォルトの名無しさんNGNG
>>660
おまい、SM趣味だろ?
0662デフォルトの名無しさんNGNG
>>661
なんでですか?
0663デフォルトの名無しさんNGNG
ちょっと質問です

環境
端末A、B間は有線、端末B、C間は無線
端末AからCヘの経路を設定(GWをBとする)
無線は192.168.30.XX
有線は192.168.50.XX
各端末間の通信ができることは確認

以上のような環境でUDPパケットを端末Cに送ったのですが
端末C側でうまくパケットを取得(recvfromなど)できない状況が。。。 orz

端末CからAに対して経路を設定してやるとうまくパケットを取得できたのですが
なんか納得できない。。。

だれか納得できる説明おながいしまつ
0664デフォルトの名無しさんNGNG
とどく保証はないから
0665デフォルトの名無しさんNGNG
模範的なプロセス間通信の方法について質問したいです。
LinuxでXML−RPCサーバを用いて分散処理が行えるシステムを
作っています。
http://xmlrpc-c.sourceforge.net/
XML-RPCサーバ上で
putJob()
getJob()
という二つの関数のRPCを作成し、クライアントが仕事を持ってきたり、
仕事を受け取ったりという事がやりたいです。
初めputJob()やgetJob()という関数の中で、普通にメモリ上に仕事を書き込む
スペースを用意してやっていたのですが、
putJob()したあとgetJob()をしてもputJob()した時の結果が反映されていませんでした。
調べると、クライアントからの要求ごとに別のプロセスが動いていて、メモリ空間が
異なるため、putJob()である値を変更しても、getJob()ではそれは反映されないようでした。
プロセス間通信のため共有メモリをしようしてこの問題を解決しようとしたのですが、
共有メモリにはサイズの制限があるのか、数十バイト以上の領域を確保しようとすると
実行時エラーがでます。
変更の記録をファイルに書き込む事で対応しようと考えてもいますが、実行速度の面で
少し不安な気もします。
こういう場合の模範的な回答を知りたいのですが、調べるためのキーワードかなにか
あったら教えてください。
0666デフォルトの名無しさんNGNG
> 共有メモリにはサイズの制限があるのか、数十バイト以上の領域を確保しようとすると
> 実行時エラーがでます。

標準的な環境であれば、いくらなんでもこの程度のサイズが確保できないはずがない。
0667デフォルトの名無しさんNGNG
標準的な環境キター
0668デフォルトの名無しさんNGNG
DB使う。
0669デフォルトの名無しさんNGNG
>>665
「共有メモリ」とは具体的に何を指すのか? shm*(2)? mmap(2)?
XML-RPCの説明は余分で、「共有メモリ」に絞って質問し直すべきではないか?
それはLinux板が適当ではないか?
0670デフォルトの名無しさんNGNG
LANで結ばれたPC2台の間でバイナリデータのやりとりをしたいのですが、どのような方法が最適ですが?
データは1MB程度で、それほど頻繁にはやりとりしません。
0671デフォルトの名無しさんNGNG
>>670 STREAMソケットでOK。
0672デフォルトの名無しさんNGNG
>>670
フロッピーが楽かな。
0673デフォルトの名無しさんNGNG
クロスのシリアルケーブルでつなげば?
0674デフォルトの名無しさんNGNG
>>665
プロセス間通信は RPC で行うのが最近の流行です。
Unix なら単に Pipe を利用しても良いでしょう。

共有メモリみたいなものが必要な場合には、まず DB の利用を考え、
SQL が解らないなどのくだらない理由以外できちんと否定的な結論が
出てから他の手段について検討してみてください。

また、多くのOSにおいて小さなファイルに対するファイルI/Oは
それほど低速なものではありません。
0675デフォルトの名無しさんNGNG
何言ってんだか
0676デフォルトの名無しさんNGNG
DB検討は一番最後だろ。
ローカルのプロセス通信にDBかよ。めでたい奴だな。
0677デフォルトの名無しさんNGNG
質問です。
RAWソケットでUDPを作りたいのですが(ソースアドレス偽装の為)
どこかに良い資料ないですかね?
0678デフォルトの名無しさんNGNG
/usr/src
0679デフォルトの名無しさんNGNG
>>676
普通はどうやんの?
0680デフォルトの名無しさんNGNG
質問です。
最近Winsockの勉強を始めたのですが、
どうもあちこちでACKやSYNと言う用語を見ます。
普通のTCPやUDPのsend()/sendto()で送る文字列とは別の何か特別なパケットなのでしょうか?
0681デフォルトの名無しさんNGNG
はい。
0682デフォルトの名無しさんNGNG
>>680
あちこちで見てるんなら、読もうよ。それを。
0683デフォルトの名無しさんNGNG
質問です。
最近Winsockの勉強を始めたのですが、
どうもあちこちでACKやSYNと言う用語を見ます。
普通のTCPやUDPのsend()/sendto()で送る文字列とは別の何か特別なパケットなのでしょうか?
0684デフォルトの名無しさんNGNG
マルチポストしようとしたら最初に書いたスレにまた書いちゃった。
といったところか。
0685デフォルトの名無しさんNGNG
>>663
ICMPなら届く
0686デフォルトの名無しさんNGNG
俺の想いもあの子に届いて欲しい
0687デフォルトの名無しさんNGNG
>>677
http://www.amazon.co.jp/exec/obidos/ASIN/4274064247/
0688 ◆yCCMqGf/Qs NGNG
>>683=>>684≠>>680
とみた。

最近偽者が質問者の妨害をして荒してるのが多発してるので注意。
0689684NGNG
>>688
違う
0690665NGNG
ためになる回答をどうもありがとうございます。

共有メモリはshm*(2)という意味で使ってました。
共有したいメモリの量は、今はなんともわかんないですが、
数十メガ以上、場合によってはメモリに乗り切れない量にも
なりそうなのでmmap(2)を使って解決しようと思います。

DBの使用はすごくありだと思っていて、考えてもいたんですが、
諸事情で今回はつかえないためこういった方法にします。

ありがとうございました。
0691デフォルトの名無しさんNGNG
それで分散処理になるの?
0692デフォルトの名無しさんNGNG
複数で通信すれば分散処理
0693665NGNG
すみません。やっぱりもう少し教えてください。

sys/shm.hを使って
if((shmid = shmget(key,100, IPC_CREAT | 0666)) < 0) {
perror("shmget");
exit(1);
}
といった事をしたいのですが、引数の100の所を200とか
大きな数字にすると実行時Invalid argumentといったエラーが出ます。
/proc/sys/kernel/shmmaxのファイルには33554432と書かれているので、
33Mまで共有メモリを使えるということなのかな?と考えているのですが、
なにがまずいのか教えてください。
0694デフォルトの名無しさんNGNG
>>693
禿げしくスレ違い。
0695693NGNG
確かにもうネットワークプログラミングの事じゃないですね。
質問が続いてたのでここがよいかなと思ったんですが、
UNIXプログラミング質問スレの方に移動したいと思います。

ありがとうございました。
0696デフォルトの名無しさんNGNG
質問です。
最近Winsockの勉強を始めたのですが、
どうもあちこちでACKやSYNと言う用語を見ます。
普通のTCPやUDPのsend()/sendto()で送る文字列とは別の何か特別なパケットなのでしょうか?
0697デフォルトの名無しさんNGNG
荒らしウゼ
どうせ本人じゃないだろうな。

とりあえずこれ以上やるんだったら荒らし報告として通報してくるよ。
0698デフォルトの名無しさんNGNG
質問するときはトリップ必須にするかID導入要望でも出してくるか
0699デフォルトの名無しさんNGNG
私は、研究生なのですが,今,プログラムがわからず危機的状況です。
JAVAでファイルを保存するプログラムを作成したいのですが,
どのようにすればよいかわからないのです。
(ついでに私は、JAVAプログラムど素人です。何処から初めていいのかも
分らないのです。)

動きとしては,以下のようなことです。
クライアント(ブラウザ)からファイルが送られる。
サーバ側で,そのファイルを受け取るとDBに保存する.
DBに同じファイルがあるならば,クライアントで上書きするかどうかを確認する.
上書きOKならば,DBにあるファイル(同じファイル)を消して,上書きする.

どのようなプログラムをすればできるのでしょうか?

⇒またこの場合DBは、どのような構造にすればよいのでしょうか?

どうぞ皆さんのお力をお貸しください。

0700デフォルトの名無しさんNGNG
>>699
http://pc5.2ch.net/test/read.cgi/tech/1100656832/
こちらでどうぞ
0701デフォルトの名無しさんNGNG
>>699
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/File.html
0702デフォルトの名無しさんNGNG
┣ http://rightp2p.s68.xrea.com/node/
┣ http://www.stereoz.net/node/
┗ http://moejump.s6.x-beat.com/node.php
■関連サイト(本体・BBS・その他)
┣ http://rightp2p.s68.xrea.com/
┣ http://phphp.s58.xrea.com/
┣ http://www.stereoz.net/
┣ http://printf.jugem.jp/
┣ http://share.gooside.com/index.html
┗ http://www.ero8.com/
0703デフォルトの名無しさんNGNG
sshクライアントを作りたいのですが、そのようなクラスとかありますか?
0704困ったくんNGNG
Visual Basicについての質問はこちらでいいのでしょうか?
0705デフォルトの名無しさんNGNG
なぜそこまで必死に環境や言語を書かないのかわからない
0706デフォルトの名無しさんNGNG
Ruby!
0707デフォルトの名無しさんNGNG
>>705
VBでsshクライアント作りたいんでしょ
0708デフォルトの名無しさんNGNG
いいえ、C++Builderです。
0709デフォルトの名無しさんNGNG
ssh -p 44444 -fgNR 1080:localhost:44444 aaaaaaaa.bbbb.ccc   
pc1-----------------------------------------------------------pc2

./client -p 1080 127.0.0.1  --------> ./server -p 1080 INADDR_ANY

clientから'A'という文字コードを送りserver側で++して'B'を返すプロラムなんですが
'S'という文字しか帰ってきません。
で調べたら
"SSH-2.0-OpenSSH_3.8.1p1 Debian-8.sarge.3"という文字コードが受け取れました。
サーバーまで接続できてないようですがなぜなのでしょうか?
おしえてくだしー
0710デフォルトの名無しさんNGNG
ネットワークプログラミングとSSHの使いかたは関係ないので他所へどうぞ。
0711デフォルトの名無しさんNGNG
そうだそうだ、読解家や!
0712709NGNG

お前等やくたたずだなw
0713デフォルトの名無しさんNGNG
Punchingなんとかの次はsshか
0714デフォルトの名無しさんNGNG
それにしてもOpenSSHはたかが暗号程度でなんであんな煩雑な構成になってんだろね
頭痛くない?
0715デフォルトの名無しさんNGNG
ファイル転送もポートフォワーディングも鍵管理もしますがなにか?
0716デフォルトの名無しさんNGNG
X11の転送もな
0717デフォルトの名無しさんNGNG
Punchingなんとかってマジでいらねーな。
RAWソケットでTCP自作して、ちょっと小細工すればNAT越え出来るじゃん。
UDPみたいなエラー処理しなくていいし。TCPのプロトコルは公開されてるから何にも考えずに実装できるよ。
Kazaaの作者もSkypeにPunchingなんとかっての使ってるみたいだが、所詮素人だなw
0718デフォルトの名無しさんNGNG
まぁどうにかして構って欲しいという意気込みは伝わった。
0719デフォルトの名無しさんNGNG
分かったんなら構ってやれよ
0720デフォルトの名無しさんNGNG
0721デフォルトの名無しさんNGNG
UDPソケットとTCPソケットを同じポートにバインドして,
UDPソケット側でUDP hole punchingしていれば,
外部からのTCP接続を受けられ…ないか.
ルータのアドレス変換テーブルがTCP/UDPで共有されていれば
うまく行きそうだけど,だれもやってないということは,ダメなんだろうなぁ.
0722デフォルトの名無しさんNGNG
>>721
> ルータのアドレス変換テーブルがTCP/UDPで共有されていれば

んな実装するエンジニアがもしいたらアホです。
0723デフォルトの名無しさんNGNG
Rawソックでこういうの作ってみた
よかったらテストキボンヌ

http://jnc.s21.xrea.com/ipheader/index_ipincl.html

TCPも実装できるんだが
シーケンスナンバーの生成アルゴリズムがわからん
誰か教えて
0724デフォルトの名無しさんNGNG
- Defending Against Sequence Number Attacks
http://www.faqs.org/rfcs/rfc1948.html
- Transmission Control Protocol
http://www.faqs.org/rfcs/rfc793.html
- Randomness Recommendations for Security
http://www.faqs.org/rfcs/rfc1750.html

G.R. Wright, W. R. Stevens, "TCP/IP Illustrated, Volume 2"

0725デフォルトの名無しさんNGNG
>>724
キタ━━━ヽ( ゚∀゚ )ノ━ヽ(  )ノ━ヽ( ゚∀゚ )ノ━━━!!
サンクソ
とりあえず読んでみる

0726デフォルトの名無しさんNGNG
>>723
ただRAWでパケット生成するだけのツールだろ
こんなのだったらソース付きで他にいくらでもあるだろ・・・
0727デフォルトの名無しさんNGNG
>>726
( ´,_ゝ`)
0728デフォルトの名無しさんNGNG
>>723
割り込みエラーでるぜ・・・



このダイアログ ボックスではなく、Just-In-Time (JIT) デバッグを呼び出すための詳細については、
このメッセージの最後を参照してください。

************** 例外テキスト **************
System.Net.Sockets.SocketException: ブロック操作は WSACancelBlockingCall の呼び出しに割り込まれました。
at System.Net.Sockets.Socket.SendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP)
at System.Net.Sockets.Socket.SendTo(Byte[] buffer, EndPoint remoteEP)
at IPhederIncl2.Form1.sendRawSock(Int32 SendCount, IPAddress sendhost_IP, Byte[] IPHEAD)
at IPhederIncl2.Form1.BuildByte()
at IPhederIncl2.Form1.Button_send_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

0729デフォルトの名無しさんNGNG
ほ
0730723NGNG
>>728
まじ?
SrcAddrをDNSに問い合わせないときはIP直打してくれ
それ以外だとバグの原因はわからん。
テストは結構したんだが。
0731デフォルトの名無しさんNGNG
Windows2003SP1でRawSockがつかえなくなったってまじですか?
もうWindowsとさよならする日がきたのかも
0732デフォルトの名無しさんNGNG
WindowsXP SP2で使えなくなったという話は聞いたけど。
0733デフォルトの名無しさんNGNG
>>732
それホント?
0734マイク ◆yrBrqfF1Ew NGNG
>>723
Dbornか?
0735デフォルトの名無しさんNGNG
>>733

RAW ソケットを使用した 1480 バイトを超えるデータの送信 (sendto) に失敗する
http://support.microsoft.com/kb/884942/JA/

http://www.google.co.jp/search?num=50&hl=ja&inlang=ja&ie=Shift_JIS&oe=Shift_JIS&q=WindowsXP+SP2+raw+%83%5C%83P%83b%83g&btnG=Google+%8C%9F%8D%F5&lr=


どうもまじらしいな
Windows2003/SP1はRawの受信はできるが送信ができないとか
0736デフォルトの名無しさんNGNG
こんにちは

WinsockでHTTPS通信をしたいのですが、
方法がわかりません。

誰か詳細がわかるサイトをご存知ではないでしょうか?
ちなみに、SOFTBANK社のWinsockプログラミング2.0という本を持ってますが、
HTTPS通信に関して記述されてないみたいです。
0737デフォルトの名無しさんNGNG
・・・マジですか?>SP2以降のWindowsではRAW使えない。

ヤバイです。(汗
今やってるプロジェクトでモロRAW使ってます。。。
完成寸前なのですが。。。
それが本当ならうちの会社はつぶれます。。。
0738デフォルトの名無しさんNGNG
完全に使えないわけじゃないよ。日本語だと、
http://bbs.hotfix.jp/ShowPost.aspx?PostID=898
でも読んでくれよ。というか情報遅すぎ。> 君の会社
0739デフォルトの名無しさんNGNG
>>738
RAQ ってなんですか?
ググッても痴呆のぼくにはわからないので教えてください
0740デフォルトの名無しさんNGNG
RAWのタイポ
0741デフォルトの名無しさんNGNG
ソースアドレス偽装をしたUDPが使えないのか。
でも、SkypeとかってPunchingHoleUDP使ってシンメトリックNATを通過出来るから
恐らくUDPのソースアドレスを偽装してやってるんだと思ってたけど、これがSP2でも使えるのは何故?
0742デフォルトの名無しさんNGNG
OpenSSLのWindowsへのコンパイルですが
http://waga.homeip.net/openssl/install_win.html

C:\src\openssl-0.9.6a>nmake -f ms\ntdll.makのコマンドを入れたら

>cryptlib.c
>crypto\cryptlib.c(59) : fatal error C1083: インクルード ファイルを開けません。'stdio.h': No such file or directory
>NMAKE : fatal error U1077: 'cl' : リターン コード '0x2'
>Stop.

となり、コンパイルがSTOPしてしまいます。

原因がわかりません。
どのように対処すればいいのでしょうか?

ご返答いただけると、助かります。
0743デフォルトの名無しさんNGNG
>>741
普通のNATだろ?
0744デフォルトの名無しさんNGNG
>>743
Skypeってシンメトリックは無理なの?
てっきり出来ると思ってたから、どうやってるんだろうな?と不思議だったのだが・・・
0745デフォルトの名無しさんNGNG
レジストリ書き換えれば送信出来るようになるらしい
0746デフォルトの名無しさんNGNG
>>745
詳しくplz
0747デフォルトの名無しさんNGNG
Skypeがレジストリ書き換えるとは考えられない。
もしかすると、シンメトリックの場合だけ通信が可能なノードに仲介してもらうとかなのかな?
0748デフォルトの名無しさんNGNG
>>741>>744>>747
シンメトリックだと何がどう問題になると思っているわけ?
>>738をちゃんと読んでいる?
0749デフォルトの名無しさんNGNG
>・無効なソースアドレスによるUDPデータグラムはRAW socketで送信できない。送出されるあらゆるUDPデータグラムのIPソースアドレスは必ずネットワークインターフェイス上に存在しなければならない。そうでない場合データグラムはドロップされる。

これを問題視してるんじゃないの?
つまり、シンメトリックは双方のアドレスまでチェックするのでPunchingHoleUDPをそのまま使っては駄目
そこでRAWソケットでソースアドレスを偽装したUDPを作成し使おうとするのだが
ここで上記の制限のおかげで、無理 と
0750デフォルトの名無しさんNGNG
>>749
根本的に理解してないのでは?

プログラミング興味ない人は↓でもどうぞ。
http://www.skype.com/help/faq/windows.html
0751デフォルトの名無しさんNGNG
おいブタども、X800って10800っていう意味だって知ってたか?


0752デフォルトの名無しさんNGNG
( ・∀・)つ〃∩ ヘェーヘェーヘェー

関係ない話なので>>751
死ね
0753デフォルトの名無しさんNGNG
RADEONのことかー!
0754sageNGNG
TCPで通信したい場合、WinsockではWSASocket(AF_INET, SOCK_STREAM, 〜
とソケットを作成する事で可能で、
「ホストAからホストBへ1000バイトデータを送る」場合、
ホストBではrecv一回のコールで1000バイト取得できない場合もあるので、
recvを1000バイト取得できるまで、コールする必要がありますよね?

ここで質問なのですが、
プロミスキャスモードで受信する場合でも、上記と同様に
「IPパケット」が分断された状態で受信される事はあるのでしょうか?
同様にIPパケット長だけ受信できたかチェックし、できていない場合は再度
recvをコールする必要があるのでしょうか

実装例はたまに見るのですが、受信部を見るとrecv一回しかコールしないよう
になっており、「IPパケットだから分割されて受信する事はないのかな?」
と思いつつ、これを正解とする資料を見つけ出せませんでしたので、質問しま
した

これについてご存知の方がいるならば、教えていただけませんか
0755デフォルトの名無しさんNGNG
あります
0756デフォルトの名無しさんNGNG
>>742
Microsoft Visual Studio\VC98\Bin\VCVARS32.bat
0757デフォルトの名無しさんNGNG
バージョソによってVCVARS32の場所が違うな
0758デフォルトの名無しさんNGNG
環境のためのメモリが足りません
0759デフォルトの名無しさんNGNG
今更9x系使ってるのかよ(w
0760デフォルトの名無しさんNGNG
行番つけサーバ作ってるんですが、なぜかだめです。
�@平行サーバ
�Apipeを駆使して、クライアントからのデータを”cat -n”に与え、結果をもらったら、クライアントに送り返す、というやつなんですが、、、

おかしなところあったら、指摘してください。↓

pipe(fd),pipe(fd2)

while (1) {
cfd=accept(lfd,(struct sockaddr*)NULL,NULL);
printf("accept OK.\n");
if ((pid=fork()) < 0) {
perror("fork");exit(1);}
if (pid == 0) { /* child */
close(lfd);
printf("fork OK.\n");
while ((nbytes=read(cfd,buf,sizeof(buf))) > 0) {
if ((pid2=fork()) < 0) {
perror("fork2");exit(1);}
0761デフォルトの名無しさんNGNG
if (pid2 == 0) { /* child-child */
printf("fork2 OK.\n");
dup2(fd[0],STDIN_FILENO);
close(fd[0]);close(fd[1]);
dup2(fd2[1],STDOUT_FILENO);
close(fd2[1]);close(fd2[0]);
execlp("cat","cat","-n",(char*)NULL);
perror("cat");
exit(1);
}
close(fd[0]);close(fd2[1]);
printf("OK1 ");
write(fd[1],buf,nbytes);
printf("OK2 ");
nbytes=read(fd2[0],buf,sizeof(buf));
printf("OK3 ");
write(cfd,buf,nbytes);
while (wait(&status) != -1)
; /* do nothing */
}
0762デフォルトの名無しさんNGNG
close(fd[0]);close(fd[1]);close(fd2[0]);close(fd2[1]);
exit(0);
}
close(fd[0]);close(fd[1]);close(fd2[0]);close(fd2[1]);
while (wait(&status) != -1)
; /* do nothing */
}
0763デフォルトの名無しさんNGNG
質問です

URLEncoder.encode("書き込む","Shift_JIS")と同等の働きをするWin32APIはありますか?
もしなければ、Windowsアプリケーションではどのようにすればいいのでしょうか?(文字列のShift_JIS化)

ご返答いただけると助かります。

ちなみに、今抱えている問題は
http://kage.monazilla.org/system_DOLIB100.htmlの認証方法の仕様です。

●を使って書き込みたいので、https://2chv.tora3.net/futen.cgiからセッションIDを受け取り
POSTの際、セッションIDを使ってログインし書き込みます。

セッションID→Monazilla/1.00:!mCIuG#RzAP61Y6n7peOor/1〜(省略)

でもその際、Javaアプリだとうまくログインできるのですが、Win32アプリだとログインがされないのです。
エンコード関係に問題があると思いまして、ご質問したまでです。
0764デフォルトの名無しさんNGNG
マルチ
0765デフォルトの名無しさんNGNG
こんなのすらわからんやつが書くソフト使う方も災難だな。
0766デフォルトの名無しさんNGNG
>>763
for(c=0;c<strlen(sessionID);c++){
   wsprintf(encode,"%%%x",sessionID[c]);
}

簡単に書いたが、それの場合特殊文字だけをASCII文字へ変換しないとLoginできないんやとおもう。
そのセッションIDを一文字づつ特殊文字かどうか調べ、特殊文字ならprintfでASCII文字へ変換すればいい。
この辺はクセが強いから難しいだろうけどガンガレ。
0767デフォルトの名無しさんNGNG
>>742
誰も返答してないみたいなので一言
このスレでOpenSSLがきちんと分かる人はいないと思う。
あまり期待しないほうがいい。

俺もよくは知らんが^^
0768デフォルトの名無しさんNGNG
>>767
どんな難問かと思ったらただのコンパイルエラーかよ
がっくりさせるな
0769デフォルトの名無しさんNGNG
>>768
じゃどうしてコンパイルエラーになるのか答えてみぃー^^
0770デフォルトの名無しさんNGNG
>>767
よくわからんが、
漏れの環境だとActivePerl、ml.exe、MSVC6.0SP5が入ってて、
openssl-0.9.7dのバイナリは作成できてる。
途中でmasm使うやつな。

INSTALL.W32の中読めとしか言えんな。
OpenSSL使ってないけどな。
0771デフォルトの名無しさんNGNG
だって、どう見たって、「stdio.hが見つからない」だよ。
INCLUDEを設定するためのvcvars32.batを実行してないだけでしょ。

ネットワークプログラミングとは全く関係ない。
0772デフォルトの名無しさんNGNG
ネットワークプログラミング始めたばっかなんですけど
ルータ通してインターネットに接続してる場合
なんか特別な設定しないでも外にデータ飛んでくれますか?
ポートマッピングはしました、どうか教えてください
0773デフォルトの名無しさんNGNG
>>772
どういう通信でどういう不都合が起こると想定して言ってるのかをまず説明すれば?

ただアドレス指定してコネクトするだけのプログラム書くのに普通はルータ云々を
考慮することはないと思うけど。ルーティングの仕組み自体について理解がない
んならそっち勉強してきてからだな。
0774772NGNG
>>773
申し訳ないです

IRCクライアントを作ろうとおもってwinsockの勉強しているのですが
とりあえずconnectだけさせるプログラム書いて実行させたのですが
10060エラー(接続要求がタイムアウト)がでてしまい
いろんなとこに接続させようとしてもかわらず
とりあえずあえてポート番号間違えて打って実行させたら10061エラー(接続拒否)
が出たのでプログラムは間違っていないのではないかと思い
質問させてもらいました

俺がただ単にプログラムを間違えてるだけなのでしょうか?よろしくお願いします
0775デフォルトの名無しさんNGNG
windump(>>3)で追跡しろ。
想定しているIPアドレス、ポート番号に接続しようとしているか。
0776754NGNG
>>755

ありがとうございます
やはり受信データ長をチェックする必要はあるのですね

もしこれについて、何か注意を促している書籍、情報へのポインタをご存知でしたら、
教えていただけないでしょうか?
0777デフォルトの名無しさんNGNG
何故受信データ長?
接続段階で失敗してるんでしょ。
0778774NGNG
>>775
ありがとうございました
WinDumpで追跡したら、ポートが変になっていたので見てみたら
htonsしていなかっただけでした、athlonだからいらないと思ってました;
0779775NGNG
>>778
予想通りの結果でした(w
0780デフォルトの名無しさんNGNG
>athlon
一瞬新しく追加されたPOSIXの関数かと思ったよ・・・
0781デフォルトの名無しさんNGNG
At Host Local Network
0782デフォルトの名無しさんNGNG
Athlonは魔法の石ではない。
0783athlonだからいらないと思ってました;NGNG
athlonだからいらないと思ってました;
0784デフォルトの名無しさんNGNG
alphaと間違えてるとか。alphaがbig endianか知らんけど。
0785デフォルトの名無しさんNGNG
athlonなら毛糸洗いに自信がもてるよ。
0786デフォルトの名無しさんNGNG
athronな
0787デフォルトの名無しさんNGNG
Ruby!!!!!!!!!!!!!!!!!!!!!!! >>>>>>>>>>>>>>>>>>>>asshole
0788デフォルトの名無しさんNGNG
athlon>>|超えられない壁|>>Ruby!!!!!!!!!!!!!!!!!!!!!!! >>>>>>>>>>>>>>>>>>>>asshole>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<お前
0789デフォルトの名無しさんNGNG
Rubyは
0790デフォルトの名無しさんNGNG
最高!
0791デフォルトの名無しさんNGNG
何この変な荒れ方
0792デフォルトの名無しさんNGNG
IPやTCP, ICMP等のパケットを自分で作りたいんですが、それぞれの関係や、具体的なデータの例を出して解説してるWebサイトってありませんか?
(UDPパケットはIPパケットのデータ部分に含まれてるとか、そういうプロトコル同士の関係とか)
0793デフォルトの名無しさんNGNG
仕事なら金を惜しむな。遊びならそんな怪しげなことするな。
0794デフォルトの名無しさんNGNG
>>792
ソース付きでその手のサンプルはいくらでも落ちてるし
プロトコルについて知りたいならそれ用のリファレンス・サイトに行けば良い

それが面倒なら本でも買えば?
ttp://www.esbooks.co.jp/books/detail?accd=31445555
0795デフォルトの名無しさんNGNG
金を惜しむならRFC読め。
http://www.rfc-editor.org/

時間を惜しむなら本を読め。
ComerのInternetworking with TCP/IPが代表的な教科書。
なぜかamazonにはハードカバーしか載ってないが、
安めのペーパーバックのものもあるはずなんだが(北米以外では)。

0796デフォルトの名無しさんNGNG
http://www.amazon.co.jp/exec/obidos/ASIN/4274064247/
http://www.amazon.co.jp/exec/obidos/ASIN/4274065847/
0797デフォルトの名無しさんNGNG
>>792
http://www.stackasterisk.jp/tech/program/howtosniff02_01.jsp
ここなんかどうですか?
C#言語でipヘッダ偽装する例が書いてありますよ。
もし、ここの応用でSYN FLOODなんか実装できたらソースここに乗せてくださいね。
0798デフォルトの名無しさんNGNG
これがソースとしては良いんだろうが大きすぎて簡単に見通せないか・・・
ttp://www.codeguru.com/Cpp/I-N/network/tcpip/article.php/c5447/

あんまりきれいなものじゃないけど簡単なものならこういうのとか・・・
ttp://www.geocities.jp/bruce_teller/security/garakuta.htm


RAW socket windows VC とかで検索
0799デフォルトの名無しさんNGNG
>>792
XPのSP2だと(以下このスレを読め
0800デフォルトの名無しさんNGNG
(* ̄▽ ̄) 脱Port0 winny総合質問別館3 (* ̄O ̄)
http://tmp4.2ch.net/test/read.cgi/download/1100272846/
0801デフォルトの名無しさんNGNG
age
0802デフォルトの名無しさんNGNG
>>801
ありがとう
0803デフォルトの名無しさんNGNG
質問です。
HTTPのクライアントをWinsockで作成しています。
ttp://blog.goo.ne.jp/index.php?fid=freshEntryRss
なんですが
HTTP/1.0とHTTP/1.1とバージョン番号を変えただけで取得する内容が異なってしまいます。
具体的には1.1の場合データ部の先頭に
”17a36”
のような形の文字列がつき、末尾には
2
(改行略)
0
などといったものがつきます。
他のURLではどちらにしても同じ内容がかえってきます。
レスポンスヘッダはどちらも
HTTP/1.1 200 OK
となっています。
何が原因でこういったことが起きるのでしょうか?
また先頭と、末尾にくっついたものはなんなのでしょうか?
わかる方がいらっしゃいましたら教えてください。お願いします。
0804デフォルトの名無しさんNGNG
chunked
0805803NGNG
chunked…
OKわかりました。ありがとうございます。

…あきらめます。
0806デフォルトの名無しさんNGNG
>>796
この本、よさそうなんだけど、サンプルコードがCなのか、、、
0807デフォルトの名無しさんNGNG
>>806
漏れは昨日ゲッツしたよ。
いまサンプルコードをC#に修正中。
0808デフォルトの名無しさんNGNG
ストリームソケットで質問です。
連続してsend()を行った場合、
recv()すると、send()したデータが繋がって受信してしまいます。
分けて受信する方法は無いのでしょうか?

受信するバッファは、どんなデータが来ても良いように、
多めに取っています。
送信する際に \0 を付けてやると、1つ目は \0 の場所で受信するのですが、
残りを受信する際に、また連続で取れてしまいます。

送る側
send( "a\0" );
send( "bc\0" );
send( "def\0" );

受け取る側
char* pcBuf = new char[ 100];
while( 1 ){
recv( pcBuf );
printf( "%s\n", pcBuf )
}

//結果/////////////
a
bcdef

↑こんな感じになってしまいます。
0809デフォルトの名無しさんNGNG
FAQ嫁
0810808NGNG
FAQ読みました。
大体理解できました。
ありがとうございます。
というか、\0あってもなくても変わらないし...orz
0811デフォルトの名無しさんNGNG
Winsockの質問です。
TCPでサーバ動作させているとき、サーバソケットはオープンしたままで
接続先ソケットをclosesocketしても問題ないでしょうか?
サンプルを見てみると、異常時には接続先ソケットを切断しているので、
処理としては問題ないように思うのですが…。
0812デフォルトの名無しさんNGNG
>>796
このURLアホみたいに貼る奴いるけど
作者か出版社か?あんまりしつこいと業者の宣伝として通報するぞ
0813デフォルトの名無しさんNGNG
先輩いわく
データとデータの間は1秒休みが基本だぜ!


・・・マジかよ
0814デフォルトの名無しさんNGNG
合ってるよ
0815デフォルトの名無しさんNGNG
>>811
shutdownした場合と、closesocketした場合に、
blockingされていたrecvの戻り値を比べて見なされ。
0816デフォルトの名無しさんNGNG
>>810
> というか、\0あってもなくても変わらないし...orz

sendのところ省いて書いてるけど、strlen("ab\0")してない?
\0も送りたければ、strlen + 1だぜ?

>>813
その先輩はabsolutely糞。
0817デフォルトの名無しさんNGNG
>その先輩はabsolutely糞。
現実的かつ具体的にどう糞なのかを説明してください。
0818デフォルトの名無しさんNGNG
脳みそにウジ虫湧いてる。108匹/cm^3
0819デフォルトの名無しさんNGNG
要は相手が受け取れる速度でデータを送れってことだ。
アプリが固まった時にマウスをクリックしまくる奴は糞。
0820デフォルトの名無しさんNGNG
>>819
そういうアプリを作る奴こそが糞なんだけどな。
同期型ソケットしか使えない愚か者が愚痴をこぼすスレじゃないんで
無能さを露見するような恥ずかしいレスはしないでくれ。
0821デフォルトの名無しさんNGNG
>>819
ねずみ虐待で訴えられますから。
0822デフォルトの名無しさんNGNG
>>821
はぁ?なにそれ
馬鹿?あんた馬鹿か?面白いの?それ。お前、面白いって思って打ったのか?!
どんなツラして送信したんだ?いっぺん鏡みてみろよ!
0823デフォルトの名無しさんNGNG
う〜ん、マンダム。
0824デフォルトの名無しさんNGNG
>>822
それは>>820に言うべきだ。
0825811NGNG
>>815
む、やってみます。
素人な質問に答えていただいて感謝。
0826デフォルトの名無しさんNGNG
>>822
>>819の荒しネタに>>820まじレスだから、
和ませようと必死の思いで呆けたんですが失敗しました。
お詫びに腹を切ります(プシュー

おまけ
Raw IP Networking FAQ
http://www.whitefang.com/rin/
0827デフォルトの名無しさんNGNG
Raw IPの話題をするのは厨房ときまってる
Raw IPがわかってたら質問自体しないしな
0828デフォルトの名無しさんNGNG
>>826の荒しネタに>>827まじレス  か
0829デフォルトの名無しさんNGNG
   /    // ̄ ̄\ヽ             /: : : : .   :`l、
   |   │| /^l l^ヽ |            ∠-'''´: ̄ ̄``ヽ、|
   |   │| l:::::l l:::::l |           /: : : : .       . : \
   |   │|┌┐┌┐|          l : : : : ._,: -‐-:、_ . : .:.:/
   |   │| l::::l .|::::l .|          l_ ,::-'''´ _,. --:、_`''-、_/
   |   │\┘.└'/|          |_,. ,.::-: :|| |   `''-、|
   |──┴────┤          .|,l.|,l-、!ー┘ニニ二r|!r-、
   l::-‐―――‐―=―‐ヽ      r‐:-.、 iハ!'´li゙}゙f|  '´lリ` |l}、l  ,r‐‐v‐、
   /   ノ リ ル' レ' リ リ`ー-ー`    /   (_i_ノl l;  ̄.ソ     ̄ j「ノノヽ.(_ァ ノ .)
  / レヽ| '"^二´   `ニ^h     /ヽ、_,..:.:.:,ノヾ!  Lャ-     ,!r':. ヾ:. .  ' ,ノ゙)
 く  { ^r  ゙⌒////(⌒ { |    l:.: .  '. .:.:/ .:',  ーニ-''"  /::.:i:.: `:.: .  `ー-く
  ヽ ヽ.( ij       ∠ィ リ     >、.__,. ': .;ノ / i、  ー' /! ヽ ::.: :`.ヽ.、__)  )
.  ヽ ド、 r ⌒`ー--‐1 ,'    (    '. .:.:  _」 \_/ ,!  `ヽ、、_:.: : . ヽ、,ノ
    ヽl ト、ヽ.       l /     \__,,、-‐''"´ |i    , ′    `ー- 、..__,ノ゙
     リ \` -─- , '      /   `‐- _ ′!    /  !  _,..、 ''"´  ``丶、
 ─- ..⊥.   ` ー- イ-‐''" ̄ヽ. /  _   ヾ    ̄`` r┴'''"´ ̄   -''゙
0830デフォルトの名無しさんNGNG
えーっと、、、保守
0831デフォルトの名無しさんNGNG
保守は上げなくても良いと何度いったr(ry
0832デフォルトの名無しさんNGNG
>>831
いちいち数えてない
0833デフォルトの名無しさんNGNG
パンの枚数を(r
0834デフォルトの名無しさんNGNG
13枚
私は和食ですわ
0835デフォルトの名無しさんNGNG
>>833
ジョジョ?
0836デフォルトの名無しさんNGNG
WindowsをクライアントでLunuxをサーバーという
アプリケーションを作りたいのですが、Winsockを
解説したサイトだと、WinsockとLinuxのsocketとは
互換性がなく、繋がらないで、送受信が出来ないという
のを見たのですが、もし、Windowsのクライアントと
Linuxサーバーを作るとしたらJavaくらいしか
ないのでしょうか?

それか、Linuxのsocket互換のWindowsのsocketを
作るしかないのでしょうか?

すいませんが宜しくお願いします。

0837デフォルトの名無しさんNGNG
そのサイトのURL晒してくれ
0838デフォルトの名無しさんNGNG
>>836
>Winsockを解説したサイトだと
どこだ、そのDQNサイトって
0839デフォルトの名無しさんNGNG
ありえねーよw
その理論だと、Linux + Apacheサーバなサイトは、Windowsじゃ見れないことになっちまうんじゃないのか?w
0840デフォルトの名無しさんNGNG
そこまでDQNなのも珍しいんじゃなかろうか。
0841デフォルトの名無しさんNGNG
プログラムをそのままもっていっても動かないというだけで、

> WinsockとLinuxのsocketとは互換性がなく、繋がらないで、送受信が出来ない

なんて事は全くない。
あなたがどちらを普段使っているか知らないが、
Windows(IIS)のサーバにも、Linux(Apache)のサーバにも問題なくつながるでしょう。

その糞ページの記述は全て無視すること。
0842841NGNG
かぶった…orz
0843デフォルトの名無しさんNGNG
その糞サイト、どこなのか知りたいよー。

単に836が理解していないだけって可能性も大だけど。
0844デフォルトの名無しさんNGNG
その後、836の姿を見た者はいない・・・
0845デフォルトの名無しさんNGNG
FireFoxでIE用のサイトが見られないのは有名な話。
0846デフォルトの名無しさんNGNG
>>845
それはSocket云々じゃなくて、ブラウザのレンダリングエンジンの差じゃ?
0847デフォルトの名無しさんNGNG
>>836の内容と>>845の内容にどんな関連があるのか、
それは世界中で845しか知らない。
0848デフォルトの名無しさんNGNG
TCP/IPという共通のルールがあって成り立ってるのがインターネットなわけですよ
OSがなんだろうが開発環境がなんだろうがインターネットで通信するってことは
そのTCP/IPの流儀に合わせてやるということなんですよ
0849デフォルトの名無しさんNGNG
ここでリセット

------------------------------------------------------------
ノーマルモード
↓
0850デフォルトの名無しさんNGNG
FireFoxでIE(ry
0851デフォルトの名無しさんNGNG
改行コード間違ってるんじゃないのか
0852デフォルトの名無しさんNGNG
>>836
> 解説したサイトだと、WinsockとLinuxのsocketとは
> 互換性がなく、

までを書いてあったんじゃないかと思う。同じC言語開発環境でsocketを扱っても
コードの互換性はないって言いたいだけじゃない?そこから後の部分は>>836が
勝手に思ったことだろ。だって「つながる」のなんのってのと「ソケット」云々っての
は話のレベルが違う部分だから。
0853デフォルトの名無しさんNGNG
Pentium4で送信したデータをPowerPCで読み込むと化けるのは有名な話。
0854デフォルトの名無しさんNGNG
エンディアン違いもいいとこ
0855デフォルトの名無しさんNGNG
こうして質問とは関係なく予想だけで論争が始まる
 ↓
0856デフォルトの名無しさんNGNG
さがりすぎ
0857デフォルトの名無しさんNGNG
つーかおまえらさすがに釣られすぎだろ。スルーしろよ。
0858デフォルトの名無しさんNGNG
WinsockとLinuxのSocketはm9(^Д^)プギャー
0859デフォルトの名無しさんNGNG
IEコンポーネントの話も、ここで良いのかな?

ATLってのを使ってSDKで、IEコンポーネントをウインドウに貼り付けました。
それでIEコンポーネントをサブクラス化にしても、キーボードをフックしても
いつのまにか、キーボードのメッセージが飛んで来なくなります。

どうやって、キーボードのメッセージを捕まえたら良いですか?
0860デフォルトの名無しさんNGNG
↑
開発環境は、VC++6.0 (SP6)、OS 2000(SP4) 使ってます。
0861デフォルトの名無しさんNGNG
おまえ「IE」ってついてるだけで→Web→ネットワークって発想だろ。
質問する場所考えるときにもっと頭使えよ!
0862デフォルトの名無しさんNGNG
昔、IEコンポーネントスレってあったような気がするんだけど、どこいっちゃったの?
0863デフォルトの名無しさんNGNG
数日前に落ちた。
0864デフォルトの名無しさんNGNG
980越えで落ちてそのまま。

俺は、WinInetならともかく
IEコンポーネントやFireFoxとネットワークプログラミングは
殆ど関係なく、思い切りスレ違いだと思ってるけどね。
0865デフォルトの名無しさんNGNG
>>859
http://pc5.2ch.net/test/read.cgi/tech/1095185498/
0866デフォルトの名無しさんNGNG
>>865
こっちだろ
ATL/WTL Part3
http://pc5.2ch.net/test/read.cgi/tech/1095442366/
0867デフォルトの名無しさんNGNG
Linuxのsocketはオープンソースですが、
winsockはクローズドソースなので、相性が悪いです。
0868デフォルトの名無しさんNGNG
???
0869デフォルトの名無しさんNGNG
嫁と相性が悪いのはソケットのせいでしょうか?
0870859NGNG
>>861>>864
発想はその通りです。
このスレだとネットワーク全体のこと、やってるのかなと思って
質問させてもらいました。
勉強不足で、すみません。

>>862
昔みかけたことあったので、そのスレに聞きたかったのですが
落ちてたんですね。

>>865>>866
誘導ありがとうございます、過去ログ読んで来ます。
0871デフォルトの名無しさんNGNG
>>853
そんな話あったっけ? と思ったが、
ネットワーク・バイトオーダーを知らん知障だったってことか。


0872デフォルトの名無しさんNGNG
すぐに分からない871も・・・
0873デフォルトの名無しさんNGNG
勘弁してやれ。当たり前のことすぎて気付かないってことはあるもんだ。
0874デフォルトの名無しさんNGNG
>>871 は池沼認定です。おめでとう!!!
0875デフォルトの名無しさんNGNG
ここでリセット

------------------------------------------------------------
再開
↓
0876デフォルトの名無しさんNGNG
1台しかPCを持っていない場合、
ネットワークプログラミングの勉強をするにはどうしたらいいのかな。

ものすごく基礎的な話題にしてみるテスト
0877デフォルトの名無しさんNGNG
internetに接続されたPCのほとんどがIntel PCだというのに、
ネットワーク・バイト・オーダーがbig endianというのは
はっきり言って無駄である。
0878デフォルトの名無しさんNGNG
じゃあ変えとけ。
0879デフォルトの名無しさんNGNG
>>876
TCPのクライアント/サーバなら一台でできるよ。

どうしても別ホストへの接続がやりたいなら、
VMWareやVirtualPCなどのエミュレータを導入するとか。
coLinuxもおすすめ。

勉強だったらこの環境でゲップが出ると思う
0880デフォルトの名無しさんNGNG


「ネットワーク・バイト・オーダーをlittle endianとする会」

0881デフォルトの名無しさんNGNG
127.0.0.1 を相手に通信する
0882デフォルトの名無しさんNGNG
普通テキストファイルは big endian だろうが。
0883デフォルトの名無しさんNGNG
ネットワークの話してるんだけど?
スレ違いも甚だしい
0884デフォルトの名無しさんNGNG
>>877
定量的にどれだけ無駄かを示せ。
0885デフォルトの名無しさんNGNG
>>876
中古でボロそうなPCを買ってくるという手も
0886デフォルトの名無しさんNGNG
性善説のUNIXサーバを使え。
0887デフォルトの名無しさんNGNG
>>876
「Virtual Server 2005」 イイヨ
0888デフォルトの名無しさんNGNG
>>876
localhostとloopback network interfaceを。
ネットワークにつなぐ必要すらない。
0889デフォルトの名無しさんNGNG
>>888
>>881
0890デフォルトの名無しさんNGNG
>>888
>>879
0891デフォルトの名無しさんNGNG
てか鯖クラックすればいいじゃない
0892デフォルトの名無しさんNGNG
>>890
>>879は厳密には1台とは言えんでしょ
0893デフォルトの名無しさんNGNG
確かに「1台のコンピュータにインストールできます」ってライセンスでも
実記と仮想PCの両方にはインストールできない場合が多いな
ところで死ぬほどどーでもいーが喪前らFireFoxじゃなくてFirefoxですよ
0894デフォルトの名無しさんNGNG
だから性善説の(ry
0895デフォルトの名無しさんNGNG
>>877
Intelがビッグエンディアンにすりゃ問題解決だよなぁ、
と常々思っています。
0896デフォルトの名無しさんNGNG
いまさら変えられない
0897デフォルトの名無しさんNGNG
そういうわけなんです。>>877
0898デフォルトの名無しさんNGNG
>877
組み込み系はビッグエンディアンが多いが...
ネットにつなぐのはPCに限らない
携帯とか、いろんな機器類とかね
0899デフォルトの名無しさんNGNG
まあ、独自プロトコルなら困らないでしょうけど。
0900デフォルトの名無しさんNGNG
というか、通信データ内で、integer型が占める割合ってどのくらいよ?
byte swapが無駄なんて考えている事自体、時間の無駄だと思うけど。
0901デフォルトの名無しさんNGNG
>>900
精神分裂病か?
一行目と二行目に関連がないぞ
0902デフォルトの名無しさんNGNG
>byte swapが無駄なんて考えている
誰もそんなこと言ってない。
0903デフォルトの名無しさんNGNG
>通信データ内で、integer型が占める割合ってどのくらいよ?
どうやって調べろと?
0904デフォルトの名無しさんNGNG
無駄という話ならそんなどうでもいいことより
チェックサム計算しながら使われていないとか
もっと気にすることがあるだろ
0905デフォルトの名無しさんNGNG
>901
こらこら。

ちゃんと、総合失調症と呼びなさい。
ttp://www.pref.okayama.jp/hoken/seishin/kosyou4.htm
0906デフォルトの名無しさんNGNG
そういえばさ、
TVでちらっと見ただけなので、詳しいことは知らんが、
痴呆症が認知症に名称変更されるらしいね。
0907デフォルトの名無しさんNGNG
>>905
リンク先には「統」合失調症って書いてますけど
0908デフォルトの名無しさんNGNG
クローズド・ソースならbyte orderは好きにしてくれていい。

オープン・ソースは、network byte orderを使うのが原則。
0909デフォルトの名無しさんNGNG
>>906
そうです。「認知障害」という案も出たそうなのですが、
すでに心理学で使用されているとかで。
0910デフォルトの名無しさんNGNG
>>908
???
0911デフォルトの名無しさんNGNG
>>908
リトルエンディアンかビッグエンディアンかの話なんだが?
リアル池沼?
0912デフォルトの名無しさんNGNG
>>911
何か変な事言ってるの?
0913デフォルトの名無しさんNGNG
>>911
阿呆か。ソースがクローズドかオープンなのかは関係ない。
0914デフォルトの名無しさんNGNG
Intel以外のCPUを使えばいい。
0915デフォルトの名無しさんNGNG
オープン・ソース・バイト・オーダー
というのを決めればいいと思うんだ。
0916デフォルトの名無しさんNGNG
>>915
その定義をして下さい。
0917デフォルトの名無しさんNGNG
バイトオーダーくらいカタカナで書け
0918デフォルトの名無しさんNGNG
>>917
はあ?
0919デフォルトの名無しさんNGNG
>>918
0920デフォルトの名無しさんNGNG
>>911
> リアル池沼?

アリトル
0921デフォルトの名無しさんNGNG
ネットワークバイトオーダーの実体がlittleだろうがbigだろうが、
アプリ側でntoh,htonをサボるいいわけには成らないよ。
0922デフォルトの名無しさんNGNG
統一すれば無駄が省けるって話だろ。
いくら劣勢とはいえゴキブリのようなbig連中を死滅させるのは難しいが。
0923デフォルトの名無しさんNGNG
>>898
ルータなんかはPowerPC, MIPS系が多いからね。 ネットワークコード書くのにバイトスワップを
しなくて良いのはやっぱり楽よ。
0924デフォルトの名無しさんNGNG
こんなにあほな流れが続いてるとは思わんかった
0925デフォルトの名無しさんNGNG
>>921
だから、「オープンソース・バイトオーダー」にしよう、と。
0926デフォルトの名無しさんNGNG
パケットモニタで見たとき読みやすいし
0927デフォルトの名無しさんNGNG
SMTP-POP等のメール用(?)サーバを経由せずに、メールを相手に確実に届ける方法ってありますか?
相手のIPアドレスだけがわかってる状態で、相手のシステムフォルダに送りたいんです。
0928デフォルトの名無しさんNGNG
>>927

ないから死ね
通報もした

http://www.cyberpolice.go.jp/
0929デフォルトの名無しさんNGNG
(´・ω・`)なんで通報されるんだろ・・・ショボーン
0930デフォルトの名無しさんNGNG
悪いということを理解できない奴が真の悪。
>>929は未成年の犯罪者予備軍。
0931デフォルトの名無しさんNGNG
>>927
> 相手のシステムフォルダに送りたいんです。

それってもうメールじゃないじゃん
0932デフォルトの名無しさんNGNG
マリネラ一の美少年
0933デフォルトの名無しさんNGNG
>>927
相手が何の準備もなくいきなり送れるわけないだろ。
ファイルコピーしたいならFTPかフォルダの共有させるとかなにかサービス利用しとけ。
0934デフォルトの名無しさんNGNG
>>931
うんうん
0935デフォルトの名無しさんNGNG
>>925
もうなってるじゃん。
0936デフォルトの名無しさんNGNG
>>927
UUCP
0937デフォルトの名無しさんNGNG
hostはbig or little
networkはmiddleにすればすべて解決
0938デフォルトの名無しさんNGNG
>>937
最高に頭悪そうな発言してください in ム板 (3)
http://pc5.2ch.net/test/read.cgi/tech/1101931660/
0939デフォルトの名無しさんNGNG
big endianでもlittle endianでもないものもあるよ。

0940デフォルトの名無しさんNGNG
>>927
システムフォルダじゃないけど、スパマーのルートにtelnetで送ったことならある。
0941デフォルトの名無しさんNGNG
だからそれはメールじゃないだろと・・・
0942デフォルトの名無しさんNGNG
>>932
だーれが殺した
0943デフォルトの名無しさんNGNG
http://www.fileup.org/file/fup2930.mp3
パタリロ〜クックロビン音頭〜
0944デフォルトの名無しさんNGNG
ちょっと教えてください
サーバー側でlisten後acceptすると相手から接続要求がくるまでacceptから抜けてこないのですが
一定時間経つとぬけるようにするにはどうしたらいいのでしょうか?
0945デフォルトの名無しさんNGNG
selectはダメ?
0946デフォルトの名無しさんNGNG
>>944
そういうケースって現実のどのくらい起こってるの?
acceptが即戻ることを前提に組んでるのが結構あったりして・・・
0947デフォルトの名無しさんNGNG
>>945
あ、すみませんselectではどうやってやればいいですか?

>>946
いえ、例えば普通にIPやポートを間違った状態でacceptすると現状では一生抜けてこないので・・
0948デフォルトの名無しさんNGNG
>>946
select使おうぜ。
acceptがすぐに戻るなんて幸せなことはほとんどない。
人生に幸せなことなんてほとんどない。
ないんだよ・・・
0949デフォルトの名無しさんNGNG
acceptの仕様を理解してるのかと小一時間・・・。
945の言うようにselectで待つか、acceptスレッドを切れ。

>>946
サーバなのにacceptが即戻ることを前提にするプログラムって、
どんなんだ。
0950デフォルトの名無しさんNGNG
>>947
なあ、まずはヘルプくらい読もうな。
selectにソケットIDとタイムアウトまでの時間を渡すんだ。
0951デフォルトの名無しさんNGNG
あ、selectでできたわ
つか、おまいら文句ばっかで役にたたねーわ、あばよ(´,_ゝ`)
0952デフォルトの名無しさんNGNG
      _   (⌒Y´ ̄ヽ  ∧_/( ̄)) ∧_∧
    γ´  `ヽ_`と.__   )( ゚ ∩( 《 ( ゚ ∞゚ )  ゴロン
     )) ,、 , ) <、_,.ノ  ヽ、.__,ノ  l  つ つ
    ((_/し∪V    Å         .ヽ.__ノ!__)) ゴロン
  ∧__∧       / \           ∧_∧
 (    )       ( ;・∀・)        (゚∞゚  )ペーチュンチュン〜。
 (    つ     (U_U )つ       (つ  と)
 .ヽ___ノj       >>951        (⌒Y⌒)
    ∧__∧                . / ̄ヽ ̄
   (゚    )           __    ( __  ) (  ゴロン
    と   ヽ ( ̄))∧_∧  /´ `Y⌒) VUVJ_)
    (__ト、__丿 〉 》∩ _) (   .__つ´
          ヽ、.__,ノ   ヽ、__,.>

0953デフォルトの名無しさんNGNG
  ∧∧
  (゚∞゚)ペー  | |チュンチュンチュン!
 と    )    | |    人
   Y /ノ    .人   <  >__Λ∩
    / ) .人 <  >__Λ ∩Д´)/
  _/し' <  >_Λ∩Д´)/   / ←>>951
 (_フ彡 V`Д´)/   / ←>>951
            / ←>>951
0954デフォルトの名無しさんNGNG
                  __
                     〜|・∀・|〜 ←>>951
                      |__|
  ( ゚∞゚)            | |


                  ___ ?
                     〜lД・〜l
                      |___|     
     ((((((( ゚∞゚)      < |


                  ___ 
                Ξ( ゚∞゚)Σ l・Д・lァゥァ
                      |___|     
                  < |

                  __
                     〜| ゚∞゚|〜ペーチュンチュン
                      |__|  
                  | |  
0955デフォルトの名無しさんNGNG
>>946もアフォ
0956デフォルトの名無しさんNGNG
                             |\_____________|
                            | |::::::::::::::::::::::::       |
       /⌒彡          /⌒彡     | |::::☆::::::::::::::::::::::::     |
      / ゚∞゚)ペーチュン    / ゚∞゚)チュソ   | |    :::::::::::::::::::::::::::::::::::::|
      |   /          |   /        | |::::::::::::::::::::::::       |
    ( ニニニニニニニニニニ_ア  /::::::::::::;\      | |             |
     |:::::::::::: l |       //´|:::::::::::: l |       | |             |
     |:::::::::::: | |       | | |::::卍::: | |     | |             |
    /::::::::::::/| |      // /::::::::::::/| |      | |    (゚∞゚)星    |
    |::::::::::/ Uヽ    /U |::::::::::/ | |      | |   逝き↓       |
    |::::||:::|  | |???| |  |::::||:::|  U     | |        ___A___   |
    |::::||::|   |∧_∧/   |::::||::|.         |         (_o_o_o.)  |
     | / | |   (;  ゚Д゚)  | / | |        | |_______ハ___|
    // | |   |  ` /   // .| |        | |       / /    |
   //  | |   | /| |   //  .| |        | |      /  /    |
  //   | |   // | |   //   | |       | |    /   /     |
 U    U  U  U   U    U        ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
         ↑>>951
このスレ内で(゚∞゚)ではない>>951を発見した。>>951はスレ内で
意味不明かつ不適切な発言をしたとして、我々は>>951を(゚∞゚)星に連行し
>>951を(゚∞゚)化後、キティ星に追放の刑に処す
0957デフォルトの名無しさんNGNG
はにゃ〜ん
0958デフォルトの名無しさんNGNG
メールソフト作ってるんですが、ESMTPは実装したほうがいいんでしょうか?
OEでは実装されてますか?
0959デフォルトの名無しさんNGNG
ESMTPは、クライアント主導で決定されるので、
必要な物があれば実装すればいいです。例えばSTARTTLSなど。
OEは実装してます。
0960デフォルトの名無しさんNGNG
OE以下のメールソフトなんて誰が使うものか
0961デフォルトの名無しさんNGNG
recvか何かで受信する前にデータ数がわかる方法があったら教えてください
0962デフォルトの名無しさんNGNG
ない。
0963デフォルトの名無しさんNGNG
あらかじめ定量しか送らないことに決めておく
あるいは何らかの形で量を規則化しておく
0964デフォルトの名無しさんNGNG
んーやっぱりないですかあ
recvで取ったデータをまた戻すってこともできないですよね?
0965デフォルトの名無しさんNGNG
そういうのはrecvしてバッファリングしておく層を作っておくのが定石。
0966デフォルトの名無しさんNGNG
つかMSG_PEEKでできますた(;´Д`)
0967デフォルトの名無しさんNGNG
>>966
それって>>961とはちょっと違うよ。
用意したバッファ分だけ受ける。ただしqueueから除かない。
だからもっとあるかも知れない。
0968デフォルトの名無しさんNGNG
>>967
え?そうなんですか?>>964みたいに戻しはしないけどキューから削除しないからいいかなって思って
試してみてもちゃんとできたしああ
0969デフォルトの名無しさんNGNG
「もっとあるかも知れない」
それが分からなくていいならMSG_PEEKで問題なし。
0970デフォルトの名無しさんNGNG
1つのソフトでクライアント(connect)とサーバー(bind)をあっせたい場合に各々ポート番号は何を指定すればいいのでしょうか?
socketでAF_INETとSOCK_STREAMを指定している時です。両方とも80ではダメですよね?
0971デフォルトの名無しさんNGNG
>>970
サーバは 80 番に bind して listen する。
クライアントはbindしないで、80番に connect する。
0972デフォルトの名無しさんNGNG
誰か次スレ立てて。
0973デフォルトの名無しさんNGNG
>>971
ありがとうございます。
ちなみに80番以外では失敗するのですが、>>970での場合はポートは80限定になるのでしょうか?
0974デフォルトの名無しさんNGNG
>>973
具体的に何番がどう失敗したのかわからないとアドバイスもしにくい。
既に動いているアプリがそのポートを使用中なのかもしれないし、
ファイアウォールの様なソフトが介入しているのかもしれないし。
0975デフォルトの名無しさんNGNG
>>973
次スレ立てたら教えてあげる
0976デフォルトの名無しさんNGNG
>>972
まずは自分がやれ
0977デフォルトの名無しさんNGNG
>>976
立てれんかったから頼んでる。
0978デフォルトの名無しさんNGNG
俺も無理だったからスレ立て依頼してきた。
0979デフォルトの名無しさんNGNG
ネットワークスレの住民がスレ立てることもできないとは笑止千万
0980デフォルトの名無しさんNGNG
糞スレ立てまくってたら、肝心な時にスレ立てれない
0981デフォルトの名無しさんNGNG
あFOX ★のせいだ。
0982デフォルトの名無しさんNGNG
テンプレ追加案

★図書
TCP/IPによるネットワーク構築〈Vol.1〉原理・プロトコル・アーキテクチャ
http://www.amazon.co.jp/exec/obidos/ASIN/432012054X/

★ツール
Packetyzer
http://www.networkchemistry.com/products/packetyzer/
ethereal
http://www.ethereal.com/

★プログラミング
Raw IP Networking FAQ
http://www.whitefang.com/rin/
0983デフォルトの名無しさんNGNG
★規格
RFC Editor
http://www.rfc-editor.org/
HTMLなRFC (セクションを直に示すのに便利)
http://www.freesoft.org/CIE/RFC/
- Randomness Recommendations for Security
http://www.faqs.org/rfcs/rfc1750.html

★プロトコル
TTCP
http://www.sean.de/Solaris/ttcp.html
http://www.kohala.com/start/ttcp.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

★その他
パタリロ〜クックロビン音頭〜
http://www.fileup.org/file/fup2930.mp3
通報
http://www.cyberpolice.go.jp/
0984デフォルトの名無しさんNGNG
新スレじゃ
http://pc5.2ch.net/test/read.cgi/tech/1102427855/
0985デフォルトの名無しさんNGNG
985
0986デフォルトの名無しさんNGNG
986
0987デフォルトの名無しさんNGNG
0
埋めるときはzero fillで。
じゃないとchecksumが合わないよ。
0988デフォルトの名無しさんNGNG
(´,_ゝ`)プッ
0989デフォルトの名無しさんNGNG
チェンジアップの投げ方を教えて
0990デフォルトの名無しさんNGNG
どうせブラジャーのはずしかたも知らんのだろ?
0991デフォルトの名無しさんNGNG
>>988
親に笑われたこともないのにー
0992デフォルトの名無しさんNGNG
>>989
腕をよく振ること
内角には投げないこと
0993デフォルトの名無しさんNGNG
listen()のキュー長を越えるアクセスがあった場合ってconnect()すると-1が返ってきますか?
listen(sock,5);
たとえば、このときに自分が6人目だったら…
connect() == -1 ?
0994デフォルトの名無しさんNGNG
それくらい試せるだろ
0995デフォルトの名無しさんNGNG
Winsockでsend()する時に送信データのバイト数を
付加しようと思い、以下のようにコーディングしましたが・・・
うまくいきません。どうすればちゃんと送れるか、どなたか教えていただけませんか?

char *data;
long net_byte;
int host_byte;
int host_byte = strlen(data);

net_byte = htonl(host_byte); // バイト数をビッグエンディアンで取得

send(sock, net_byte+data, sizeof(data)+4, 0) // 送信(ここがうまくいきません)
0996デフォルトの名無しさんNGNG
>>995
うまくいきませんじゃわかりません
0997デフォルトの名無しさんNGNG
Cの勉強からやりなおせ。
0998デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1102427855/
Port12
0999デフォルトの名無しさんNGNG
>>995
ポインタにintを足したら何になると思ってるんだキミは。
1000デフォルトの名無しさんNGNG
1000ゲット
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。