トップページ⇒tech
981コメント264KB

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001非ブロッキング名無しさん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/

関連リンクは>>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
>>3
お勧めサイトにここが抜けてる
http://X68000.q-e-d.net/~68user/net/

問題ありだけど役には立つ
0006デフォルトの名無しさんNGNG
質問です。
自分専用の日記帳プログラム(DB使用)をJSPで作ろうかなーと思ってるんですが、
ふと疑問に思ったのが、対応しているレンタル鯖が少ないし、他言語に比べて重い(?)のに
JSPを使うメリットって何がありますか?

JSPを選んだ理由はJSPが一番慣れてるからっていうだけで、
あんまメリットが無いならほかの言語でつくろうかなとも考えてるんですが。(候補PHP4 or 5)
お勧めの言語とかもあれば教えてください。理由も書いていただけるとありがたいです。
00076NGNG
しまった・・・。微妙にスレ違いディスカ?
0008デフォルトの名無しさんNGNG
候補のすべての言語で作れ
そんで、一番好みのものを採用しとけ
0009デフォルトの名無しさんNGNG
age
0010デフォルトの名無しさんNGNG
あんまり問題有りとか書かれて閉鎖されると困るから勘弁してくれ
0011デフォルトの名無しさんNGNG
そんな書かれ方されたら気にしない振りしてもストマックブローになるだろうしなw
0012デフォルトの名無しさんNGNG
そんな事より前スレの>>950は逃げたのかな?
そろそろ成果物の1つぐらいうpしてほしい頃なんだけど・・・
0013デフォルトの名無しさんNGNG
>>12
仲間を疑うことは俺が許さん。
きっとうんこの切れが悪くて手間取ってるだけだ。
0014デフォルトの名無しさんNGNG
>>10
このスレは見ていないだろ。
0015デフォルトの名無しさんNGNG
2chは口だけ達者な香具師が多いからな。
0016デフォルトの名無しさんNGNG
誰かselect/epollのラッパーライブラリ作ってよ。
0017デフォルトの名無しさんNGNG
wxWidgetsあたりにソースを提供して欲しいな
0018デフォルトの名無しさんNGNG
>>16
んなもん使う奴はパフォーマンスを気にする奴だから
作っても無駄になる可能性大

あとOS非依存性を確保するのがかなり難しい
0019buNGNG
<input type="file">のときに、その他のhiddenパラメータなども一緒に
受け取ることはできますか?

<FORM ACTION="upload.cgi" ENCTYPE="multipart/form-data" METHOD="POST">
<INPUT TYPE="file" NAME="File" SIZE="50"><BR>
<input type="hidden" name="testkey" value="これを取得できたらいいな">
<input type="submit" name="btnSend" value="送信">
</FORM>

STDINからCONTENT_LENGTH分読み込むと、添付ファイルだけなんすよー。
なお、毛ジュールは使ってません。できれば、使わないで取得する方法希望。
0020デフォルトの名無しさんNGNG
WebProg板へどぞ。
0021デフォルトの名無しさんNGNG
age
0022デフォルトの名無しさんNGNG
HTTPクライアントが与えられたURLのWeb文章を検索しようとしている。
HTTPサーバのIPは分からない。
このURLのWeb文章には、元のドキュメントと同じサーバにある
GIFイメージが組み込まれている。
この場合、HTTP以外、どんなトランスポート層と
アプリケーション層プロトコルが必要か?
0023デフォルトの名無しさんNGNG
宿題は宿題スレへ
0024デフォルトの名無しさんNGNG
>>22
マルチは放置
0025デフォルトの名無しさんNGNG
>>24
答えられないのですね。
そうですか。
0026デフォルトの名無しさんNGNG
>>23
>>24

( ´,_‥`)どうせ分からんのだろ?
マルチポストがどうのじゃなくて。



って、俺も分からんが。
0027デフォルトの名無しさんNGNG
                |
                |
                |
                |
     /V\        ,J
    /◎;;;,;,,,,ヽ
 _ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
0028デフォルトの名無しさんNGNG
「URLのWeb文章」に、ftp://server/hoge.gifなんてimgタグが
はってある場合、「元のドキュメントと同じサーバ」にあるともいえるから、

ftp, https, tcp, dns, nbt, nfs, telnet, sstp, bgp4, udp ,nntp, mms, httpu, tftp
まー このくらいあったら十分なんでないかい多分。
0029デフォルトの名無しさんNGNG
>>28
マジで有難うございました。
0030デフォルトの名無しさんNGNG
AF ってのは AddressFamilyの略で
PF ってのは ProtocolFamilyの略ですよね。
sockaddr とかの familyは AFでいいですよね。
socket(2) の第一引数や addrinfoの ai_familyなんかは manを見ると PFらしい
んですが、「UNIXネットワークプログラミング Vol.1」では AFを使っています。
これは単に本が古いからでしょうか。PFで統一しちゃっていいですか?
0031デフォルトの名無しさんNGNG
いきなりAFするのは危険だな
0032デフォルトの名無しさんNGNG
>>30
manに従いましょう。

struct addrinfoは、protocolが特定されるんでPF_*なんです。
そこがstruct hostentと違います。
0033デフォルトの名無しさんNGNG
>>30
UNP で AF に統一されているのは、古いからというよりも著者のポリシー。
AF_xxx versus PF_xxx っていう節があるから一読しておくと良いよ。
(そもそも POSIX 仕様自体が、addrinfo を PF にも AF にも使うようになってるじゃん、とか)

統一するかどうかはポリシー次第で決めればよいと思うけど、
どうせ統一するなら AF の方が良いような気がする。

0034デフォルトの名無しさんNGNG
test
0035デフォルトの名無しさんNGNG
ldapで、
123-45-6789
と入力しても
123456789
と入力しても
12-345-6789が検索できるようにしたい!
telephone="'" + telephone + "'"
だとなぁ・・・
ldapのクエリでそれを実現するにはどうすれば?
0036デフォルトの名無しさんNGNG
"convert(telephone, '-', '') = '" + telephone + "'"
みたいな?
0037デフォルトの名無しさんNGNG
serverは何よ?
( 2.5.13.21 NAME 'telephoneNumberSubstringsMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
じゃまずい?
003835NGNG
>>36
そうです
ついでに言うと、
convert(telephone,'-','') = '" + convert(telephone,'-','') + "'"
という風に、LDAPのクエリで使う関数と、それを実装する言語上での関数を使い
-を全部取っ払って比較したいです。
実装する言語上での関数は絶対に何とかなるので、問題はLDAPのクエリで使える関数ですよね
003935NGNG
>>37
実は知らないんです・・・・。
あてずっぽうでNetscapeかActiveDirectoryじゃないかと。
ホスト名、ポート、ベースDNのみローカルに公開されているLDAPサーバで、
ADSI使ってVBScriptでクエリを実行してみたら簡単な上納の検索は成功したんですよ。
ただLDAPのサーバが何を使っているかはわかりません。

004035NGNG
>>37
分割したレスですいません。
2.5.13.21 NAME 'telephoneNumberSubstringsMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
の意味がさっぱりとわかりません。むずい・・・。
RFCを見るべきなのでしょうか。
できれば分かり易く解説しているURL、なければ英語でも良いので参考になるURLを
教えていただけないでしょうか。
0041デフォルトの名無しさんNGNG

      r;ァ'N;:::::::::::::,ィ/      >::::::::::ヽ
.      〃  ヽル1'´        ∠:::::::::::::::::i
       i′  ___, - ,. = -一   ̄l:::::::::::::::l
.      ! , -==、´r'          l::::::/,ニ.ヽ
      l        _,, -‐''二ゝ  l::::l f゙ヽ |、 ここはお前の日記帳じゃねえんだ
        レー-- 、ヽヾニ-ァ,ニ;=、_   !:::l ) } ト
       ヾ¨'7"ry、`   ー゙='ニ,,,`    }::ヽ(ノ  チラシの裏にでも書いてろ
:ーゝヽ、     !´ " ̄ 'l,;;;;,,,.、       ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{   __)`ニゝ、  ,,iリ::::::::ミ    
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ ,  な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
0042デフォルトの名無しさんNGNG
>>41
なんでこんなところにガンダムキャラがw
0043デフォルトの名無しさんNGNG
>>42
ttp://gaty.hp.infoseek.co.jp/oresen.html
ttp://gaty.hp.infoseek.co.jp/oresen2.html
0044デフォルトの名無しさんNGNG
http://gaty.hp.infoseek.co.jp/oresen.html
http://gaty.hp.infoseek.co.jp/oresen2.html
0045デフォルトの名無しさんNGNG
?
0046デフォルトの名無しさんNGNG
ムチャワラタ
0047デフォルトの名無しさんNGNG
>>950まだ?
0048デフォルトの名無しさんNGNG
TcpClientでtelnetもどきをつくろうとしているんだが、
鯖へメッセージ送信は自分の好きなときにできるからよいとして、
鯖からの受信処理はどうやったらいいの?
0049デフォルトの名無しさんNGNG
selectかノンブロッキングか非同期でやる
0050デフォルトの名無しさんNGNG
スレッド分けといた方がいいよ
0051デフォルトの名無しさんNGNG
受信したときにイベントでもあると分かりやすいんだけどなあ。
whileなんかでsleepさせながらずっとまわしたりすればいいの?
0052デフォルトの名無しさんNGNG
WSARecvFrom()を使って、オーバーラップドI.Oで非同期処理をしたいのですが
完了時に指定した関数を呼び出すオプション使った場合
その呼び出されたオプションの引数に、WSABuffを指定したり出来ませんか?
その関数内で、受信内容を処理したいのですが・・・・
0053デフォルトの名無しさんNGNG
>>51
select系でいいんじゃない?
telnet擬きという事だから、
入力とサーバからの出力をselectだよ。
0054デフォルトの名無しさんNGNG
受信に対する応答を早くしたい場合って
コールバック出来た方が有難いのですが…
0055デフォルトの名無しさんNGNG
気にするな。
0056デフォルトの名無しさんNGNG
>>54
だから非同期系のAPI使うかスレッドでやれっつうの
0057デフォルトの名無しさんNGNG
>>48
.NET Framework の TcpClient なら、BeginRead 使えばイイデソ。
0058デフォルトの名無しさんNGNG
mmsプロトコル教えて!
頼む!
0059デフォルトの名無しさんNGNG
>>58
FAXのプロトコルの事か?
0060デフォルトの名無しさんNGNG
メディアプレイヤーのです
0061デフォルトの名無しさんNGNG
>>58
http://get.to/sdp
http://geocities.com/majormms/
0062デフォルトの名無しさんNGNG
URLを入力すると、ファイルをダウンロードするプログラムを作りたいのですが、
当方ネットワークの知識があまりありません。
まず何から勉強すればよいでしょうか?
0063デフォルトの名無しさんNGNG
言語はなんだ
0064デフォルトの名無しさんNGNG
一応、VC++の予定です
0065デフォルトの名無しさんNGNG
wgetのソース読め
0066デフォルトの名無しさんNGNG
>>62
インターネット・ネットワーク全般の知識を書籍で身に着けろ。
HTTPのダウンロードにはWinInet使え。
0067デフォルトの名無しさんNGNG
>>62
socket
0068デフォルトの名無しさんNGNG
>>62
知識が無いなら得ればいい。
HTTPのRFCも読んでおきましょう。
0069デフォルトの名無しさんNGNG
>>65,67,68
あほ
0070デフォルトの名無しさんNGNG
>>69
おいおい、66が抜けてるぞ
0071デフォルトの名無しさんNGNG
69=66
0072デフォルトの名無しさんNGNG
69=66=あほ
0073デフォルトの名無しさんNGNG
またお前らか
0074デフォルトの名無しさんNGNG
だから VC++ は言語じゃねぇっつの
0075デフォルトの名無しさんNGNG
>>62
これでオシマイ。
#include <windows.h>
#include <Urlmon.h>

int main(int argc, char* argv[])
{
 URLDownloadToFile(
  NULL,
  argv[0],
  argv[1],
  0,
  NULL);
 return 0;
}
0076デフォルトの名無しさんNGNG
>>74
「VC++はC++と互換性はあるけど別の言語なのだ!」
というのが正しい解釈だと、漏れは最近思っている。
常用してる人って、非標準のキーワードとか好んで使うし...。
0077デフォルトの名無しさんNGNG
久しぶりスレみたらなんか実用的な情報が減ってるな
0078デフォルトの名無しさんNGNG
WindowsのLANなんかで、
IP固定のマシン(非Win)を接続したいとき、
既にIPが使われててイーサネットに入れない、
ということを検知する方法はありますか?
0079デフォルトの名無しさんNGNG
>>78
つーかイーサには入れっぺ?
0080デフォルトの名無しさんNGNG
>>78
・別のマシンからそのIPにpingを打つ
・DHCPでMACアドレスを指定して固定IPを割り当てる
0081デフォルトの名無しさんNGNG
Windowsならほっといても,「IP被ってるぞ」のダイアログ出てくる。
0082デフォルトの名無しさんNGNG
なんか面白いP2P作りたいんだけどアイデアない?
0083デフォルトの名無しさんNGNG
Winnyメンテしろ
0084デフォルトの名無しさんNGNG
>>83
ファイル交換以外がいい
0085デフォルトの名無しさんNGNG
>>82
P2Pプロキシ。
基本は多段プロキシだが
プロキシサーバーのリストをP2Pで交換。
0086デフォルトの名無しさんNGNG
ああ、そのリストを貰って自宅のblogサーバの拒否リストにしたいよ。
0087デフォルトの名無しさんNGNG
2chにいくつでもスレ立てられるP2Pとかどうだろ
1000ノード以上あつまれば誰でも立てられる
008887NGNG
あ・・全員違うプロバイダじゃないといけないから無理か・・・
0089デフォルトの名無しさんNGNG
スレ違いだあほ
0090デフォルトの名無しさんNGNG
ADSI経由のLDAPアクセスで全属性を検索する方法をご存知の方おられましたら教えてください。
現状結果としてはADsPathしか返ってきません
0091デフォルトの名無しさんNGNG
これだけのコードなのですが、デバッガで実行すると AccessViolation が起きます。
WSADATA wsad;
WSAStartup( 0x0101, &wsad );
gethostbyname( "name" );
inet_addr( "name" );
何が悪いのでしょうか。
0092デフォルトの名無しさんNGNG
WSAStartupの戻り値をチェックしてみたら
0093デフォルトの名無しさんNGNG
返値は以下のようでした。
デバッガで実行したときのみ例外が発生します。
普通に実行した場合には例外は発生しないようです。
環境は WinXP, VC++ です。
どこが悪いのか本当に全く分かりません。
どなたか宜しくお願いします。

<ソースコード>
#include <windows.h>
#include <stdio.h>
int main( void )
{
WSADATA wsad;
int result = WSAStartup( 0x0101, &wsad );
printf( "%04x, %04x, %04x\n", result, wsad.wVersion, wsad.wHighVersion );
gethostbyname( "name" ); // Access Violation
return 0;
}

<出力結果>
0000, 0101 0202
0094デフォルトの名無しさんNGNG
gethostbyname の仕様嫁
0095デフォルトの名無しさんNGNG
以下のページを参考にしているのですが、原因となりそうな部分が見つかりません。
このページに書かれている Example Code も、やはり同じように Access Violation を起こすようです。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/gethostbyname_2.asp
0096デフォルトの名無しさんNGNG
>>95
SP6あてて新規プロジェクトでやっても駄目なら環境が腐ってる
0097デフォルトの名無しさんNGNG
なんだっけ。
hostsファイルがおかしいとwsock32.dllだかで落ちるとかどっかで
見たような。
0098デフォルトの名無しさんNGNG
>>97
前スレ
0099デフォルトの名無しさんNGNG
これか。コピペしとこう。

From: [664] デフォルトの名無しさん <>
Date: 04/06/15 21:18

プログラムと直接関係なくてすまないんだが、Windows XP の hosts ファイルに
ホスト名の重複した 3 つのエントリ (上下 2 つは同一の IP アドレス) を記述
した場合、そのホスト名へのアクセスでブラウザやら ping やらが以上終了する
見たいなんだけど、もまいらのマシンもそう?

192.168.1.1 aaa
192.168.1.2 aaa
192.168.1.1 aaa

上記の順で書いた時 ping aaa や http://aaa/ へのアクセスでプロセスが異常
終了するみたい。まぁそもそも同一ホスト名に別アドレス割り当てる事自体
イレギュラーなんだけどね。http://support.microsoft.com/default.aspx?scid=kb;ja;177075
動作は未定義って事なんだろうけど、プロセス異常終了とは…


From: [672] デフォルトの名無しさん <sage>
Date: 04/06/16 11:59

>>664
winsock が msvcrt の wcslen に NULL 渡して落ちてるね・・・
お粗末だなー

0100デフォルトの名無しさんNGNG
お粗末て失礼な!
仕様だよ…
0101デフォルトの名無しさんNGNG
今時hostsファイルなんて使ってる奴がDQN
0102デフォルトの名無しさんNGNG
CAsyncSocketを使っているのですが
自分と接続先のIPアドレスとポート番号を取得するにはどうすればいいのでしょうか?
0103デフォルトの名無しさんNGNG
>>101
いや、最新のスパイウェアの中には hosts ファイルを勝手に書き換えるものもある、
って前スレに出てたぞ(w

もうちょっと真面目な話だと、SSL-VPN製品の中にはアプリケーションからのトンネリング
アクセスをシームレスにするため、 hosts ファイルを書き換えるものもあるらしい。
0104デフォルトの名無しさんNGNG
>>103
スパイウェアがDQNじゃないとでも?
0105デフォルトの名無しさんNGNG
話が食い違っていることにはたして>>104は気がつくであろうか?
0106デフォルトの名無しさんNGNG
DQNには無理ぽ
0107デフォルトの名無しさんNGNG
>>103
DQNだ
0108デフォルトの名無しさんNGNG
>>102
どっかでもう答え書いたぞ。mfcスレだったかな…
なんか気分悪いな。もうmfc使う奴は相手しないことにする。
0109デフォルトの名無しさんNGNG
WinsockLSPのドキュメントとか解説本とかってありませんか?
ぐぐってみても国内には皆無だし、
海外でもスパイウェア(?)系のサイトばっかり引っかかってなんだかさっぱりです。
0110デフォルトの名無しさんNGNG
age
0111デフォルトの名無しさんNGNG
httpのレスポンスヘッダとボディはどうやって区別すればいいですか?
受信したものを丸々ファイルに書き込むとヘッダも入ってしまうので
0112デフォルトの名無しさんNGNG
ヘッダ
空行
ボディ
0113デフォルトの名無しさんNGNG
空行で区切られてるじゃん
0114デフォルトの名無しさんNGNG
はい、解りました。
有難う御座います。
0115デフォルトの名無しさんNGNG
ダサイよな
0116デフォルトの名無しさんNGNG
夏だな
0117デフォルトの名無しさんNGNG
ファイルを手軽に渡せるソフトを書いているのですが、
どちらかがファイアーウォールの外に居なければTCP接続が出来ず、
送受信ができません。
例えばKazaa技術を使った今流行のP2P電話「Skype」はポート空けなどの
作業を一切しなくても、インストール後即座にP2P電話機能が使えます。
これはどのような技術を使っているのでしょうか。ファイアーウォールの
内側どうしから、ファイルを送受信するということは可能なのでしょうか?
参考になるような情報がありましたら教えて頂ければと思います。
0118デフォルトの名無しさんNGNG
質問です。宜しくお願いします。

WinXP + VCでネットワーク送受信量を取得するプログラムを組んでいるんですけど
自分で取得した値を他のネットワーク監視ソフトや、WinXPのネットワーク状態確認などの値と比べると微妙に違ってしまってます。

自分で組んだプログラムは以下みたいな感じです。

PMIB_IFTABLE piftable;
DWORD size;
DWORD index = 0;

GetIfTable(NULL, &size, FALSE);
piftable = (PMIB_IFTABLE)malloc(size);
GetIfTable(piftable, &size, FALSE);

//dwOutOtetsの値が他のアプリなどの値と微妙に違いが出てしまう
//取得するtableのindexは間違っていない
printf("%u\n", piftable->table[index].dwOutOctets);

free(piftable);
0119デフォルトの名無しさんNGNG
>>117
http://itpro.nikkeibp.co.jp/free/NBY/NEWS/20040713/1/
0120デフォルトの名無しさんNGNG
gnutellaとよく似てる
0121デフォルトの名無しさんNGNG
>>119

なるほど。グローバルIPを持つネットワークにサーバが立てられるマシンを
仲介してデータ転送を行うのですね。大変参考になりました。
仲介マシンの選別などが少し大変そうですが、さっそく開発に
取り組んでいきます。ありがとうございました。m(__
0122デフォルトの名無しさんNGNG
>>118
よくわからんけど、値の丸め方とか、サンプリングレートとかの違いでわ?
0123118NGNG
>>122
118で書いた「dwOutOctets」は「dwInOctets」の間違いでした…
でもこれが原因じゃないです。
実際のコードは正しいく「dwInOctets」してます。

>よくわからんけど、値の丸め方とか、サンプリングレートとかの違いでわ
とりあえず、バイト単位で一切丸めずに表示しても違いがでます。
しばらく送受信を行わない状態で、最新の情報を取得し続けても、やはり違いがでます。

以下取得した送受信量の値の例。
取得した値   :742069 byte
XPの状態確認の値:730697 byte

ちなみに総送信量の値も違いがでます…
まったく自分と同じ方法で取得していると思われるアプリでは
値の誤差がなく、きっちり自分と同じバイト数になってるんですが…
0124デフォルトの名無しさんNGNG
>>118
> 他のネットワーク監視ソフト

こりゃSNMP使ってんでしょ。
最新の情報取得すれば値変わるよね?
# そのインターフェース使っている場合は。
0125118NGNG
>>124
レスをありがとうございます。

>こりゃSNMP使ってんでしょ。
>最新の情報取得すれば値変わるよね?
SNMPですか… もっと厳密に情報を取得する方法があるのでしょうか?
>>123で取得した値の、11372byte差というのは何なのでしょうか?
0126デフォルトの名無しさんNGNG
SNMPとMIBでぐぐれ。

0127118NGNG
>>126
分かりました。あとは自分で調べてみます。
ありがとうございました。
0128デフォルトの名無しさんNGNG
>>123
"In"なら何もしなくても常にbroadcast packetとか受け取ってるでしょ。

完全に同じタイミングで値取得しているという風に確信しているみたいだけど、
そんなわけないでしょ。
0129118NGNG
>>128
今気付いたんですが、自分が取得した値と違うと思っていたアプリの一つは
どうやら B→KB→MBの変換時に値を切り上げていた為、自分のプログラムでの値と誤差があったようです…
自分のプログラムでも、表示桁を同じにして、値を切り上げたらまったく同じ値になりました。

でも、相変わらず、OSの状態確認での値とは誤差が生じてます…
この辺の誤差は、それぞれのプログラムからの値の取得方法の違いというより
取得タイミングのタイムラグ的な物の影響なんでしょうか?
0130デフォルトの名無しさんNGNG
とりあえずetherealで受けているpacketの様子を調べろ。
http://www.ethereal.com/
0131デフォルトの名無しさんNGNG
>>129
 「OSの状態確認」って、具体的にどういう操作ででてくるやつですか?
netstat /e で出てくるのは、IP パケットだけの統計なのでインタフェイスの
総送受信バイトとは異なってきますし、ネットワーク接続のアイコンから
「状態」で開いたウィンドウに出てくる値は、TCP/UDP しか数えていない
ような感じですが・・・
0132118NGNG
>>130
ツールのリンクどうも。
しかし、パケット内部のヘッダ情報とか、ネットワーク関係の知識が乏しいもんで
まだ、このツールは使えなさそうです…

>>131
あ〜 そうですか。なるほど。
とりあえず、インタフェースごとの情報が取得できればいいので
自分の方法で問題なさそうですね。

しかし、ネットワーク関係のプログラムは難しいですね…
もっと専門書とか、それ関係の文献を読んで勉強しないといけないと思いました…
0133デフォルトの名無しさんNGNG
age
0134デフォルトの名無しさんNGNG
Httpで、Transfer-Encodingフィールドが存在しない、又は無効な場合は
Content-Lengthの数値は「絶対に」信用できるものなのでしょうか?
0135デフォルトの名無しさんNGNG
途中で切断されるような事態は想定してないの?
他にも、ソフトのバグとか。
0136デフォルトの名無しさんNGNG
世の中に絶対はありません
0137デフォルトの名無しさんNGNG
>>136
それは絶対に正しいですか?
0138デフォルトの名無しさんNGNG
うん
0139デフォルトの名無しさんNGNG
>>138
クレタ人ハケーン

出来るかどうかというよりも、してはいけません。
信用しちゃうと糞アプリの出来上がりです。
0140デフォルトの名無しさんNGNG
( ゚д゚)ポカーン
0141デフォルトの名無しさんNGNG
つい最近の話,apacheにContent-Lengthの値を信用していたがため
のSecurityHoleがありました。

二ノ舞にならないよう気をつけましょう。
0142デフォルトの名無しさんNGNG
あんなのあくまで参考値ですよ、偉い人にはそれがワカランのです。
0143デフォルトの名無しさんNGNG
おまいそんな事言ってるとContent-Length分正しいデータ送った後に
ゴミデータ送るよ。
0144デフォルトの名無しさんNGNG
>>143
かなり恥ずかしい解釈だな。
Content-Lengthを信用しない場合でも,そういうアホ挙動には繋がらない。
0145デフォルトの名無しさんNGNG
>>135
途中で切断されたり、バグで止まるのなら全然構わないのです。
問題はContent-Lengthを過ぎても、まだボディが転送されてくる
ケースなのです。
もしそんなケースがあったら怖くて怖くて。。。。
0146デフォルトの名無しさんNGNG
別に送られてきたら切断すりゃいいんじゃないの?
または許容できる範囲まで受信してもいいし。
まあつまり信用しようとしまいと手抜きはいかん。
0147デフォルトの名無しさんNGNG
>>145
あるに決まってるじゃん。
そうやってバッファオーバーフローさせてroot取るのは
クラッカーのよく使う手だろ。
0148デフォルトの名無しさんNGNG
>>145
起こりうる内容がわかってるなら,とっとと対処しろ。
お前は,指くわえて見てるだけの間抜けなのか?
0149デフォルトの名無しさんNGNG
指くわえずに、み〜て〜る〜だ〜け〜。
0150デフォルトの名無しさんNGNG
違うのです。
僕が恐れてるのは、Content-Lengthを信用して基準にすると
実ボディを取りのがす危険性があり、かと言ってデータ転送を
信用して基準にすると無駄or別データを得てしまう恐れがあると
いう事なのです。オーバーフローは簡単に対処できるのですが。。。
データ量を一バイトも違わずに正確に取得するには一体どうすれば
いいのか。。。? 皆さんはどうしてるのか、それを聞きたいのです。
0151デフォルトの名無しさんNGNG
> 皆さんはどうしてるのか、それを聞きたいのです。
勘
0152デフォルトの名無しさんNGNG
>>150
んと、自分はContent-Lengthつけて無かったです。
早速つけたいと思います。
よろしくお願いします。
0153デフォルトの名無しさんNGNG
>>150
回線速度に応じてローカルのHDD食いつぶすって程度の危険性なら特に対応しないな。
本気で対応するならSSLでサイトの正当性を証明すればいいんじゃないの。
0154デフォルトの名無しさんNGNG
Content-Lengthだけ受け取ったらあとは捨てる
間違ったContent-Lengthを吐く方が悪い
0155デフォルトの名無しさんNGNG
>>150
確かに「勘」かもな。ここでは「経験」と同義語としていい。
心配ならとりあえず、Content-Lengthから+αまでをOKにすると制限を
設けるとか、ボディの内容をチェックするとかだろうね。
とりあえずは、Content-Lengthをオーバーするパターンが何かを統計し
解析することだね。
そのボディが必須なら対応するべきだろうし、全部不必要なのかもしれ
ない。今の質問ではそこまでは答えられないから、経験を積んで勘が
働くようにするしかない。
0156デフォルトの名無しさんNGNG
どうもありがとうございました。
0157デフォルトの名無しさんNGNG
>>155
>Content-Lengthから+αまでをOKにすると制限を
>設けるとか
そういう高級な判断はろくな結果にならないと思うが。
Content-Lengthを全面的に信用するか
まったく信用せずにプログレスバーの進捗表示程度にのみ使うかのどっちかだと思うよ。
0158デフォルトの名無しさんNGNG
wget にはこんなオプションがあるよ。

`--ignore-length'
Unfortunately, some HTTP servers (CGI programs, to be more
precise) send out bogus `Content-Length' headers, which makes Wget
go wild, as it thinks not all the document was retrieved. You can
spot this syndrome if Wget retries getting the same document again
and again, each time claiming that the (otherwise normal)
connection has closed on the very same byte.

With this option, Wget will ignore the `Content-Length' header--as
if it never existed.
0159デフォルトの名無しさんNGNG
ネットワークアプリケーションにおける暗号化について質問があります
C++による、ゲームプログラミングなのですが升対策に暗号化を導入することにしました
公開鍵暗号方式の後、共通鍵暗号方式に移行するという、常套手段をとりたいと思っています
C++で、手軽に利用できてそれなりの強度を保てる、おすすめの暗号化ライブラリ等を教えてください
Crypto++は一応、みてみたのですが、オーバースペックな印象を受けてます
というより、あのライブラリ、リンクしたら相当でかくならないか、という理由で避けています
Nyの暗号化部分も見たのですが、RSAで大きさも手ごろ、しかし出所不明で・・
よろしくお願いします。
0160159NGNG
すいません、>>159に補足です。
タダで使えるライブラリの方向でお願いします・・・
0161デフォルトの名無しさんNGNG
軽さ優先ならblowfishじゃないの。
0162デフォルトの名無しさんNGNG
>>157
んなアフォな…

< Content-Lengthを一つの基準とする

という立場があるのみでしょ。
どういう基準を採用するかは、用途によるね。

例えば「越えても送ってくるようなら接続を切り、データは捨てる」とかね。

・取得したデータ
・これから取得出来るデータ
・接続
などの軸があるわけで、それぞれでどうすべきかはアプリによる。

0163159NGNG
>>161
使いやすそうですね、ありがとうございます
共通鍵の方は、これでいこうと思います
0164デフォルトの名無しさんNGNG
>>159
openssl使いなよ。
小さくしたいなら必要な奴だけリンクすればいいし。
0165デフォルトの名無しさんNGNG
>>162
そんな曖昧論はどうでもいいから反例を一つあげてくれ
0166159NGNG
>>164
ありがとうございます
OpenSSLの名前は知っていましたが、実質的な事は何も知りませんでした・・・
ライブラリとして、かなり広く利用されてるみたいですね
しかも、Apacheライセンスってことで、手頃な感じがします
使ってみます
0167デフォルトの名無しさんNGNG
>>165
HTTPはContent-Type:の型付きだから、
データ型によってはデータ見れば終りがどこか分かるでしょ。
いくらなんでもあまり長いようなら辞めたりね。

これはContent-Length:を全面的に信頼している、
プログレスメータ程度に使っている、の「どちらでもない」よね。
言われないと分からないの?
0168デフォルトの名無しさんNGNG
↑HTMLやTextでは無理ジャン
0169デフォルトの名無しさんNGNG
>>167
なんかそもそもの150の要求を満たしてないし+αも統計も出てこないのね。
ま、157の反例であることは認めるよ。
0170デフォルトの名無しさんNGNG
>>168
HTMLは可能じゃん?
<HTML></HTML>がない場合はダメだけど。
0171デフォルトの名無しさんNGNG
>>169
俺155だけど155しか書いてなんで、それ以降は別の人だよ。
俺自身は特に反論ないし、質問者にヒントを与えられればそれで
いいと思ってます。
とゆーことで、俺はROMってます。
0172デフォルトの名無しさんNGNG
>>167
もし、Content-Encodingフィールドにgzipやdeflateが存在したら。。。
ああ。。。
0173デフォルトの名無しさんNGNG
>>155 って何かの役に立ってる意見とは思えないけど
0174デフォルトの名無しさんNGNG
サイズ詐称なんて例外処理の範疇だろ
無理やり処理を通そうとするべきじゃない。
サイズが違うと判明した時点でアボーンだろ。
0175デフォルトの名無しさんNGNG
基本はその通りだが、wgetみたいなoptionも悪くない。
0176159NGNG
>>159 経過報告です
共通鍵暗号に関しては、OpenSSLで問題なさそうです

ttp://www.02.246.ne.jp/~torutk/cxx/openssl/install.html
ソースからの構築について、詳しい解説がありました

ttp://www.gnu.org/licenses/license-list.ja.html
ライセンスに関して、GPLとは矛盾するという事らしいですが、
基本的には、Apacheライセンスのような、使用していることを明示するといった感じの使用条件になっているようです

lib/dllに含めるアルゴリズムの選択は、ちょっとわかりませんでした
いちおう、コマンドラインオプションでそれらしいのはあるんですが、
Configureで指定するのか、Make実行時に指定するのか、不明です
Configureとか、数回しか触れたことがないので、あまりいじるのは避けようと思います
ズバリ解説してるサイトが無いか、もうちょっと調べて見ることにします
0177デフォルトの名無しさんNGNG
ネットワークプログラミングの勉強しようと思うんですが、
・winsockから入ってUNIXに行く
・UNIXから入ってwinsockに行く
どっちがいいですかね?
0178デフォルトの名無しさんNGNG
いみふめ
最終的に何がしたいんだよ。

字面どおりの質問に答えるならはっきりいってどっちでもいい。
慣れてるプラットフォームで先に覚えろ。
0179デフォルトの名無しさんNGNG
>>176
$ ./Configure no-要らない暗号の名前1 no-要らない暗号の名前2 ...
だよ。けどそんなことは後でいいからdefaultでlibraryつくって、
client認証の方法とか、秘密鍵の置き方とか調べたら?
SSLのモデルについても学ぶ必要があるし。

$ openssl s_client -connect どこかのサーバ:https

やってみたりね。
0180デフォルトの名無しさんNGNG
>>176
OpenSSLってconfigureとかしなくてもアルゴリズム単位でディレクトリが分かれてて
個別にmake出来たような気がするけど(うろおぼえ)。

あと公開鍵暗号って共通鍵の交換だけ?
だったらRSA使わなくてもDiffie-Hellmanで十分じゃないの。
0181159NGNG
>>179
ありがとうございます
Defaultでのライブラリ作成は、試行としてやりました
結果、1M程度と200kb程度のdll/libが生成されました
OpenSSHなら、ssh -l hoge servとかMeadowからよく利用するんですが、opensslは利用したことがないです
覗いてみます

>>180
ありがとございます
確かに、openssl\cryptoの方で、個別にmakeできそうな感じです
試してみます
>あと公開鍵暗号って共通鍵の交換だけ?
はい。
解説サイトを見た限り、DHでも充分そうです
RSAとDH、実際に試してみて、どちらかきめようと思います
ttp://dev.ariel-networks.com/modules/xfsection/article.php?articleid=15
ttp://www.pc-view.net/Network/030708/page2.html
0182デフォルトの名無しさんNGNG
>>181
DHはそれ単体だとMITM(中間者攻撃)に弱いんで注意すべし。
0183159NGNG
>>182
回避法、調べてみます
ありがとうございます
0184デフォルトの名無しさんNGNG
サーバにユーザーのパスワードが保存してあるなら
それキーに暗号化して共通鍵を交換するとか。
って何のスレなんだここは。
0185デフォルトの名無しさんNGNG
>>181
opensslが、Secure Socket Layerを提供してくれることは理解してるの?
接続、暗号方式のネゴ辺りを全部やってくれるよ。
0186デフォルトの名無しさんNGNG
JAVAのSocketでHttp通信プログラムを作ってるのですが
HTMLソースを読みこんで解釈して、次はその中に記述されてる
リソースURLにアクセスすると、200以外のコードが返ってきて
アクセスできなくなる事が、稀にあります。
しかし、プログラムを再起動して初めからいきなりその
リソースURLを読み込むと成功するのです。
下層Socketの使い回しが原因なのかと思って、一アクセスごとに
Socketを作り直し、常にConnection: closeにして、さらに試験的に
一アクセスごとに数秒待機するようにしても、HTMLソースを読み込んだ次だと
アクセスが失敗してしまうのです。プログラムを再起動して初めから
そのリソースURLを指定すると普通に読み込めるのにです。
リクエストラインとリクエストヘッダは全く同じ文章を送っています。
Referも正確に記述してますし、UserAgentを初めとする各ヘッダも
ある標準の製品ブラウザと全く同じ文章を送っています。
それなのに起動後、同ホストに1回目と2回目のアクセスでは
リソースURL成功の結果が違うのです。
どうか対処法を教えてくださいませ。
0187デフォルトの名無しさんNGNG
何はともあれレスポンスコードを書け。
0188159NGNG
>>184
そうですね
念のため、最初のうちは、接続元IP+ユーザーIDとかでやろうと思います
暗号の扱い間違えて、パスが流れたりしたらアレですし
ありがとうございます
>>185
理解してません...orz
調べてみます
openssl\include\openssl\bio.h辺りでしょうか
これは・・・ 扱いが、難しそうですね・・・
ありがとうございます
0189デフォルトの名無しさんNGNG
>>188
いや読むんならapps/s_client.c, apps/s_server.c辺りからでしょ。
http://www.infoscience.co.jp/technical/openssl/docs/もね。

前半に書いてあるようなことはopensslに任せば?

0190デフォルトの名無しさんNGNG
>>187
よく出るのが302、次に503、そして404です。
0191デフォルトの名無しさんNGNG
それって、単に鯖側の都合な気がするが。

JavaのSocketの実装は知らないけど、初回は必ず成功するっていうのなら
鯖で同時接続数の制限をしていて
前回のコネクションがまだ生きている時に失敗するのかもね。
0192デフォルトの名無しさんNGNG
302 Moved Temporarily
503 Service Unavailable
404 Not Found

お前クッキーの扱い失敗してない?
0193デフォルトの名無しさんNGNG
いや、レスポンスにSet-Cookieは、いずれも無いのです。
0194デフォルトの名無しさんNGNG
リクエスト-レスポンスのキャプチャをとって、
OKとNGの時の比較をしてみた?
0195デフォルトの名無しさんNGNG
>>193
「いずれ」の意味がわからんが、エラーの前のレスポンスにもないの?
普通503は時間おいて再試行だわな。
0196デフォルトの名無しさんNGNG
失敗したサイトは今の所3つなのですが、その3つとも
レスポンスヘッダにはSet-Cookieが無いのです。
リクエストはOK時(プログラム起動後、最初のリクエスト)
とNG時は、全く同じ文字列を送っています。
レスポンスは当然違いますが。。。
0197デフォルトの名無しさんNGNG
とりあえず302と503を適切に処理しなよ。
意味はRFCで調べて。日本語版もあるよ。
0198デフォルトの名無しさんNGNG
質問です。
WSASendTo()関数で
WSABUF構造体のポインタを指定して、その内容を送信する形になってるんですけど。
WSABUF構造体の中はconstになってるんで、その内容を書きかえれないんですよ。
どうやって、任意の文字列をバッファへ指定して送れるんでしょうか?
0199デフォルトの名無しさんNGNG
>>198
constが、どこを書き換えなくしているのか読もう!
0200デフォルトの名無しさんNGNG
age
0201デフォルトの名無しさんNGNG
IDとパスワードを入力させる画面を表示して
これをRADIUSサーバに認証しにいく
RADIUSクライアントを作ろうと思ってるんですが、
Perlで作れるのでしょうか?

Perl以外でも何か参考になるサイトがあれば
教えてください。
よろしくお願いします。
0202デフォルトの名無しさんNGNG
たらいまわしの悪寒
0203デフォルトの名無しさんNGNG
Perlでも作れます
0204201NGNG
>>203
レスありがとうございます。
何か参考になるサイトや書籍ご存じないですか?
ググるキーワードだけでもいいんで、ご教授願います。
ずっと探してるんですが、なかなか無くて。
お願いします。
0205デフォルトの名無しさんNGNG
Authen::PAM
0206デフォルトの名無しさんNGNG
age
0207デフォルトの名無しさんNGNG
ありがとうございます。
ちょっと光が見えてきました。

ちなみにAuthen::PAMのようなモジュールが
C言語にもありますか?
ID、パスの入力はコマンドラインから叩くものとしてですけど。
ちょっと調べてみますが、
ご存知でしたらご教授くださいませ。

よろしくお願いします。


0208デフォルトの名無しさんNGNG
libpam
0209デフォルトの名無しさんNGNG
dhcpdサーバ(Windows)に問い合わせて、
予約されてるIPや現に今使われてるIPを知ることなんか出来ますか?

やりたいのは、機器(PCに限らない)をLANに繋ぎたいとき、
既にLAN内にIPが使用されてるかどうか調べてたいのです。
0210デフォルトの名無しさんNGNG
>>209
DHCPに割り当ててもらえばいいのに。
0211デフォルトの名無しさんNGNG
>>210
現場に空きIPを用意して貰って機器を繋いでます。
が、なかなかPCから機器を認識出来ず、設定を色々変えてる内に機器がLANに入れる、
みたいなことが起こって困ってます。

原因が分かってなくて困っているんですが、
機器をLANに繋いで少しの間寝かせるとLANに認識される、
なんて馬鹿なことないですよねぇ。

そういう場合のトラブル原因を見つけるツールでもあればなぁ...
0212デフォルトの名無しさんNGNG
>>211
お前、板違いな。

> 機器がLANに入れる(略)LANに認識される

勉強も足りない。
0213デフォルトの名無しさんNGNG
>>211
寧ろ、繋いですぐ認識される方が「バカハブ」。
0214デフォルトの名無しさんNGNG
>>213
詳しく教えて下さい。書くのが面倒ならsiteのアドレスでもお願いします。
0215デフォルトの名無しさんNGNG
サイトのアドレス書くのも面倒だよ。板違いの質問に、なんでそこまでせにゃ
ならんわけ?自分で調べろ、タコ。
0216デフォルトの名無しさんNGNG
nmapとかのポートスキャンツールには、
IPの範囲を指定して、どのIPが空いているかを
調べるオプションが有ると思うが。
0217デフォルトの名無しさんNGNG
サンクス>>216
nmapNTを試してますがポートスキャン出来るなら繋がってるのが機器かどうか判別できますね。
PCであればHostNameを取得するだけで事足りそうですけど。
(実は”ICMP only”とか”WINDOWS Interface enumeration:”とエラー出まくりではまってますが)


「バカハブ」の方は良く分かりません。
馬鹿ハブかと思ったらそうでなくてそういう種類なんですね。
一般的に、LANに繋げてどれくらい待てば認識されるのか、が知りたいです。
0218デフォルトの名無しさんNGNG
認識されるというのは、誰に認識されるっちうことなんだあ!
0219217NGNG
>>218
Windows PCからです。
0220デフォルトの名無しさんNGNG
>>209
DHCP 導入してるんだったら、
1. WinXPのPCをLANにつなぐ
2. ネットワークの状態/サポート/詳細でアドレスとリースの有効期限を調べる
3. ノートPCをLANから外して、間違えて再度つながないように片付けておく
4. リースの有効期限が来るまで、存分に2で調べたアドレスを使用する
っていう方法の方が良いと思う。
プログラム書く話じゃないなら、板違いなのでもう来ないで欲しい。
0221217NGNG
>Windows PCからです。
説明足りませんでした。
機器の設定が、Windows PCのIE(等のブラウザ)から出来るようになっています。
が、IEに機器のアドレス入れても、機器を繋いだ直後は接続が不安定なんです。
一旦繋がってしまえば問題無いのですが。
0222デフォルトの名無しさんNGNG
>>216
プログラミングに関係ない話は放置しろよ、禿げ!
0223デフォルトの名無しさんNGNG
>>220
放置しろ!
0224217NGNG
説明が足りませんでしたがプログラミングの話です。
PC側ではなくて、機器側に”ITRON+HTTPサーバ”してます。
この不安定を何とかしないといけない状況で...
0225デフォルトの名無しさんNGNG
>>224
自分の IP アドレスで ARP パケットを投げて、
誰も返事してこなかったら OK っていうのが簡単っぽいけど。
0226デフォルトの名無しさんNGNG
>>225
返事くるわけない。arp 投げるのはありかもしれないけど。
誰に投げればいいのかは知らん。
0227デフォルトの名無しさんNGNG
誰に投げればってブロードキャストじゃないの?
0228デフォルトの名無しさんNGNG
DHCPクライアントのドライバ書いてるの?
0229デフォルトの名無しさんNGNG
藻前ら、スレが無駄に進むから情報を小出しにするような香具師は無視しる。
0230デフォルトの名無しさんNGNG
真の教えてクンは、情報を小出しにしなければいけないのですよ。
0231217NGNG
HTTPサーバとDHCPクライアントのライブラリは買ってます。
問題は機器をLANに繋いでもPC側からすぐに機器を見えないことです。

それで考え出した解決策が、
a)機器を接続前にPC側からネット内のIPが空いてることを確認しておく
b)機器を繋いでどれくらい待たせるとPCのブラウザから機器が見えるか理論値を知っておく
c)機器を繋げた後、ポートスキャン等で実態を確認してから、PCのブラウザで繋ぐ処理を行う
です。

ちょっと、違う質問ですが今日色々調べてたところ機器のhostnameが設定したPCのものとなっていました。
hostnameは固有じゃなくてもLAN(TCP/IP)やSMBで問題にならないんでしたっけ?
なんか初歩的致命的なミス設定になってんだろうか。
0232デフォルトの名無しさんNGNG
ちょっと待て。鯖がDHCPからIPを貰っているという理解でいいのか?
するとクライアントのPCはどうやって鯖のIPを知るんだ?
0233デフォルトの名無しさんNGNG
もしかしてIPじゃなくて名前で参照してるとか?
そしたらNETBIOSのブロードキャスト待ちだから最大10分くらいか
0234デフォルトの名無しさんNGNG
>>230
情報小出しって言っても、どこまで影響ある情報かは、その場その場の状況で変わってくる。
はじめの書き込みで全ての情報を期待するのは間違い。

まぁ、それでも明らかに情報不足だってのは放置すべきだけどな。
0235デフォルトの名無しさんNGNG
今回のは明らかに情報不足だよね?
0236デフォルトの名無しさんNGNG
まぁ、基本的に質問してくるやつは、全く問題となってる部分の見当が付かない人がしてくると思われるので
それに関連する情報を出せと言うのは結構難しいのかもしれない。

見当が付くなら、それをキーワードにしてググれば解決だし・・・w
0237デフォルトの名無しさんNGNG
まあ、キーワードを教わってもぐぐらない奴もいるんだけどな。
0238201NGNG
すみません、レス遅くなってしまいました。
>>237
ワタクシのことですよね。。
すみません。

質問した時点では環境or言語問わずだったんですが、
クライアントはwindowsベースになってしまいました。
libpamというモジュールはunix環境で使われるんですよね?
引き続き調べてみます。
0239デフォルトの名無しさんNGNG
>>238
WindowsならActive Directoryでradiusを叩けるよ。
C++やC#を使いなよ。やり方はWin板でね。
0240デフォルトの名無しさんNGNG
>>231
そのITRONな機器へのIPアドレス割り当てをDHCPで動的にやれ。
# 使ってないIPアドレスを割り当てるのはまさにDHCPサーバの仕事だ。
# それを他の方法でやろうとしているのが君がタコなところ。
固定にしたければDHCPサーバの設定でやれ。(MACアドレス登録)

HTTPサーバがなかなか到達可能にならないのは、
お前の書いたコードがタコだからであって、"LAN"の問題ではない。
0241デフォルトの名無しさんNGNG
>>211
>機器をLANに繋いで少しの間寝かせるとLANに認識される、
>なんて馬鹿なことないですよねぇ。

tp://www.rtpro.yamaha.co.jp/RT/FAQ/LAN/connect-hub.html
>[ 高機能なハブを使用する場合の注意事項 ]
>・ポート接続状況の認識にしばらく時間(数10分級)がかかる事が一般的です。
>・MACアドレスのラーニングにしばらく時間がかかる場合があります。
> 5分,10分,20分の感覚で様子を見てみましょう。
0242デフォルトの名無しさんNGNG
>>241
文書古すぎ…
0243デフォルトの名無しさんNGNG
スパニングツリー有効にしていて30秒待たされてるとか
0244デフォルトの名無しさんNGNG
教えてください。
TCPソケットを使ったクライアント、サーバのプログラムについてです。
クライアントとサーバ間のやり取りにつかうデータの大きさはたかだか30バイトなのですが
クライアント側がこれを一度のrecvで読み出すことを仮定して作ってあります。
もしも一度で読めないと通信異常としてしまいます。
(普通は長さをヘッダなどに含めるなどして全て取れるまでrecvを繰り返しますよね?)

このつくりでテストでは問題なかったのですが、
実際どの程度の頻度で問題が発生するのでしょうか。。

運用環境はインターネットなどは介さずLANのみです。
また1分に10回送受信する程度です。

0245デフォルトの名無しさんNGNG
>>244
その作りじゃダメです。頻度の問題じゃないです。
その作りじゃダメです。頻度の問題じゃないです。
その作りじゃダメです。頻度の問題じゃないです。
TCPはバイトストリームです。
TCPはバイトストリームです。
TCPはバイトストリームです。

初心者は理解しにくい(というより抵抗がある)ところなので繰り返してみました。
0246デフォルトの名無しさんNGNG
>>244
接続〜切断までの間の全通信量が30バイトなら、
1フラグメントに納まるから、おそらく問題は出ないに1円賭ける。
0247デフォルトの名無しさんNGNG
>>244
逆にどういう環境で問題が発生するのか訊きたいかも。
0248244NGNG
即レスありがとうございます。
やっぱりそうですよね。。
でも!それでも頻度について気になるんです。
理屈では間違いなのは分っているのですが
実際のテクニックというか、「頻度が低いからあえて無視しても問題なし」みたいな考えが主流とか?
そんなはずないですか?

0249デフォルトの名無しさんNGNG
>>248
実際のトコ、そんなヘンな実装したことも無ければ見たこともないので、
頻度等は分かりません。みんなそうなんじゃない?

理屈上は1フラグメントに納まる量の通信なら、たぶん途中のネットワークでも
OSのプロトコルスタックでも分割されること無く recv まで上がってくると思うけど
(先方の反応を待たずに複数回の send したりはしない、という仮定の下で)。
0250244NGNG
>>246
そうですか。接続〜切断までの間に2〜3回程度の送信/応答の組があります。
やばいかな。
0251デフォルトの名無しさんNGNG
244が本質的に正しい。
頻度が低ければ問題ないようなデータで、ルータ超えないLAN内なら
UDPでもいいのでは?

実際のテクニックとしては「プログラムは正しく書く」です。
0252デフォルトの名無しさんNGNG
確か、「どんなネットワーク機器でも最低576byteのパケットは通さないといけない、とRFCに書いてある」
というのを聞いたような。
実際は、よほど古い機器でない限り1500まで通すだろうし
プロトコルの都合を考えても1400程度は大丈夫な場合が殆どかと。
ただ、Win95のダイヤルアップかなんかが576ってのを聞いたような気もしないでもない。

で、複数回の交信があるなら、分割より結合の心配をした方がいいね。
これもNagleのアルゴリズムを無効にしてごまかすことも出来そうだけど。
(完全に交互に送受信するなら大丈夫かな)
0253244NGNG
>実際のトコ、そんなヘンな実装したことも無ければ見たこともないので
>頻度等は分かりません。みんなそうなんじゃない?
そうですよね。貴重な経験ができそうです。
ちなみに私の作ったところではないので
バグと騒ぐと、実は問題が起きなかった。っていうのもあれなので黙っていよう。

皆さん、ありがとうございました。
0254デフォルトの名無しさんNGNG
>>249
そんな変な実装みんな試しにやってみたことあるんじゃない?
俺は一度も問題出たこと無かった。
1500とかそういう話じゃなくって、バッファの大きさまでは確実に読める
というか、今までは100%読めた。
仕組みは知りません。
で、逆に読めない環境ってどんなものか知りたい。
0255デフォルトの名無しさんNGNG
recvで全部受け取れると仮定したコードは見たことないなあ・・・
0256デフォルトの名無しさんNGNG
実際の挙動は、nagleが有効になってるかどうかでも変わるんじゃないかな。
TCPはデータグラムじゃないんですから、1回のsendの内容が1パケットに
収まって、1回のrecvで受け取れると仮定するのは愚の骨頂です。
よい子は決してそんなことはしないようにね。
0257デフォルトの名無しさんNGNG
TCPの受信バッファが詰まってたかなんかで、変な分割をされた、
という話は聞いたことがあるが。
あとは、telnetでデバッグするとき、やや問題にある程度か。
0258デフォルトの名無しさんNGNG
数百メガ〜数ギガクラスのデータ(isoイメージなど)も
一回のrecvで受信できるのかな。
0259デフォルトの名無しさんNGNG
>>254
こういう事言う人の頭の構造が知りたい。
仮定してはいけないというのが仕様なのに。
0260デフォルトの名無しさんNGNG
>>253
> バグと騒ぐと、実は問題が起きなかった。っていうのもあれなので黙っていよう。

黙るなよ。(「騒ぐ」必要もない)
他人を説得するには知識が必要だ。勉強だと思ってね。
0261デフォルトの名無しさんNGNG
>>258
そういうのも実験してみたいよね。
たぶん上限があるんだろうね。
けど、バッファが用意できないからね。
0262258NGNG
俺は別に実験なんかしたくないけど。

全部一度にrecv出来るなんて仮定は、俺は絶対にしないし、
そんなコード書くつもりもないから。
0263デフォルトの名無しさんNGNG
>>261
MTUをぐぐれ

それから実験の前に仕様だ。
0264デフォルトの名無しさんNGNG
あっそ。
0265デフォルトの名無しさんNGNG
>>263
そこで何故MTUが出てくるんですか?
0266デフォルトの名無しさんNGNG
結局のところ、実験してみたことある乗って俺だけ?
他の人は口だけ?
0267デフォルトの名無しさんNGNG
>>262
そうだよな。

そもそも>>244は、一度のsendで送ったとも書いてないわけだし。
もうアフォかと

>>266
体動かすだけのおバカさんですか。
0268デフォルトの名無しさんNGNG
258と262が同一人物とはおもえん
0269258NGNG
5年ほど前にやったよ。
ちゃんとバラバラだったよ。
0270デフォルトの名無しさんNGNG
おれは1 byteごとにsendしたことがあったが、
まああれだよ、結果はここに書く必要がないよ(w
0271デフォルトの名無しさんNGNG
結論

明らかにMTUサイズより小さいときは、一回で送れると仮定してよい。
いちいちループまわすのは愚の骨頂。

※もし、送れない環境があるなら、教えて欲しい。そんな実装みたことない。
0272デフォルトの名無しさんNGNG
>>271
馬鹿の考え休むに似たり。(イヤそれより悪い)
0273258NGNG
おう、俺はイヤミで>>262を書いただけだからな。

昔試したっていっても、ダイヤルアップの時代に
2chからdatを取ってくるプログラムのデバッグ出力を確認しただけだけどな。

「そういう仕様になっている」
「そういう環境が存在する」
それだけで充分。

「どこぞの誰様の環境では運良く動きました」
なんてのに興味はない。
0274デフォルトの名無しさんNGNG
>>273
荒らしなら出ていってくれ。
0275デフォルトの名無しさんNGNG
とにかく仕様を無視して、
乏しい体験からの帰納法で設計するのは止めてくれ。

TCP/IPはちょっと常識に反するところもあるけど、
自立しステムと違って、分散システムってのはそういうもんなんだよ。
0276デフォルトの名無しさんNGNG
話は変わるけど、お前らってJava厨だったりする?
俺、特別な餌使ってたっけ?
0277デフォルトの名無しさんNGNG
そういうおまえは誰?
0278デフォルトの名無しさんNGNG
>>276
というか、君はカマー本どころか、
「マスタリングTCP/IP」も読んだことないんでしょ。
0279デフォルトの名無しさんNGNG
ギャハー
マスタリングTCP/IPだってw
0280デフォルトの名無しさんNGNG
糞本でもそれ以下の知識しかないよりはましでしょ。
0281デフォルトの名無しさんNGNG
たった数百メガのバッファがとれない言語使ってるらしいし。
0282デフォルトの名無しさんNGNG
数百メガもメモリ取ろうとしたらまともなマルチユーザ環境なら
quotaにひっかかっちゃうよ。
0283デフォルトの名無しさんNGNG
どーしてそこでマルチユーザ環境が出てくるの
0284デフォルトの名無しさんNGNG
どんなに本質に関係ない些細な事柄であっても
何とかしていちゃもんをつけたがる人というのが
世の中には居るんですよ。
0285デフォルトの名無しさんNGNG
ネットワーク使ってるならマルチユーザでしょ普通
0286デフォルトの名無しさんNGNG
普通って何?多数のユーザーが使っている環境の事?
「普通」のWindowsだったらquotaで制限なんてされてないけど。
0287デフォルトの名無しさんNGNG
>>285 が言ってるのは Run Level の事
>>286 は Windows 以外使った事が無い
0288デフォルトの名無しさんNGNG
最近の携帯はマルチユーザー環境らしいです。
0289デフォルトの名無しさんNGNG
どうしてそこでRun Levelが出てくるかね。>>284ということか?
この文脈での「ネットワーク」「マルチユーザ」「普通」の定義をしてくれ。

>>288携帯のほうが多かったね、確かに。
0290デフォルトの名無しさんNGNG
当然、ランレベルを3以上にしてあれば
他人の携帯電話にもログインして使い放題です。
0291デフォルトの名無しさんNGNG
いつものパターンだな。
1. TCP/IP理解してない馬鹿が無知丸出し。
2. 無知を指摘されて逆切れ。
3. 本質に関係ないところで煽り合戦。
4. 馬鹿が粘着居座り。
0292デフォルトの名無しさんNGNG
なんかここ むかしの トダイみたいに
なってきたな・・・・
0293デフォルトの名無しさんNGNG
よく考えてみよう。今更Pentium 60MHz, メモリ32MのPCのことを考慮した
プログラミングなんか、linux環境ですらやらないだろう?

たとえば、メモリアロケータを自作して、フラグメントを防いだ!割り当て
時間を短縮した!なんてことに喜んでも、GHz, GbytesのPCにとっては無意味。
時代錯誤も甚だしい。暇な技術者のオナニーでしかない。

ご存知のように、ネットもブロードバンドが主流になり、ブロードバンド
ルータがスループット100Mbpsを自慢する時代だ。ルータ等の処理速度も
桁違いに上がっている。

こういう時代に合った、ネットワークプログラミングのあり方を考えて
いいんじゃないだろうか?ロートルの言葉に惑わされて、1200bpsの時代の
コーディングを強要され、無駄な時間を費やしていないか?

高々数十バイトの送受信のために、「数バイトずつ送られる環境があるかも
しれないから」などという理由で、繰り返しのコードを書くことは、もしか
したら「時代錯誤の技術者オナニー」なのではないだろうか。

以前は様々な物理層やデータリンク層があったから、そういう事情を考慮
する必要があったのかもしれないが、いまやethernet, IPがほとんどだろう。
数パーセント以下の環境での利用を意識して無駄なコードで埋めるよりも、
生産性を重視したほうが、トータルでは有意義になると考える。
0294デフォルトの名無しさんNGNG
まだ居たのか
0295デフォルトの名無しさんNGNG
繰り返しのコードったってそんなたいそうなものじゃないしな。
ほとんどイディオムと化してるからさらさらと書けるし、何度も
書くのメンドウならサブルーチンにしてもいい。なんでたかが
それくらいのことでぐだぐだいってるんだか...
0296デフォルトの名無しさんNGNG
もういいって。
携帯電話端末がIEEE 802.3かよ
0297デフォルトの名無しさんNGNG
>>293
>よく考えてみよう。今更Pentium 60MHz, メモリ32MのPCのことを考慮した
>プログラミングなんか、linux環境ですらやらないだろう?

「組み込み」という逃げ場所が用意されている。
しかしパイは圧倒的に小さい。前途の暗い、椅子取りゲームだ。
0298デフォルトの名無しさんNGNG
久しぶりに長文書いたら疲れた。寝る。
0299デフォルトの名無しさんNGNG
いやー、インターネットにはPCしか接続されず
しかも日本と欧米以外は繋がっていないとは知らなかった。
0300デフォルトの名無しさんNGNG
?
0301デフォルトの名無しさんNGNG
「動けばいい」の精神はまず間違いなく有害
0302デフォルトの名無しさんNGNG
>>293
> 繰り返しのコードを書くことは、もしか
> したら「時代錯誤の技術者オナニー」なのではないだろうか。

下らない理由付けて、
バイトストリームであることを無視するのは、
「馬鹿な技術者オナニー」
0303デフォルトの名無しさんNGNG
「俺の書いたコードが動かない環境は見たことがない」
「俺の書いたコードが動かない環境は考慮する価値がない」
「俺の書いたコードは俺の環境で動けば満足」

0304デフォルトの名無しさんNGNG
ちと聞きたいんだが、

ネットワークプログラミングというだけで、なぜ、
「狭帯域環境、低処理能力機器」への対応を
「必須」としなければならないのか

これ教えてくれ。そうじゃないと、ボウヤたちが
ヒステリックに叫ぶ理由が分からん。
0305デフォルトの名無しさんNGNG
「ボウヤたち」だって。
必死さがにじみ出て笑っちゃうね。
0306デフォルトの名無しさんNGNG
ていうか普通送受信をバッファリングするレイヤー作らない?
つくらない。あっそう。
0307デフォルトの名無しさんNGNG
はやく寝なさい。
0308デフォルトの名無しさんNGNG
昨晩からずっと居て最初一人だけsageてなかったもんね。
自分が如何に浮いてるか途中で気がついて周りにあわせたみたいだけど、
書き込み内容に賛同してくれる人が全然居ないのに
こっちは周りにあわせずがんばってるね。

悔しくて眠れないんだろうな。
0309デフォルトの名無しさんNGNG
>>304
> 「狭帯域環境、低処理能力機器」への対応を

とは限らないわけだが…

自立システムと違って、広域分散システムでは、
よっぽどの利点がない限り、前提条件を緩くしておく必要がある。
そうしないと将来技術進歩や接続可能性を妨げる可能性があるからだ。

自立→分散で頭の切り替えが必要。
0310デフォルトの名無しさんNGNG
いまさらTCPのコーディングネタなんて興味ないんだけど
>「数バイトずつ送られる環境があるかも
>しれないから」などという理由で、繰り返しのコードを書
かないコーディングをどういうシチュエーション
# 趣味?業務?妄想?、プロジェクトの人数は?コードレビューはやってるの?
でやってるのかってことには少し興味ある。
0311デフォルトの名無しさんNGNG
ファイアウォールが入ってると1バイトずつしか送ってこないことが
普通にあったな
ここだけの話だが対処は「放置した」w
0312デフォルトの名無しさんNGNG
「『仕様です』は魔法の合い言葉」というヤツですな。
0313デフォルトの名無しさんNGNG
SO_NODELAYを指定して、送信側が1バイトずつループして
send()を呼んだりする(そんな奴いないか)とそうなるかも。

それと、MTUって最小値じゃなくて最大値だよね。
携帯のパケット通信は大体1パケット128バイトだし、
細かく送られて来ると思うけど。
0314デフォルトの名無しさんNGNG
「オレのプログラムが2000年以降も使われるわけないから、年は2桁で
いいや」というニオイを感じます。

今のターゲット環境で問題なくても、将来や別の環境でそのコードが使
われる可能性も考えるのがプロ。
0315デフォルトの名無しさんNGNG
俺のプログラムが9999年以降も使われるとは思わなかった。
4桁なら何でもよかった。
今はRFC 2550を読んで反省している。
0316デフォルトの名無しさんNGNG
> 今のターゲット環境で問題なくても、将来や別の環境でそのコードが使
> われる可能性も考えるのがプロ

それは >>293 のいうオナニーなのでは?

もっと論理的な説明はないのかなあ。
0317デフォルトの名無しさんNGNG
仕様に合わせて
0318デフォルトの名無しさんNGNG
自分の言ってることはオナニーじゃなくて論理的だと思ってるらしい
0319デフォルトの名無しさんNGNG
くだらん。
繰り返しのコードを書く必要があるとしてもたかだか一か所
ブロッキングでいいんならfdopen()してgetc()でもfgets()でもfread()
でも使えばいいじゃないか。
fread()は指定したバイト数を読むまでは粘ってくれるぞ、勝手に。
その分select()等との相性は最悪だがな。

無知が吠えてるのってホント見苦しいな。TCP_NODELAYでNagleアルゴリズム
を有効にするかどうかでもTCPの挙動は全く違うんだが、そんなことも
知らないで書いてるだろ。一から勉強し直せよ。
0320デフォルトの名無しさんNGNG
freadってCのライブラリなわけだがそんな挙動は保証されてたっけ?
0321デフォルトの名無しさんNGNG
エラーか eof までは読む
0322デフォルトの名無しさんNGNG
C89なりC99なりでどう記述されてるかはしらん。
ただ、俺の知る限りの実装では、fread()は必要なら何度でもread()を
呼び出してpartial readを避けようとするのが普通だ。
そうじゃないfread()を見たことがあるのなら、教えて欲しい。
0323デフォルトの名無しさんNGNG
>俺の知る限りの実装では
目糞鼻糞
0324デフォルトの名無しさんNGNG
>>323
いや、違うね。叩いた泣き声で判断しているのではなく、
俺はシステムのマニュアルとソースコードで判断している。

多様な環境を考えた場合、C89やC99の記述「だけ」を信頼するのも
それはそれで問題だろう。
0325デフォルトの名無しさんNGNG
fread(3)も返り値を確認しないと。
EINTRやEAGAINで途中で返ることがある。
ferror(f)が真ではあるが、返り値はエラーになるまでに読んだ数。
0326デフォルトの名無しさんNGNG
やっぱり出ました
>俺の知る限りの実装では
>たことがあるのなら、教えて欲しい。
0327デフォルトの名無しさんNGNG
で、普通はfread()のマニュアルには、
partial readが発生するのはEOFに到達したかエラーが発生した場合のみ
である、とだけ書かれている。
システムコール再送等を考慮して何度もread()を呼び出す、といった
点は実装上の詳細に相当するから、普通は「仕様」には現れないんだよ。
そもそもread()がUNIXのシステムコールでしかない、からな。

ちなみにMS Windowsでは無論エミュレーションの_read()が使われているが、
fread()の仕様は同じだよ。
0328デフォルトの名無しさんNGNG
>>325
そりゃ、当たり前だな。
0329デフォルトの名無しさんNGNG
なんだか無知が穴を見つけた気になっていいきになってるようだな。
0330デフォルトの名無しさんNGNG
partial readされない事が保証されている事を確認するためにありとあらゆる実装を調べて回るのと、
partial readされるかもしれない事を年頭に置いてコードを書くの、どっちの方が建設的で低コストなんだろうか。

やっぱり「オレのところでは動いている」なんだろうね。
0331デフォルトの名無しさんNGNG
>>327
たしかに「readを何度も呼び出す」というのは実装の詳細に当たるけど、
「Partial readが起こらない事を保証する」というのは外部仕様になりうる立派な要件だ
ISOの規格書に保証されると書かれていないのなら、それは保証されていないと言う事だから
部分リードが置きうる可能性は常に付きまとうと言う事だ。
0332デフォルトの名無しさんNGNG
>>330
ま、好きにすればよいさ。
以下のコードをfread()に置き換えても行入力モードで動作するんなら、
そのfread()は俺の知っているfread()じゃない、ってことだ。

int main()
{
    char buff[1024];
    int n;
    while ((n = read(0, buff, sizeof buff)) > 0) {
        write(1, buff, n);
    }
    return 0;
}
~
0333デフォルトの名無しさんNGNG
>>331
いや、だから何を以てpartial readと呼ぶか、だ。
システムコール割り込みというUNIX特有でしかもOSによって異なる
問題にまで踏み込めないとすれば、それは「エラー」と記述
するしかないことになる。
0334デフォルトの名無しさんNGNG
まあふつう fread なんか使わないし。
0335デフォルトの名無しさんNGNG
>>334
君、オープンソースのソースコード見たことないでしょ。
移植性に多少なりとも気を使うソフトウェアは
stdioを使うんだよ。無論fread()もね。
0336デフォルトの名無しさんNGNG
> 移植性に多少なりとも気を使う

いや、だからそういうのはオナニーっしょ。
なんでそれを持ち出すかな。
0337デフォルトの名無しさんNGNG
>>336
> まあふつう
とか言っておいてそれか。ようするにあんたの周囲四畳半以外は
普通じゃないわけだな。
0338デフォルトの名無しさんNGNG
>>335 たとえば?
0339デフォルトの名無しさんNGNG
>>336
つまり、
・移植性に気を使う必要がない
・将来OSやNW環境が変わったら動かなくなっても良い

ような場合を想定してるってこと?

LANで通信頻度が低くて帯域も食いつぶしていなければ、UDP パケットも
まずドロップしないけど、こういう場合は 336 は UDP でパケットがドロップ
したら障害が起きるようなプログラムもアリだと思う?
0340デフォルトの名無しさんNGNG
ここはとんだ経験主義者のすくつですね
0341デフォルトの名無しさんNGNG
>>338
おいおい俺にgrep -rをやらせる気か。
ネットワークが絡む著名なソフトで言うと、lynxもwgetもw3mもfread()は
使ってるぞ。
はっきり言って、切りがないぐらいだ。
つまり、そんだけあんたがものを知らないの。
0342デフォルトの名無しさんNGNG
>>339
UDPパケットドロップの話は、またちょっと別の話になると思う。
まあ、話を広げたいなら構わないが。
0343デフォルトの名無しさんNGNG
>>339
>・移植性に気を使う必要がない
>・将来OSやNW環境が変わったら動かなくなっても良い

なんつうか、

・やるかわからない移植
・どんなかわからない未来(何年先?OSはどうなってる?NW環境は?)

のことを、考慮しなければならないことの一つとして
(バカの一つ覚えのように)持ってくる理由はなんですか?

と言ってるんですが。
0344デフォルトの名無しさんNGNG
>>341
wget の fread はネットワークとは関係ない部分で使ってるだけですが。
ソース読んだことあるんですか?
0345デフォルトの名無しさんNGNG
おいおいいつ「ネットワーク絡み」の話に限定したんだよ。
「fread()なんて普通使わない」に対する反論、だぜ
0346デフォルトの名無しさんNGNG
> ネットワークが絡む著名なソフトで言うと、
0347デフォルトの名無しさんNGNG
>>346
矛盾はないだろ。
wgetはネットワークが絡むソフトウェアだ。
0348デフォルトの名無しさんNGNG
すまん、俺がアフォだった。
どんどん低レベルな話に引きずり込まれてるな。

fread()の話はもういいから、元の話に戻してくれ。
0349343NGNG
補足

移植性やら将来への対応が大事なことである人たち、
たとえばオープンソース系のソフトウェアの開発者、
が居るというのは分かります。

ただ、それはそれなりの理由があって大事にしているのであって、
理由を鑑みずに、内輪なプラクティスを「(ネットワーク)プログラミングの常識」
みたいなものに持ち上げ、タテマツルのは勘弁してほしい。
0350デフォルトの名無しさんNGNG
ちなみにwgetがfread()をネットワーク絡みのコードで使わない理由は
カンタンで、ソケットディスクリプタをfdopen()することが
そもそも移植性のない作法だからだ。早い話、Winsockではできないからな。

そんな下らない話、いちいち説明させるなよ。大前提だろ。
0351デフォルトの名無しさんNGNG
>>393
いっとくが、read()はリピートすべきだというのは「内輪なプラクティス」
でもなんでもないぞ。
0352デフォルトの名無しさんNGNG
393 に期待。
0353デフォルトの名無しさんNGNG
うむ。
0354デフォルトの名無しさんNGNG
>>351
それはread()の仕様からしてアタリマエなのでは?

移植性の確保だのとかいう、一部のコミュニティでしか成立しない理由で、
それを押し付けるのを勘弁してくれ、ということでは。
0355デフォルトの名無しさんNGNG
>>354
当たり前なら結構。そういう認識なら>>293みたいなアフォな発言は
出てこないのだがね。
0356デフォルトの名無しさんNGNG
>>351
その根拠は?
0357デフォルトの名無しさんNGNG
LANで数十バイトだったら、ループまわす必要ないよね。
0358デフォルトの名無しさんNGNG
>>356
だーかーらー
せめて、TCP_NODELAYやtelnetについて調べてみろよ。
確かに、環境と、通信するプログラム、ネットワークのバンド幅や
通信メッセージ長etc...を完全に限定できるんなら、
別にかまわんかもしらんさ。
俺なら例えそうだとしても、「環境が多少変わっても問題ない」
プログラムを作るがね。
タカが数行の手間を惜しんで、仕様上正しくないプログラムを作ることに
何の意味がある?
0359デフォルトの名無しさんNGNG
JIS X 3010:2003を確認したらfgetcを何回も呼び出すと書いてた
0360デフォルトの名無しさんNGNG
ようするに開発コストの増大と超特殊環境のサポートのトレードオフってことだよ。
言い争うべき点は何もない。仲良くしようぜ。
0361デフォルトの名無しさんNGNG
何が何でも俺のところ以外は超特殊ということにしたいらしい
0362デフォルトの名無しさんNGNG
次の議題はUDPドロップ時の再送処理の是非についてだが・・・
0363デフォルトの名無しさんNGNG
×例え
○たとえ
0364デフォルトの名無しさんNGNG
環境を正しく認識することは、
開発の困難さを見極める上で大事なことだと思うけど。
0365デフォルトの名無しさんNGNG
>>343
うーん。
これはAPIの仕様どおりにコーディングするコストが非常に低いから、としか言い様がないです。
どうせどんな環境でも長めのデータを受信するときには必須な処理なわけだし。
数行書けばよいだけなので、「一回の recv で全部読めるに違いない」なんて推測をしたり、
「ここでの最大メッセージ長はXXXバイト以下」とドキュメントを書いたりすることの方がメンドクサイ。

コードレビューもない、保守もしない、ドキュメントも書かない、APIの使い方が誤まっていて、
仕様変更等で無駄なコストが発生したり、変更漏れで障害が起きても誰に謝る必要もない、
ってなプログラムなら、好きなように書けばよいと思います。
漏れはそういう開発って少数派だと思うんだけど(←この辺で意見が合わないんだろうな・・・)。

あと信仰の問題として、機能仕様とAPIの仕様から導き出されるコードを書いて、それが問題なく
動くのであれば、「他にこうやっても動く」みたいに横道にそれるのは時間の無駄なのでやるべき
ではなかろう、というのもある。
0366デフォルトの名無しさんNGNG
unixネットワークプログラミングvol.1 のp162の
コードライン43の

if (-nready <= 0)
  continue;

ってなにコレ?誤植?
0367デフォルトの名無しさんNGNG
空気嫁
0368デフォルトの名無しさんNGNG
>>365
> 漏れはそういう開発って少数派だと思うんだけど
> (←この辺で意見が合わないんだろうな・・・)。

まさにそれが俺様意見ですね。

オープンソースだか請負仕事だか趣味だか知りませんが、
そういう仮定があることを明示してほしいものです。

俺事情の俺仮定に基づいた「内輪のプラクティス」であるにも関わらず、
一般的かつ重大なものであるかのようにふるまうアフォが多いなあ、
と思った次第です。

もちろん中には一般的なものも含まれるとは思いますが、
一般化のための演繹は慎重に行うべきでしょう。
0369デフォルトの名無しさんNGNG
>>366
それ日本語版? Figure 6.22 のリストかな?

今手元に原書しかないけど、2nd & 3rd ed. 両方とも

if (--nready <= 0)
  continue;

ってなってるよ。
0370デフォルトの名無しさんNGNG
ところでネットワーク系のAPIの仕様を調べるときにお前らどうしてますか?
システムコールのmanみてもいまいちよくわかんないのよね。

0371デフォルトの名無しさんNGNG
ソースコード見る。
オープンソースマンセー。
0372366NGNG
>>369
おっしゃる通り日本語版の6.22のリストです。
やっぱり誤植ですね。ありがとうございました。
kohala.comから落としたソースコードも見てみたら、
--nreadyになってます。

ところで3rd ed. って出たんですか?
0373デフォルトの名無しさんNGNG
一回のrecvで全部読めるのは俺事情の俺仮定ではないんですか。
ふーん
0374デフォルトの名無しさんNGNG
1)どこでも通用するコーディングスタイルと
2)特殊なシチュエーションに限定しないと動かないコーディングスタイルの

どっちが「俺事情の俺仮定」
だと思ってるんだか。しかも、この下らない低レベルな例に限っては
1)に従うのは容易なことなのに、な。

バカとはまさにこのことだな。
0375デフォルトの名無しさんNGNG
>>239
毎度、遅レスすみません。
radius云々言ってた者です。
ADSIってヤツですね?もう少し勉強してみます。
ありがとうございました。
0376デフォルトの名無しさんNGNG
>>366
ってかすべてのデクリメントがおかしくなってない?
-nready => --nready

一瞬頭の中『???』ってなったよ読んだときは。
0377デフォルトの名無しさんNGNG
>>372
日本語版はまだじゃないかな >3rd ed.
原書でよければ今すぐ Amazon へ GO!

0378デフォルトの名無しさんNGNG
>>374
通用しなければならない、通用するべきだ、通用したほうがよい
という主張こそが「俺事情の俺仮定」だよ。
0379366NGNG
>>376
たしかに。

>>377
リチャードさん以外の人たちが改訂したんですね。洋書売場で見てみます。
0380デフォルトの名無しさんNGNG
誰もしていない主張に反論して自分の「俺事情の俺仮定」を
ごまかしてるわけですね
0381デフォルトの名無しさんNGNG
結論が出たら呼んでくれ
0382デフォルトの名無しさんNGNG
>>381
いや、来なくていいよ。
0383デフォルトの名無しさんNGNG
>>380
自分自身の考えはどうなのか言ってほしい
0384デフォルトの名無しさんNGNG
ダグメールってどうやんの?


0385デフォルトの名無しさんNGNG
お前らまだやってたのかw
ほんとに全部読めるからやってみろって。

これからのスタンダードは、大きなバッファ用意して1回で読む。
これだなw
ループ回してる奴は馬鹿。
ある意味サルだなw
0386デフォルトの名無しさんNGNG
ループまわす甲斐性も持てないんだな
0387デフォルトの名無しさんNGNG
お前はシコシコループ回しとけよw
さ、RFC書くかなw
0388デフォルトの名無しさんNGNG
KFCでも逝ってろマヌケ
0389デフォルトの名無しさんNGNG
>385
fdopen()するのも旬らしいぞ。
もちろんWindowsでも携帯でも。
0390デフォルトの名無しさんNGNG
お前なんか勘違いしてるみたいだけど、バッファさえあれば100%読めるって言うのは
ほんとの話だぞ?
0391デフォルトの名無しさんNGNG
だから、仕様からそういう記述を引用してこいよ
0392デフォルトの名無しさんNGNG
仕様に書いてることなど俺事情の俺仮定だから無意味ですよ
0393デフォルトの名無しさんNGNG
はぁ?
だから、これからRFC書くって言ってんだろ?
少しは応援とか出来ないのか?
お前らってそういう奴らだった?
0394デフォルトの名無しさんNGNG
いや、だから、俺の知ってる環境では
実際にバッファを余らしてrecvから戻ってきたから
俺様環境の実装がどうだろうと、別にどうでもいいって。
0395デフォルトの名無しさんNGNG
>>394
嘘こくな。
恥ずかしい奴だなw
0396デフォルトの名無しさんNGNG
まあ、なんだ、http://info.2ch.net/before.html の一番下って奴だなだな。
0397デフォルトの名無しさんNGNG
>>396
まじめな話してるときに無意味な煽りはよせ!
0398デフォルトの名無しさんNGNG
まじめなのか?
てっきりネタで遊んでるとばかり思ってた
0399デフォルトの名無しさんNGNG
イヤイヤ俺は、>>254だから。
最初から大真面目。
俺が寝てから盛り上がるのはよせってこった。
0400デフォルトの名無しさんNGNG
>>393
がんばってください。まずは英語の勉強をしないといけませんね。
0401デフォルトの名無しさんNGNG
>>400
お前いいやつだな!
0402デフォルトの名無しさんNGNG
ところで、RFCが英語なのはおかしくないか?
公平に著者の母国語ってことにしたらどうだ?
0403デフォルトの名無しさんNGNG
>>402
どうせ誰にも読んでもらえないんだし、好きにしていいよ。
0404デフォルトの名無しさんNGNG
>>403
RFC読まないのはお前だけだよw
0405デフォルトの名無しさんNGNG
そういうお前はTCPのRFCを読んだのか
0406Followup-to: junkNGNG
ID なくても判別出来るよう age 続ける辺りが
無知の知と言えるかもしんない。
つか、他所で遊んで貰いなさい。
0407デフォルトの名無しさんNGNG
>>405
英語で書いてあるから嫁ねーんだろが!
アフォカ
0408デフォルトの名無しさんNGNG
>>396だってば
0409デフォルトの名無しさんNGNG
読まないのは>>403だけって言ってなかったか?
0410デフォルトの名無しさんNGNG
あー
お前らの相手してると、せっかくの良スレが糞スレになっちまうよ。
もう寝るw
0411デフォルトの名無しさんNGNG
>>407
お前バカだろ。あの程度の英語でファビョるなよ。
0412デフォルトの名無しさんNGNG
バカなのは分かりきってるからいちいち確認しなくていいよ
0413デフォルトの名無しさんNGNG
>>410の書き込みを見る限り、こいつは本物の気違い。
0414デフォルトの名無しさんNGNG
ageで書き込んでるヤツはリアルで精神を病んでるなw
0415デフォルトの名無しさんNGNG
病んでるなw
病んでるなw
病んでるなw
病んでるなw
病んでるなw
病んでるなw
病んでるなw
0416デフォルトの名無しさんNGNG
ほらねw
0417デフォルトの名無しさんNGNG
夏休みはまだ続いているのです>相手をしている方々
0418デフォルトの名無しさんNGNG
まあ、あれだ。頭悪い奴が相手してもらうためには煽るしかないわけで、
テキトーにあしらってやってくれよ。
0419デフォルトの名無しさんNGNG
終わらない夏休み
0420デフォルトの名無しさんNGNG
終わらない夏休みでぐぐると検索避けしてるのに
あのページがトップに来るな
大量にリンクされてるからか
0421デフォルトの名無しさんNGNG
ココ http://pc5.2ch.net/test/read.cgi/tech/1092308415/
でも暴れてたっぽい。
時間帯も一致してる。
0422デフォルトの名無しさんNGNG
0423デフォルトの名無しさんNGNG
>>405
普通読んだことあるんじゃね−の?
隅々まで読んだことあるのは,すくないだろうけど。

ISOと違って金とらねーし,RFCサイコ−!!

とか書いてて,金出して本買うのが普通なのかと不安になる僕チン。
0424デフォルトの名無しさんNGNG
>>423
ISOも一部だけど文書公開してるぞ
http://isotc.iso.ch/livelink/livelink/fetch/2000/2489/Ittf_Home/PubliclyAvailableStandards.htm
ISO/IEC 10646:2003マダー? (AAry
0425デフォルトの名無しさんNGNG
NATを越してくれるTCPプロトコルってありませんかね?
無論ユーザー側はなんら特殊な環境を持たずの状態で・・・・

それと、WinXP用にSP2出たけど、それ標準でFWがONになってるんで
これからのNAT超えがますます難しくなるような・・・
普通のユーザーにFWの設定を押し付けるシステムはあんまり良くないと思うし・・・
0426デフォルトの名無しさんNGNG
>>425
> NATを越してくれるTCPプロトコルってありませんかね?

ポートフォワーディングのこと?
0427デフォルトの名無しさんNGNG
>>425
「NATを越してくれる」というのは、
NAT内から・NAT内へ の接続、どっちの方向を指しているんだ?
0428デフォルトの名無しさんNGNG
サーバークライアント型でクライアント側がNAT越えをするのは当たり前だろ。
多分、UPnPやSTUNあたりの話でしょ。
サーバークライアント型ではなく、P2P型で
0429デフォルトの名無しさんNGNG
TCPと言っているのが気になる
0430デフォルトの名無しさんNGNG
たんなる希望的観測じゃないの?
TCPでそんなのがあれば良いな と

UDPだったら、いくらでもあるけどな。


つーか、TCPでも一応可能。
FTPに偽装しちまえ
0431デフォルトの名無しさんNGNG
質問に憶測で答えるなよ邪魔くさい
0432デフォルトの名無しさんNGNG
>>431
0433デフォルトの名無しさんNGNG
ageんなhage
0434デフォルトの名無しさんNGNG
SoftEtherは禁句ですか?
0435デフォルトの名無しさんNGNG
RC-232使ったファイル転送の方法おせーて
0436デフォルトの名無しさんNGNG
>>435
そんな曖昧なもん答えられるかよ。

「このケーブル使ったファイル転送の仕方おせーて」
なんていってるのと同レベル。
0437デフォルトの名無しさんNGNG
まあ、ネットワークスレだから、「PPP 上で ftp nfs smb あたりでがんばれ」でいいんじゃないの。
0438デフォルトの名無しさんNGNG
質問に憶測で答えるなよ邪魔くさい
0439デフォルトの名無しさんNGNG
それはそうだな。
0440デフォルトの名無しさんNGNG
うむ。
0441デフォルトの名無しさんNGNG
ムンッ!
0442デフォルトの名無しさんNGNG
>>438
糞レスするなよ
0443初心者NGNG
バイトオーダの変換はどうやってますか?
自分は次のようにやってます。
unsigned short tmp;
memcpy(&tmp, pRecv, sizeof(tmp));
unsigned short s = ntohs(tmp);
こんなやり方でよいのでしょうか?
もっと美しいやり方がありそうな気がして。。
0444デフォルトの名無しさんNGNG
unsigned short s = ntohs(*(unsigned short*)pRecv);
つう話じゃなくて??
0445初心者2NGNG
>>444
その不可解なキャストはなんの意味があるんですか?
0446初心者1(443)NGNG
>>444
そうそう。そういう話です。
そのほうがスッキリ書けてよさそうですね。サンクス。

0447デフォルトの名無しさんNGNG
pRecvはunsigned short *じゃないのかよ。それが問題なんじゃないのか?
0448デフォルトの名無しさんNGNG
受信バッファのカレントポインタだろ
0449デフォルトの名無しさんNGNG
そう。受信バッファのカレントポインタの意味でした。
説明不足でスマソ
0450デフォルトの名無しさんNGNG
型のことを言っているんだが。
0451デフォルトの名無しさんNGNG
型はunsigned char *ですた。

0452デフォルトの名無しさんNGNG
>>450
意味わかってない奴
0453デフォルトの名無しさんNGNG
このスレ用のRFCを作る必要があるようだな。
0454デフォルトの名無しさんNGNG
>>452
unsigned short *として使うならunsigned short *で受ければいいと思うが。
0455454NGNG
s/unsigned short *として/unsigned shortとして/
0456デフォルトの名無しさんNGNG
>>454
ひっこめ
0457デフォルトの名無しさんNGNG
http://www.pro.or.jp/~fuji/mybooks/cpro/cpro.4.3.1.html
0458デフォルトの名無しさんNGNG
>>457
寝ろ
0459デフォルトの名無しさんNGNG
目を覚ませ。
0460デフォルトの名無しさんNGNG
>>458
0461デフォルトの名無しさんNGNG
最近このスレ殺伐としてるなw
0462デフォルトの名無しさんNGNG
遙か昔からこのスレは殺伐としている
0463デフォルトの名無しさんNGNG
お兄ちゃん!
0464デフォルトの名無しさんNGNG
Winsock2のUDPが一度に送受信出来る量はどれくらいなのでしょうか?
0465デフォルトの名無しさんNGNG
MTU
0466デフォルトの名無しさんNGNG
TCPでデータ送ると内部的にACKが返されるとおもうんですが、
windows(2000,XP)では即答なんでしょうか?
それとも送信データが発生するまで少し保留してくれるのでしょうか?
だとしたら、どれぐらいの時間保留するのか教えてください。
0467デフォルトの名無しさんNGNG
きにするな
0468デフォルトの名無しさんNGNG
(*∀*)ウヒョー
0469466NGNG
自己解決しました。windowsでの実装値はわからなかったけど、
RFCで500ms以下推奨。200msが多いって本に書いてありますた。
0470デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/mysv/1092730926/122
0471デフォルトの名無しさんNGNG
>>464
8k単位のデータがEthernet上で6つに分割して送信される。
0472デフォルトの名無しさんNGNG
ポートに0を指定すると
ルーターが勝手に空いてるポート割り振ってくれます?
0473デフォルトの名無しさんNGNG
ま た ポ ー ト 0 厨 か
0474デフォルトの名無しさんNGNG
質問です。
Source addressとDistination addressと言う言葉を聞いたのですが
どのような意味なのでしょうか?
Sorceが送信元、Distinationの方が送信先のアドレスと言う事でしょうか?


>>472
むしろ指定してはいけないw
何も指定しなければ、勝手にWinsockが開いてるポート割り当ててくれる。
ルーターはUPnPでも使わない限り手動設定する必要があり。
ただし、クライアントであればルーターは特に関係ないと思われ。
0475デフォルトの名無しさんNGNG
Distinationは知りませんね。Destinationなら知っていますが。
0476デフォルトの名無しさんNGNG
失礼しました。
検索したらありました・・・・。
http://www.google.co.jp/search?q=cache:zjEYpfCXEd4J:plaza.harmonix.ne.jp/~cpulot/Dicd.htm+%22Distination+address%22&hl=ja
Distinationで・・・w

>>475
明らかに誤字ですよね・・。
0477デフォルトの名無しさんNGNG
WSARecvFrom()の5つ目の引数の
LPDWORD lpFlagsって、一体どういうものなのでしょうか?

一応手持ちの文献(Winsock2.0プログラミング)にも書かれてるんですが
どうも訳がおかしいのか、余計な予断だけで終わってしまっていてフラグの説明に関することがあまりきちんとかかれていません。
重複I/Oで使用する場合、通常ここには何を指定すれば良いのでしょうか?
一応本には
MSG_PEEKとMSG_OOBとMSG_PARTIALが書かれてあって
MSG_PEEKの説明の初めに非重複ソケットのみで使用できます。と書かれているのでこれ関係ないと思われます。
で、MSG_OOBはバンド外データだけを受け取るものみたいなので、これも違いますよね。

で、MSG_PARTIALなんですが、どういうフラグなのか、書かれてません。
WSARecv()の時は使用しないという事と、
関数の少量時にlpFlagsに設定される事があるが、それは指定バッファがいっぱいになったのでメッセージの一部だけを格納した事を示します。
と書かれてあり、このフラグ自体の説明になってません。(苦笑

よりしくお願いします。
0478デフォルトの名無しさんNGNG
MSG__PARTIALは、IPでいう、MFフラグを抽象化したものではないかと。
WSARecvFromだったら、受け取るフラグなわけで、
指定しても無意味でなかったかな。
0479デフォルトの名無しさんNGNG
winsockにおいて、recvでブロック中に同一ソケットでsendを呼び出すことは出来ますか?
出来ない場合、代替の方法はありますか?
0480デフォルトの名無しさんNGNG
出来ます。socketは双方向通信です。
0481デフォルトの名無しさんNGNG
"全二重"入れるの忘れた…
0482デフォルトの名無しさんNGNG
>>481
ソウデスヨネ。少なくともTCPは全二重なんです。
ところがこんな記述が・・・

http://www.kt.rim.or.jp/~ksk/wskfaq-ja/intermediate.html#threadsafety
一方のスレッドが send() を呼び出し、別のスレッドが同一のソケットに対して
recv() を呼び出すのは安全である、という伝説があります。
しかし私はこれを確認したことはありません。
より堅固な情報やデモンストレーション用のコード、
さらなる伝説などがあれば、教えていただけると幸いです。
0483デフォルトの名無しさんNGNG
俺が新たな伝説を作るしかないのでしょうか?
0484デフォルトの名無しさんNGNG
プロトコルとしてのTCPは全二重通信を保証してるけど
ライブラリであるWinsockがスレッドセーフなのかどうかは
誰も知らないってことでしょ。LSPの出来にも左右されるし
0485デフォルトの名無しさんNGNG
>>484
あなたが知らないだけですよ
0486デフォルトの名無しさんNGNG
俺一人が知らないだけなら>>482みたいな書き方にはならないと思うが。
また「俺様のところでは動いてる」厨ですか? いい加減うんざりなんですけど
0487デフォルトの名無しさんNGNG
まあ、通信なんてものはあいまいなものさ
0488デフォルトの名無しさんNGNG
>>486
たしかにあなた以外も知らない人がいるでしょうね
0489デフォルトの名無しさんNGNG
あの・・・
これってものすごく重要な問題だと思うんですよ。
極端な話し、BSDスタイルが今日の一般的なアプリで使えるかどうかの瀬戸際なんですよ。
>>485さん、もし情報源が有るなら教えていただけませんか?
0490デフォルトの名無しさんNGNG
不安なら、ブロッキングしないように非同期モードにすりゃいいんじゃないかと
0491デフォルトの名無しさんNGNG
非同期だと、構造を大幅に変えないといけないので、
伝統的なやり方が通用しなくなりますよね・・・
つらいなぁ・・・
0492デフォルトの名無しさんNGNG
いや、select/pollは充分伝統的だと思うけど。
0493デフォルトの名無しさんNGNG
>>492
selectでブロックされるのとrecvでブロックされるのは
本質的に何が違いますか?
selectでブロック中にsendすることは安全ですか?
0494デフォルトの名無しさんNGNG
もしかして>>490は、Windowsスタイルの話でなくselect使えって話ですか?
0495デフォルトの名無しさんNGNG
thread safetyはwinsockだけの問題じゃないな
下位のサービスがsafeじゃないと意味なかろう

ブロッキングと非同期は全然別物だ
thread問題を回避するにも、ノンブロッキングでselectする
というのはいい解かもしれん

ちなみにSolaris2.4の頃は、safeであるといいつつsafeでなかった
(ブロッキングが解けなくなることがあったらしい)
0496デフォルトの名無しさんNGNG
Winsockのnon-blockingは酷いから注意。
面倒でも非同期の方がいいと思う。

SunOS 2系列は5.5.1までいろいろ問題があった。
SunOS 5.4(Solaris 2.4)はSunOS 4.Xの維持も終わった後で、
SunOS信頼性の谷間だったね。
0497デフォルトの名無しさんNGNG
Winsockなら重複I/Oマンセーだろ?
使わない理由ないじゃん。
0498デフォルトの名無しさんNGNG
ゲ製作技術板でmmorpgを作れるプログラマを養成するスレが誕生しますた。
自分で作ってみたいなと思う方やネットワークプログラミングに興味のある方は
是非参加してみてください。チート対策などの質問も歓迎です。
現在、生徒が少なすぎて廃校の危機ですがお気軽にどうぞ。

みんなでMMORPGを作りましょう
http://pc5.2ch.net/test/read.cgi/gamedev/1092395334/

mmorpg製作&技術系まとめ
http://gamdev.org/w/?%5B%5BMMORPG%A4%F2%BA%EE%A4%C3%A4%C6%A4%DF%A4%BF%A4%A4%5D%5D
0499デフォルトの名無しさんNGNG
宿題スレでレスつかなかったので教えてください
http://www.ops.dti.ne.jp/~allergy/socket/socket.html#event
を参考にしてチャットプログラムを作っているのですが、
標準入力から文字を取り込んで送るにはどのようにすればよいのでしょうか?
0500デフォルトの名無しさんNGNG
>>495
下位のサービスって何ですか?
0501デフォルトの名無しさんNGNG
>>496
非同期にすると構造を大幅に変えないとならないので、
きついんですが、それが一番いい方法ってことですかね。
0502デフォルトの名無しさんNGNG
ブラウザでどのボタンを押されたか分かるソフトってありますか?
javaScriptとアプレットの連携でファイル出力するように試したんですが、
うまくいきませんでした。
0503デフォルトの名無しさんNGNG
>502
ボタンがないブラウザもある。
別の解法を探すべし。
0504デフォルトの名無しさんNGNG
>>499
>標準入力から文字を取り込んで
そんなもんネットワークとは関係ない。
0505デフォルトの名無しさんNGNG
>>503
書き方がまずかったです。
サーバへリクエスト送信時に、どのFORMタグのボタンが押下されたか、
または、どの<A HREF>タグをクリックされたかが分かるようにしたいんです。
どんなリクエストパラメータをくっ付けてURLを飛ばしたかをクライアント上に
ログ出力したいんです。
0506デフォルトの名無しさんNGNG
>>505
必要なログを出すブラウザを自作
0507デフォルトの名無しさんNGNG
目的と手段がつながってないから何をやっても駄目
0508デフォルトの名無しさんNGNG
>>505
IE上からは無理でしょうか?
また、IEプラグインで実装可能でしょうか?

>>506
他アプリを使用してのIEのオペ操作は、
場合によっては誤動作を起こすので
その際のオペレーションログが必要になるので。
0509デフォルトの名無しさんNGNG
↑上は間違い。
>>506
IE上からは無理でしょうか?
また、IEプラグインで実装可能でしょうか?

>>507
他アプリを使用してのIEのオペ操作は、
場合によっては誤動作を起こすので
その際のオペレーションログが必要になるので。
0510デフォルトの名無しさんNGNG
それってなんだかブラウザにパスワード入力したのを
コバンザメアプリが横からかすめとれそうな話に聞こえるんだけど気のせい?
0511デフォルトの名無しさんNGNG
つーかネットワークプログラミングと関係あるの?
0512デフォルトの名無しさんNGNG
>>510
わしもそう思った。スパイウェアの作り方を教えてくれって見える。
サーバー側からどうにかしたい(ユーザーの操作を覗きたい)、
駄目ならIEにプラグインとして実装したい(ブラウザに潜ませて収集したい)
って見える。
0513 NGNG
はじめまして 初心者ですので質問もわかりにくくすみません

WinSockですが
以下のように 200バイトづつ受信しています
recv(socket, pBuf, 200, 0)
送り側では一定間隔で200Byteづつ送信しています
受信側でも一定の間隔で受信されることを期待していますが
実際には 600Byteづつバッファリングして受信している
ようです
なぜ??
0514デフォルトの名無しさんNGNG
それがTCPというものです。UDPならプロトコルスタックのバグ。
0515 513NGNG
はじめ 通信環境のジッタとも思ったんですが
あまりにも規則的なもんですから
TCPの仕様ですか? 

0516デフォルトの名無しさんNGNG
なんか似たような話が >>244 ぐらいからあったな
0517 513NGNG
>>516
いや それは 一度に読めるように想定していいかの話だけど
これは読めるけど 指定したバイトが届いたら recvに
制御を戻してほしいという話です

0518 513NGNG
すみません 自己解決しました
Nagleを無効化すればいいんですね
Winsockは200 ミリ秒以下のデーターを
単独ではおくれないようです
0519デフォルトの名無しさんNGNG
TCP_NODELAYで気休めにはなるかもしれんけど・・・

届く時間に何か期待するならUDP使うしかないんでは?
0520デフォルトの名無しさんNGNG
>>513
以下のサイトで勉強しなさい。
ttp://benjamin.ddo.jp/modules/quiz/
0521デフォルトの名無しさんNGNG
>>513
よくわからんが、受信側がバッファリングしてるんじゃなくて、
送信側がバッファしてるんじゃない?
recv(socket, pBuf, 200, 0)ってやれば200バイト読めた時点で返すはずだから。
0522デフォルトの名無しさんNGNG
安易にNagleを無効にする人多いなぁ。
0523デフォルトの名無しさんNGNG
1.TCPでパケットを前提にしたソフトが動かない
2.Nagle無効で解決だ
3.再送で破綻
となるのがオチ。
0524はじめましてNGNG
以下のコード(Server.c)を作成した(途中)のですが、実行するとbind関数を呼び出す個所でbind(...) failed: Socket operation on non-socket というエラーを吐いてbind関数が失敗します・・・。
50回くらいソースを見直しましたが、どこが悪いのか全く検討もつきません。
どこが悪いのか教えて頂けないでしょうか?宜しくお願い致します。
環境は、 RH9.0, gcc version 3.2.2
尚、コンパイルは
% gcc Server.c
実行は
% ./a.out 9000
で行いました。 (port 9000 が使用中でないのは netstat で確認しました)

ソースは次へ。

0525524NGNG
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
#include <unistd.h>

void die(char *errorMessage){
perror(errorMessage);
exit(1);
}

int main (int argc, char* argv[]){
int serverSock;
struct sockaddr_in serverAddr;
unsigned short port;

if( (serverSock = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP) < 0 ) )
die("socket(...) failed");

port = atoi(argv[1]);
memset(&serverAddr,0,sizeof(serverAddr));
serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = htonl(INADDR_ANY);
serverAddr.sin_port = htons(port);

if( bind(serverSock, (struct sockaddr *) &serverAddr, sizeof(serverAddr)) < 0 )
die("bind(...) failed");
return 0;
}
0526デフォルトの名無しさんNGNG
socketの第三引数は通常0にしておくものだが。
0527デフォルトの名無しさんNGNG
> if( (serverSock = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP) < 0 ) )

if( (serverSock = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP)) < 0 )

こーじゃねーの?
0528524NGNG
>>527

神様・・・。

ありがとうございました。
0529デフォルトの名無しさんNGNG
>>528
デバッガは何を使っていますか?
0530デフォルトの名無しさんNGNG
デバガ以前に gcc -Wall でもしておけば問題ない。
0531528NGNG
>>529

使ったことないです・・・。
GDBを勉強しようと思います。
Linux上でのプログラミングなのですが、GDB以外にオススメのデバッガってありますでしょうか?
宜しくお願い致します。
0532528NGNG
>>530

-Wall は付加しましたが、524の問題では全く検知できませんでした・・・。
0533デフォルトの名無しさんNGNG
>>531
Linuxじゃないんだけど、VSのデバッガってすごく便利だよ。
わかりやすいから初心者向きだと思う。
プロになってもそのまま使えるみたいだよ。
0534kdbgNGNG
>>531
Linux板のくだ質スレででも。その時は、何故、
> GDB以外
なのかちゃんと説明した方がいい。
0535デフォルトの名無しさんNGNG
string command="010";
command += lexical_cast<string>(index);

int ret = sendto(sock,
command.c_str(),
sizeof(command.c_str()),
1,
(struct sockaddr *)&sv_addr,
sv_addr_len);

こんな感じで送信してみたら。
受信側で表示してみると、語尾に
フフフフフ...とか言う不気味な文字列が・・・
ちゃんと受信バッファはmemset()で0クリアしてます。
どうすれば解決しますか?
0536デフォルトの名無しさんNGNG
>>535
受信側のコードを示していないあたりネタかな。
あと、c_str()にsizeofを使っても文字列の長さは得られないよ。
0537デフォルトの名無しさんNGNG
>>535
フフフフフ

このスレか前スレにフフフ問題あったよ
0538デフォルトの名無しさんNGNG
535はフフフフフが起こる要因は分かっていると思う。
0539538NGNG
要因というか仕組みかな
0540デフォルトの名無しさんNGNG
>>535
boost使いのくせにフフフフが判らんということ自体ありえない。
socketプログラミングに手を出しているくせにフフフフが判らんということ自体ありえない。
スレ荒らし同然の質問はヤメレ。
0541デフォルトの名無しさんNGNG
ウフフフフ
0542デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1092665695/408-415
これと同じ人かも
0543デフォルトの名無しさんNGNG
>>535
受信バッファはC++のstring・文字列ではないので'\0'ターミネートされていないから。
0544デフォルトの名無しさんNGNG
逆に受信データの途中に'\0'が混じる可能性だってあるね
0545デフォルトの名無しさんNGNG
ヘヘヘヘ
もあるでよ。

0546デフォルトの名無しさんNGNG
スティーブンスのUnixネットワークプログラミングは、むしろ第二巻のほうが役立つよう気が・・・
0547デフォルトの名無しさんNGNG
フフフフフフは結構ソケットプログラミングやりたての頃は必ず引っかかる定番の現象でしょ。
俺も以前悩んだ覚えがあるぞ。
しかもタチの悪い事にフフフの量にバラつきがあるのでググっても出てこない。
0548デフォルトの名無しさんNGNG
うちのIISはNNNNNNNとかログにでるけどね
0549デフォルトの名無しさんNGNG
フフフってネット以前に体験するだろ
0550デフォルトの名無しさんNGNG
うちはNULL.IDA?CCCCCCCCC....だな
0551マイク ◆yrBrqfF1Ew NGNG
バカばっか。
まあここはこれが普通か(▽
0552デフォルトの名無しさんNGNG
>>547
検索サイトランキングに フフフフフフとかあるかも
0553デフォルトの名無しさんNGNG
0xDEADBEEF
0554デフォルトの名無しさんNGNG
PEBKAC
0555デフォルトの名無しさんNGNG
いや、頼む、フフフフフfについて解説してるサイトかなんか、教えてくれ
0556デフォルトの名無しさんNGNG
フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
↑これ以上長いのはググれないらしい。
0557デフォルトの名無しさんNGNG
ちょっと質問

TCP/IP上のチャットを作ろうと思って、そこで使うアプリケーション独自の
プロコトルを決めたいんだけど、プロトコル決めるにあたって、
参考になるサイトとかってないかな?
特に再送とかエラー検出とかで、こういうパケット構成にするといいぞ
みたいなのを解説してるページとかあったら、教えて欲しいです
0558デフォルトの名無しさんNGNG
こんな楽しいこと教えるわけがないだろうフフフフフフフ
0559デフォルトの名無しさんNGNG
>>557
そういうネットワークプログラミングのノウハウまとめた
サイトや書籍って日本語のものはほんとに見当たらない。
既存のソース読んで試行錯誤するしかないよ。
まあプロトコルバージョンさえ仕込んでおけばなんでいいよとりあえずw
0560デフォルトの名無しさんNGNG
素直にJavaに逝けって
0561デフォルトの名無しさんNGNG
>>557
IRCのRFCを読んで参考&&反面教師
0562557NGNG
ぬぅ

とりあえず試行錯誤してみます。
どもどもでした。
0563デフォルトの名無しさんNGNG
>>557
>再送とかエラー検出とか
とりあえず,もう少しTCPを信用したらどうだ?
0564デフォルトの名無しさんNGNG
>>563
相手のアプリがゴミ送ってきたときも考慮する必要があるし
なんだかんだでそう簡単にはいかないでしょ。最初のうちは。
0565デフォルトの名無しさんNGNG
そんなゴミ送られたら切断するだけだね
0566デフォルトの名無しさんNGNG
そのためのチェックでしょ
0567557NGNG
TCP上で通信していて、送信したものは
絶対に、送信した順番で受信されるのですか?

ちょっとネットワークの調子が悪くなって、あるパケットが届かないけど
それ以外のパケットは全部届いてる、みたいな状況も想定すべきかなー
とか思ったんだけど、それはTCPを馬鹿にしすぎでしょうか?
0568デフォルトの名無しさんNGNG
>>567
質問するのは>>1-10あたりやTCP/IPの本を見てからでも遅くは無い。
0569デフォルトの名無しさんNGNG
というか無知
0570デフォルトの名無しさんNGNG
パケットがまとめられることはあっても無くなったり順番が入れ替わったりはしない
プログラムにバグが無ければな
0571デフォルトの名無しさんNGNG
TCPでデータグラムな使い方するアホがいるからなぁ。
0572デフォルトの名無しさんNGNG
TCP使うのにさぁ、パケットのことまで普通考えないよね。
0573デフォルトの名無しさんNGNG
>>571
数秒間隔でMTUに収まるサイズならパケットとして投げても問題ないんだけどな。
0574デフォルトの名無しさんNGNG
また俺環境では問題ない君登場ですか
0575デフォルトの名無しさんNGNG
特殊環境以外の一般的環境では問題ない。と言ってくれ。
0576デフォルトの名無しさんNGNG
ということにしたいのですね
0577デフォルトの名無しさんNGNG
もう反論不能ですか。だったら最初から出てくんなよw
0578デフォルトの名無しさんNGNG
俺環境だけが一般的で俺様のプログラムが動作しない環境は
全て特殊なのですね
0579デフォルトの名無しさんNGNG
当たり前だろ。馬鹿かお前はw
0580デフォルトの名無しさんNGNG
うらやましい脳味噌をお持ちですね
0581デフォルトの名無しさんNGNG
Content-Lengthを詐称された場合、どう対処するのが正しいんでしょうか?
0582デフォルトの名無しさんNGNG
ここは同じ話題ばかりがループするインターネットですね
>>134-
0583デフォルトの名無しさんNGNG
パケットとして投げること
TCPでデータグラムな使い方すること

この2つは全くの別モノだろう。
だいたい,TCPでデータをパケット的に扱うことは全く問題なし。

>数秒間隔でMTUに収まるサイズなら
とかいってるのはアホ。
0584デフォルトの名無しさんNGNG
うざい
0585デフォルトの名無しさんNGNG
自作自演ばっかり
0586デフォルトの名無しさんNGNG
>>581
釣られてみる。

>Content-Lengthを詐称された場合、どう対処するのが正しいんでしょうか?
というふうに書く時点で
「そんな面倒なこと想定したコード書きたくない」とか
「だれかが言っていたからそれをそのままつかった」という言い訳
したいだけだろ。

絶対に誤った値が来ないという仕様で決めうちしてしまう(こんな仕様でやるのは間違ってるが)か詐称されてプログラムがあぼーんしても可って仕様にして何も考えずContent-Lengthを信じろ。

詐称して実際のデータよりも小さい値をいれたならそのまま受信して
そのデータの中身を必要があればチェックすれば良し。
実際より大きい値をいれたのなら、適当なタイムアウト値を設定して
それまでにデータがこなかったらセッション切れば良かろう。
それ以上なにがあるんだ?
0587デフォルトの名無しさんNGNG
>Content-Lengthを詐称された場合、どう対処するのが正しいんでしょうか?

腹いせに次のリクエストの時に、自分も
Content-Length を詐称してサーバーを困らせてやれば?
目には目を。ハニワにはハニワを。ハンムラビ法典で対処するのが吉です。
0588デフォルトの名無しさんNGNG
サーバに遮光式土器の様な目で見られてもいいならそれで良し
0589デフォルトの名無しさんNGNG
    if(lngContentLength != lngRequestBody) {
        strResponseMessage = "ぬるぽ";
        byteResponse = encFilter.GetBytes(strResponseMessage);
        intResponseBody = byteResponse.Length;
        while(true) {
            try {
                intSize = socket.Send(byteResponse);
                if(intResponsedBody >= intResponseBody) break;
            }
            catch(Exception e) {
                break;
            }
        }
    }
0590デフォルトの名無しさんNGNG
>>557
プロトコルかプロコトルかはっきりしろ!
チミの辞書は一体どうなっているんだ!!!
0591デフォルトの名無しさんNGNG
プコトロエウ
0592デフォルトの名無しさんNGNG
プエルトリコ?
0593デフォルトの名無しさんNGNG
is a
0594デフォルトの名無しさんNGNG
TCPといえどもパケットサイズ管理の注意は必要でしょ。
NATが絡むと特に。
0595デフォルトの名無しさんNGNG
もっと具体的に書いて見ろ。
0596デフォルトの名無しさんNGNG
TCP上でプログラム組むとき、パケットの分離はアプリケーション側で
処理する必要があるって話じゃなくて?
パケットの先頭にパケット長とか入れてよくそんなコード書いてたなぁ。
0597594NGNG
>>595
釣りだと思うなら、勝手に思ってろ。
お前にはNAT環境の仕事は来ないだろうから、
知らなくても大丈夫だ。
0598デフォルトの名無しさんNGNG
>>597
釣りだと思ってないんで、無知なおいらに詳細を教えてほすぃ
いや、マジでちょっと知りたかったり
0599594NGNG
>>598
MTUでググってみろ!ぼけが!
0600デフォルトの名無しさんNGNG
具体的なことは書けないのだな。
0601デフォルトの名無しさんNGNG
「パケットサイズ管理」というのは具体的にはどうやるのか教えてくり。
0602デフォルトの名無しさんNGNG
>594
プ
誰が管理するんだYO!
0603デフォルトの名無しさんNGNG
>>594
ソースネクストあたりがおまい向きのソフトを売ってるぞ(げらげら
0604594NGNG
何 も わ か っ て い な い よ う で す ね
0605デフォルトの名無しさんNGNG
>>604
オマエガーナジン
0606デフォルトの名無しさんNGNG
>>604
うん、本当にわからない。
後学の為に教えておくれ。
0607デフォルトの名無しさんNGNG
ageで594って書いてる奴は騙りだろ
0608594NGNG
プ
0609デフォルトの名無しさんNGNG
>>608
正解!
0610デフォルトの名無しさんNGNG































0611デフォルトの名無しさんNGNG
>>610
Cスレにかえれ
0612デフォルトの名無しさんNGNG
Winであまり手をかけずにパケットをキャプチャするには、2000/XPでRAWソケットを使うしか無いんでしょうか
0613デフォルトの名無しさんNGNG
WinPcapを使う。
0614デフォルトの名無しさんNGNG
age
0615デフォルトの名無しさんNGNG
RAWソケットはXPSP2から使えなくなりますた
0616デフォルトの名無しさんNGNG
な、なんだってぇぇぇぇ
0617デフォルトの名無しさんNGNG
>>616
本当だよ
0618デフォルトの名無しさんNGNG
な、なんで・・・
0619デフォルトの名無しさんNGNG
パケットキャプチャできるからにきまってるべ
0620デフォルトの名無しさんNGNG
プログラム中で ping 飛ばしてるところはどうすれば…?
0621デフォルトの名無しさんNGNG
…って、今調べてみたら 1480 バイト以内なら使えるみたいよ?
  tp://support.microsoft.com/default.aspx?scid=kb;JA;884942
0622デフォルトの名無しさんNGNG
あ、そうなんだ
全面禁止なのかと思ってた
0623612NGNG
返事遅くなってすみません。
WinPcapも考えたんですが、あれ、日本語訳されたマニュアルって無いですよね?
どこかにあれば、教えていただきたいのですが・・・
無ければ無いで、英語と格闘してみますが・・・
0624デフォルトの名無しさんNGNG
楽がしたいならWinDumpの出力を取り込むとか。
激しくカコワルイけど。
0625デフォルトの名無しさんNGNG
うーん
両方検討してみます
ありがとうございました!
0626デフォルトの名無しさんNGNG
WinDumpじゃなくて、etherealにしろ。
0627デフォルトの名無しさんNGNG
>>623
基礎からわかるネットワークプログラミングでも買ってみれば?
0628デフォルトの名無しさんNGNG
すいません、今ちょっと余裕が無いんで・・・_| ̄|○|||
余裕のある時に探して見ます
0629デフォルトの名無しさんNGNG
何のために聞きに来たんだ?
0630デフォルトの名無しさんNGNG
いや、専門書買うお金が無いだけです_| ̄|○|||
0631デフォルトの名無しさんNGNG
つーか>>627を買わずとも、webと英語マニュアルで十分。
はっきり言って詳しく書いてある書籍はない。
0632デフォルトの名無しさんNGNG
そんな本書いたって日本では市場が成立するほど売れないしな
0633デフォルトの名無しさんNGNG
0634デフォルトの名無しさんNGNG
今、無線(802.11b)での通信をテストしています。
電波状況が悪くなった状態での評価を取りたいのですが、
今はノートパソコンを外に持って行って、コードレスフォンで
室内にいる人に協力してもらっているのですが、
無線の電波状況が悪くなる=コードレスフォンの電波も悪くなる
というジレンマを抱えております。
数メートルの距離で電波状況を調整する方法はありませんでしょうか?
プログラミングとは直接関係ありませんが、どなたかご存知の方が
いらっしゃいましたらご教示お願いします。
0635デフォルトの名無しさんNGNG
コードレスフォンがだめなら携帯使えばいいじゃない
0636634NGNG
>>635
それも考えたのですが、通話料がかかってしまう上、
一人でテストするのが難しいです。
あと今日みたいな台風の日は室内でテストしたいです。
0637デフォルトの名無しさんNGNG
コードレスフォンのアンテナ部分改造すればいいじゃない(違法)
0638デフォルトの名無しさんNGNG
アルミホイルや電子レンジの中にでも入れてフタで調整すればいいじゃない
0639634NGNG
>>637
すみません、デバイスとかはあまり詳しくないので
どう改造すればいいかわからないです。
できれば802.11bの電波状況を悪くして、
コードレスフォンなどを使わずに実験したいです。
0640634NGNG
>>638
アルミホイルは試してみたのですが、効果はありませんでした。
電子レンジのほうは、ノートパソコンがぎりぎり入るようなので、
後ほど試してみようと思います。
0641デフォルトの名無しさんNGNG
電磁波対策エプロンにつつめばいいじゃない(効果あるのか?あれ)
0642634NGNG
>>638
電子レンジに入れたところ、電波強度の表示が90%から40%に落ちました。
データのレイテンシのばらつきは大きくなった気がしますが、
データは自体は問題なく届くようです。
ついでにアクセスポイントも電子レンジの中に入れるといいのでしょうか?

>>641
なんかいいアイディアのような気がします。
後日購入して試してみようと思います。
0643デフォルトの名無しさんNGNG
アルミ箔だろうと,エプロンだろうと,隙間開いてたら,すぐに回折してくるぞ〜。
0644634NGNG
>>643
ということは無線LANカードの周りだけでなく、
コンピュータを丸ごとアルミ箔で包んだほうが良いのでしょうか?
0645デフォルトの名無しさんNGNG
0646デフォルトの名無しさんNGNG
WinSockを使っています。
プログラムのメインループ内で、
ノンブロッキングで送受信するのと、WSAEventSelectなどの非同期関数を使うのとでは、
どのような違いが出るのでしょうか?
どちらもメインループ内で他の作業が出来るという点では同じように感じられるのですが、
メリット・デメリットを踏まえて教えていただきたいです。
0647デフォルトの名無しさんNGNG
さすがにこのネタにはもう食いつかないか
0648デフォルトの名無しさんNGNG
TCP/IPのプロトコルスタックでお勧めを教えて下さい。
CPUはH8,M16Cあたりを使用することになると思います。
基本的にOSは非搭載で考えています。
通信速度よりも実装時のROM/RAM容量を重視しています。
ROM64K/RAM4K以内で実装できれば理想的です。

出来ればフルソース付でOS非依存、量産ライセンス無しっていうのが理想です。
時間的制約もあり量産商品への組み込みのためある程度の信頼性も確保
しなければなりません。
商品はあちこちから発売されているのですが、この種の商品は実際使ってみないと
わからない部分が多いので、みなさんのお知恵を貸してください。

BSDやToppersなどの流用や自作については別途検討していますので今回は
除外させてください。

特に使用した商品の組み込み安さ、安定性と導入費用、ROM/RAM使用量、
組み込みにかかった期間などを教えていただけると嬉しいです。
0649デフォルトの名無しさんNGNG
>>648
ttp://akizukidenshi.com/catalog/items2.php?q=TCP&s=score&p=1&r=1&page=#K-00168
他にも探せばあるだろうけど。
0650デフォルトの名無しさんNGNG
>>648
ココよりは電気・電子板のほうがよさそうじゃない?
0651デフォルトの名無しさんNGNG
くれくれ君ですか
0652デフォルトの名無しさんNGNG
ありがとうございます。

>649
今回の場合、物理層はEatherチップではなく電話回線なのです。
そのため実際にはPPPも実装してシリアル経由で通信を行います。
実はリンク先のボードは自分の学習用に持っていますが、ライセンスなどの
関係で量産製品のファームとして使用するのは問題が出てくるのではないかと
思います。

>650
そうですか。どうもしっくりくるスレッドが無かったのでココに書かせて
もらいました。電気、電子板だとハード側の話になってしまうようなので。
TCP/IPプロトコルスタックのソフトウェア部分の話なので、ココの方が
いいかと思ったんですが。
ここってSocketプログラミングの話用なんですね。
スレ違いっぽくてすいません。

他の組み込み向けネットワークの話題を扱ってるスレを探したいと思います。
ありがとうございました。
0653デフォルトの名無しさんNGNG
>>652
環境等は先に書けや・・・
0654デフォルトの名無しさんNGNG
質問です。

一般的にSOCKETを非ブロッキングモードにして、
whileなどでポーリングするのは良くないといわれていますよね。

ですが現在作成しているものはゲームで、基本的に永久ループしているものなので、
それなら非ブロッキングモードにしてrecvもありかなと思ったのですが…。

率直な感想として
「いや、それでも非ブロッキングモードは避けるべきだ」とかありますでしょうか?
0655デフォルトの名無しさんNGNG
> ですが現在作成しているものはゲームで、基本的に永久ループしているものなので、
> それなら非ブロッキングモードにしてrecvもありかなと思ったのですが…。

前半と後半の関連性が不明。
0656デフォルトの名無しさんNGNG
>655
お返事ありがとうございます。
非ブロッキングでのrecvポーリングの一番の問題は、
CPUパワーをくってしまうことだと思うのです。
それならAASyncつかったり、ブロッキングしろということになりますよね。

ただ、今回は元から無限ループを行うゲームであるため
「通信のためにポーリングでCPUパワーを食う」という事態ではありません。
よって許容されうるかなと思いまして。
0657デフォルトの名無しさんNGNG
> ただ、今回は元から無限ループを行うゲームであるため
> 「通信のためにポーリングでCPUパワーを食う」という事態ではありません。

これが具体的に何を意味しているのか分からん。
0658デフォルトの名無しさんNGNG
>>656
一般的にビジーループは許容されません。

非ブロッキングはselect()/poll()とセットでどうぞ。
待機 ⇒ recv() ⇒ EWOULDBLOCK/EAGAIN ⇒ 繰り返し

#ついつい釣られちまった Σ(´�D`lll)
0659デフォルトの名無しさんNGNG
>>657
通信のため「だけ」にポーリングでCPUパワーを食うわけではない
ってことでしょ

>>656
ゲーム中の描画毎に通信処理をするプログラムなら問題ない、あなたのやりたいようにやって構わない

他のアホ共は「一般的にビジーループは許容されません。 」なんて戯言言ってないで
質問内容に合ったアドバイスをしてやれ
0660デフォルトの名無しさんNGNG
>>654
> 「いや、それでも非ブロッキングモードは避けるべきだ」とかありますでしょうか?

古いWinsockのノンブロックングは、
>>659と同じくらい馬鹿。
0661デフォルトの名無しさんNGNG
>>654
ちゅーことは新しいwinsockつかえばいいんだってさ
0662デフォルトの名無しさんNGNG
>>657-661
お返事ありがとうございます。

曖昧な言い方でご迷惑をかけて申し訳ありませんでした。

FPS15程度で、ゲームスレッドが無限ループしております。
いわゆるWinMainから始まる大本のスレッドです。

受信に関して主に3つの方法を思いつきました。
・AASyncを使う
・ブロッキングrecv専用のスレッドをつくる
・ノンブロッキングrecvを使う

このうち、ノンブロッキングが楽かなと思ったのですが、世間一般ではノンブロッキングは嫌われています。
私はその理由が
「受信のためだけにwhileでまわしつづけるスレッドを用意する人がいるから。
 ポーリングするならブロッキングしろ!CPUパワーがもったいないだろ!」
だと理解しました(間違っていたらご指摘いただけると幸いです。

ですが今回の場合、whileでまわしつづけているのには「描画とゲームを進める」という必然性があり、
そのとき一緒にノンブロッキングrecvを処理します。

それならノンブロッキングもありかなと思ったわけですが、
「いや、それでもダメだ。AASyncに比べてこういう不都合がある!」
という意見があったらご指摘していただきたいと思いここに書き込んだしだいです。
0663デフォルトの名無しさんNGNG
>>658
つまり、タイムアウト時間0のselectということでしょうか?
それならばrecvだけでいいかなと思います。
「質問者が、通信を待つだけのビジーループを作ろうとしているから、待機select使えと指摘した」
のなら誤解を招いた私のミスです。すいません。

>>660-662
なるほど。
古いWinsockというのがどれか分かりかねますが、1.1を考えております。
「1.1のノンブロッキングrecvは、こんなひどいことが!」ということがあれば、教えていただけると幸いです。
それはそれとして、私の誤解を招く表現で喧嘩を招いてしまい、申し訳ありません。
0664デフォルトの名無しさんNGNG
2.0の非同期型の方が通信のパフォーマンスがいいから。
ネットゲームはラグとの戦いだからちょっとでもラグを減らせるような工夫をすべき。
0665デフォルトの名無しさんNGNG
ラグが関係するゲームとは限らなくないか?
オセロとか将棋かもしれん。
0666デフォルトの名無しさんNGNG
タイミング・パフォーマンスが関係ないなら
そもそも何でもいいというかどうでもいい話だな。
とはいえWin3.1で十分作れるからといって
アプリをWin3.1で作るのような事に何の意味があるのか知らんけど。
0667デフォルトの名無しさんNGNG
ダイレクトにユーザーに伝わるLaFと、
そうではないソケットのどこに同列に語れるだけの要素があるよ。
0668デフォルトの名無しさんNGNG
何で俺に噛み付くかね。
そんな暇があったらもっと気の利いたレスをつけてやりなよ。
0669デフォルトの名無しさんNGNG
我々はメンタリティの成長が不充分である!
0670デフォルトの名無しさんNGNG
俺って誰ですか?俺のこと?
0671デフォルトの名無しさんNGNG
>>670
俺だよ俺!
実は、今うっかりしてパケット落としちゃってさ、俺TCPだから落とし
ましたじゃ済まなくて…やばいよ、どうしよう…
とりあえず、大至急このポートに50万パケット送ってくれ!
0672デフォルトの名無しさんNGNG
>>671
このポートってどこですか?>>671で良いの?

つか、アドレスも教えてくんないと。
0673デフォルトの名無しさんNGNG
本当にパケット送りつける奴がいたら洒落にならないだろ
まあいないとは思うが
0674デフォルトの名無しさんNGNG
質問です。
WinSock1.1を使用しています。
WinSockは、プロクシサーバーへの接続動作をサポートしているでしょうか?

それともCInternetSessionに変更した方が良いでしょうか?

よろしくお願いいたします。
0675デフォルトの名無しさんNGNG
HTTPしか使わないならWinInet使ったほうが楽だろ。
0676デフォルトの名無しさんNGNG
>>663
過去スレ読んだら。
WinsockだけじゃなくてWindowsのversionも関係ある。
0677デフォルトの名無しさんNGNG
ライブラリに依存する質問になってしまいますが、MFCのCAsyncSocketのOnXXX()は、
どういう仕組みで呼び出されるのでしょうか?
もし、メッセージポンプを経て呼び出されるのなら、OnXXX()の中では長時間の処理が
出来なくなりますが、皆さんどう対処しているのでしょう?
0678677NGNG
ソース見てみました。
カレントスレッドのメッセージポンプを利用するみたいですが、あってますか?
もしかしてスレ違いでしょうか?
0679デフォルトの名無しさんNGNG
>>678
あってる
MFCライブラリの質問ならMFCスレのほうがいいと思う
0680677NGNG
>>679
ありがとう。
移動して再質問します。
0681デフォルトの名無しさんNGNG
質問

銀行に誰かが振り込んだ時、それを瞬時に知るための
プログラムって作れるでしょうか?
web上で入出金明細が表示される銀行だったら、html言語を
読み取って知らせるなんて可能でしょうか?

0682デフォルトの名無しさんNGNG
オレオレ詐欺用か
0683デフォルトの名無しさんNGNG
トロイでも仕込めば?
0684デフォルトの名無しさんNGNG
>>681
銀行側がそういう通知サービスでも提供しない限り現実的でない。
クライアント側からの監視はやめとけ。迷惑。いろんな意味で。
0685デフォルトの名無しさんNGNG
非ブロッキング通信について質問したものです。
皆様アドバイスありがとうございました。
それを参考に色々自分でもがんばってみようと思います。
0686681NGNG
>>682
>>684
デジタルコンテンツを運営予定のため
振込みの場合、すぐに反映させてユーザーがコンテンツを
使用できるようにしたいのです。



0687デフォルトの名無しさんNGNG
そういうのはそのサイトの銀行と相談しなよ。
上でも出てるけど能動的に振込みの確認するのって
へたすりゃDOS攻撃と大差ないから。

どういう形態だか知らないけど
クレジットカードとプリペイド型の専用通貨とか以外は
ある程度ユーザーに不便を強いるのも仕方ないと思うけどね。
0688デフォルトの名無しさんNGNG
だいたいにおいて銀行振り込みって、たいていバッチ処理じゃないの?
(最近のオンラインバンキングは違う?)

一日に一回くらいなら定期的に web にアクセスして html 解析、ってのも
まあアリだとは思うが、個人利用ならまだしも、まともな商用サイトで
やることじゃないわな。
0689デフォルトの名無しさんNGNG
Winsock2をメッセージで非同期動作させています。
ファイル送受信用の関数をスレッド化せずに、FD_WRITE発見時に送れるバイト数だけおくってしまおう、という実装を行っています。
これだと、ファイルの一部をバッファに読み出す間、同時に他のファイル送受信を処理できないように思えます。
パフォーマンス自体に大した差はでないと思うのですが、Winsock入門レベルなので心配です。
素直に、スレッド化したほうがいいのでしょうか、このままでいいのでしょうか。
よろしくお願いします。
0690デフォルトの名無しさんNGNG
FD_WRITE発見時というのがよくわからん。
あれは「sendに失敗した後、sendバッファがあいたら通達されるメッセージ」だぞ。
sendに失敗するほど一杯一杯にバッファ使いつづけるのか?
0691689NGNG
>>690
ありがとうございます。
いちおう、sendをまわしているループは、WSAWOULDBLOCKでループを抜ける、という感じにしています。
#ファイル送受信というか、独習用にHTTPサーバー/クライアントを書いています
0692デフォルトの名無しさんNGNG
バッファをソケットごとに用意すればいいってだけの話ではなくて?
0693689NGNG
>>692
ありがとうございます。
バッファリングのことでしょうか。
てか、バッファリングすればよかったんですね.....
確かに、固まるタイミングというか、同期処理になる部分はかなり小さくなりそうですね
気づきませんでした・・・・・・
0694デフォルトの名無しさんNGNG
> ファイルの一部をバッファに読み出す間、
って自分で言ってるやん
0695689NGNG
>>694
そうですね。。。
以前のというか、現在のは、バッファを必要最小限程度のサイズにしてました。
10M単位でのキャッシュっぽい使い方に気づかなかった、という感じです。
0696デフォルトの名無しさんNGNG
またでっかいバッファだな、おい。
0697689NGNG
>>696
でかすぎますかorz
1Mくらいでおとなしくしておきます。
ありがとうございます。
0698デフォルトの名無しさんNGNG
この会話って成立してたの?
0699デフォルトの名無しさんNGNG
ノーマネーでフィニッシュです
0700デフォルトの名無しさんNGNG
>>697
スレッド化うんぬんとあるけれど、要はあなたのHTTPサーバが同時に複数のクライアントに対し
ファイルを転送してあげたいが、どれか一つのクライアントの面倒を見ていると
他のクライアントに応答してあげられない。どうすればいいか?
という質問?

0701デフォルトの名無しさんNGNG
どこからHTTPが出てきたんだろう
0702デフォルトの名無しさんNGNG
>>701
>>691
0703デフォルトの名無しさんNGNG
>>701
はずかしいね
0704デフォルトの名無しさんNGNG
どこからって、お母さんのお腹に決まっているじゃない!シクシク
0705デフォルトの名無しさんNGNG
コウノトリとかキャベツとかって話は最近きかないな
0706デフォルトの名無しさんNGNG
>>705
それはお前の会話相手が大人だけだからだろう。
大人同士が真顔でコウノトリが、キャベツが、と会話してたらキモイ。
0707デフォルトの名無しさんNGNG
いやーこの前コウノトリが来てさぁ
0708デフォルトの名無しさんNGNG
やっちゃったよー
0709マイク ◆yrBrqfF1Ew NGNG
そもそも2chに入り浸ってるのがキモイ。
0710デフォルトの名無しさんNGNG
2chにコテハンで書き込んでるのはさらにキモイ。
0711デフォルトの名無しさんNGNG
こらこら、キモイの同士で煽り合うのは止めなさいw
0712689NGNG
>>700
ファイルの読み込みの部分をスレッド化しないと、メッセージを使ってブロックしない(という表現でいいのかはわかりません)ようにしても、その部分で固まるんじゃないかという質問です。
言い換えると、別のSoketからのFD_WRITEが、既にsendループで送信を行っている時に来た場合に、それをタイミングよく処理できるのか?という質問です。
0713デフォルトの名無しさんNGNG
ファイルからはじゃんじゃん読めるけど送信は遅いだろうから
じゃんじゃんsendすればすぐにでもWSAWOULDBLOCKになって
抜ける。んで、クラがそのタイミングで切り替わって、そいつの相手が出来るってつくり?

漏れが思いつくのはクラをacceptするたびにそのソケット用のスレッド一個作って、
そこでファイルを適当な単位で読み出しながら送信して、非同期未完了時は完了まで
WaitForSingleObjectとかで待って、FD_WRITEになったらまた読み出してsendする、というループにする。
終わったらclosesocketしてスレッドを抜けたらよいと思う。
このときファイルは読み出すだけだから複数スレッドから同時アクセス可能だし。

0714689NGNG
>>713
ありがとうございます。
やっぱりスレッド使うのが一般的ですか。
読み込み用のメソッド、ソレッド化できるように意識しながら書いてみます。
0715デフォルトの名無しさんNGNG
TransmitFile
0716デフォルトの名無しさんNGNG
>>715
Windowsだね。Linuxだとsendfile(2)。
ベンチがたくさんあるからぐぐってね。
0717デフォルトの名無しさんNGNG
>>713

ttp://www.hyuki.com/dp/cat_index.html#thread
Thread-Per-Messageパターン
Worker Threadパターン
Producer-Consumerパターン

一番単純な1スレッドで頑張るから初めて、

■ Thread-Per-Messageで並行性を高める(
■ Worker Threadでスレッド起動・停止の無駄を避ける

といったあたりを要件に応じて実装すべきでしょう。

RPC/RMIみたいにメッセージ志向のプロトコルの場合は、
Producer-ConsumerでConsumer側をマルチスレッドで
実装するとスケーラビリティの確保がしやすいかも。

それなりに複雑な実装になるけど、1〜2スレッドでProducerを
実装して、CPU数の倍程度のConsumerスレッドでリクエストの
処理を行うって形なんてのもありえるのでは?
0718689NGNG
>>715-716
ありがとうございます。
便利そうな関数ですね。
学習中なので、一度、力技でファイル送受信を記述して、動作が理解が出来たら使うことにします。

>>717
(横からすいません)
ありがとうございます。
winsockを扱うとなるとやはり、スレッドは一通り覚えておいたほうがよさそうですね..
1スレッド版が終わったら、Producer-Consumerって形に拡張してみようと思います。
0719デフォルトの名無しさんNGNG
0720デフォルトの名無しさんNGNG
rs232c出力で、無手順(ZMODEMでもないやつ)は英語で何と呼びますか?
0721デフォルトの名無しさんNGNG
non-procedure
0722デフォルトの名無しさんNGNG
サンクツ>>721

rs232c出力する機器があるんですが、
機器が無いのでそのシミュレーションをPC行いたいんです。

PCからバイナリファイルの内容をシリアル出力するフリーソフトなんかありますでしょうか。
0723デフォルトの名無しさんNGNG
で、質問に答えるとまた質問するわけか。
0724デフォルトの名無しさんNGNG
>>723
いえ、今度が最後の質問でつ。
0725デフォルトの名無しさんNGNG
>>722
ここはプログラム板だぞ?
自分で作れという言葉しかかけられないな
0726デフォルトの名無しさんNGNG
ところで、rs232cとnon-procedureの言葉はどういう関係なんでしょ。
RS422 というのもあるみたいですね。

>>725
コンポーネントみつけたので動作するものは数分で自作出来そうです。
画面直し入れると結局膨大な時間になるんですが。
0727デフォルトの名無しさんNGNG
で、質問に答えるとまた質問するわけか。
0728デフォルトの名無しさんNGNG
>>727
掲示板でつから。



ヤな人はnews-groupにでも炒ったらどうでつか。
0729デフォルトの名無しさんNGNG
不自然な言葉遣いでつね
726の自作自演で別人格を装ったのでつか?
0730デフォルトの名無しさんNGNG
典型的な教えて君かよ
0731デフォルトの名無しさんNGNG
なんだよ!
相談室って書いてあるのに質問して何が悪い!
あったまきた。
0732デフォルトの名無しさんNGNG
>>731
氏ね
0733デフォルトの名無しさんNGNG
>>731
氏ね
0734デフォルトの名無しさんNGNG
自演乙
0735デフォルトの名無しさんNGNG
>>662
×大本のスレッド
○大元のスレッド
0736デフォルトの名無しさんNGNG
>>735
辞書で、大本と大元を調べてみましょう。
0737デフォルトの名無しさんNGNG
おおほんだ おほ― 3 【大本多】


本多髷(まげ)の形の大きなもの。



三省堂提供「大辞林 第二版」より
0738デフォルトの名無しさんNGNG
だい-げん(大元)
「大元帥明王」の略。

大辞林
0739デフォルトの名無しさんNGNG
プログラマって無知な上に拘るから国語ネタに食いつきがいいね。
続きはこちらへ
http://pc5.2ch.net/test/read.cgi/gamedev/1083728025/
0740デフォルトの名無しさんNGNG
やはりあちらの住民が暴れていたのか。
ほんとと迷惑だよな。
0741デフォルトの名無しさんNGNG
>>722
んなもん、ネットワークプログラミングじゃねーよ。
TeraTermの中でstdin/stdoutを読み書きするプログラム書けよ。
0742デフォルトの名無しさんNGNG
質問です。
制御パケットのやり取りをする場合ってサイズどれくらいに抑えた方が
スピードが速いですか?
Winsockですが


0743デフォルトの名無しさんNGNG
下手な考え休むに似たり。
0744デフォルトの名無しさんNGNG
MTUサイズ内に抑えると一度に全部受け取れるから超お勧め
0745デフォルトの名無しさんNGNG
>>722
copy ファイル名 com1:
0746デフォルトの名無しさんNGNG
>>744
そのネタ秋田
0747742NGNG
MTUもたしかに一要因になりそうですね。
ちょっと言葉たらずすぎましたすいません。
通信する2点はけっこう長距離で経由するルータとかそのあたりの回線
状況とか考慮した場合に一般的に効果が一番期待できそうなサイズ
ってことです。
小さければ小さいほどいいですがそれだと通信できる情報が減ってしまうので
非効率になってしまいますよね
その辺のバランスの取れたサイズってどの辺りが一番適正なんだろうっていう
疑問です。
0748デフォルトの名無しさんNGNG
馬鹿は何も考えずにただTCPを使え。
0749デフォルトの名無しさんNGNG
>>748
UDPならサイズは関係ないってことですか?
0750デフォルトの名無しさんNGNG

   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |       UDP
/     ∩ノ ⊃  ヽ  
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
0751デフォルトの名無しさんNGNG
LANを通る場合、実はUDPもTCPもそれほどスピードに差は無いらしいが。
なんでもLANを通るときに仮想接続というのを作ってパケットを流すが、
この仮想接続を開いたり閉じたりするのに多少のオーバーヘッドがある。
そしてUDPの場合は一つのパケットにつき、仮想接続を一回開/閉するが
TCPは一回だけだと。だから両者では差がほとんど無くなると。
0752デフォルトの名無しさんNGNG
0753デフォルトの名無しさんNGNG
最近ソケットプラグラムを覚えたんだけど分からない事があるんで質問させて。
構造体のデータをそのまま送受信するにはどうすればいいのでしょうか?
たとえば
struct data
{
int d1;
int d2;
int d3;
} send_data;

send_data.d1 = 10;
send_data.d2 = 20;
send_data.d3 = 30;
のような構造体データを送信するのに
send(socket,&send_data,sizeof(send_data),0);
としても正常に送信出来ないのですが・・・
0754デフォルトの名無しさんNGNG
>>753
素直に単体で送れ
0755753NGNG
>>754
単体で送るって事はつまり
send(socket,&d1,sizeof(int),0);
send(socket,&d2,sizeof(int),0);
send(socket,&d3,sizeof(int),0);
って事?
0756デフォルトの名無しさんNGNG
どういう結果から正常に送信できないと判断したのかくらい書けよ。
0757デフォルトの名無しさんNGNG
>>753は、ただの釣り。
相手にすんな、お前ら。
0758デフォルトの名無しさんNGNG
>>753
どうして正常じゃないと思うのかを説明しないと
なんとも。sendシステムコールがエラー返すのか
正常終了するけど何もでないのか、送られてる
けど内容が期待したものとではないのか等々。
0759デフォルトの名無しさんNGNG
構造体のまま出すと
・プラットフォームで構造体のバイナリレイアウトが異なるので正しく取れない。
・プラットフォームでエンディアンが異なり、intなどのバイナリオーダーが逆転するなど起きる。

とおもう。
0760デフォルトの名無しさんNGNG
>>756
失礼。受信側のコードは下記のようにしました


bufsize = sizeof(data);
char buf[bufsize];
int D1,D2,D3;

recv(socket,buf,bufsize,0);
D1 = ((struct data*)buf)->d1;

これでD1に構造体のd1を取り出そうとしたのですが全く意味の無い数字が
入ってしまいます。

>>757
は?
0761デフォルトの名無しさんNGNG
>>751
それって、FAQの5.1のこと?
ちょっと違うような気が。
0762デフォルトの名無しさんNGNG
>>760は戻り血とかいっさいチェックしてないってオチ?
0763ネットワーク系初心者NGNG
Ethernetフレームは、プロトコルデーターサイズが最低 46 byte てのがどうも決まって
いるようなのですが、Linux/NetBSDで ping datasize 1 を試した時に tcpdump や
EtherReal等で、パケットトレース&ダンプ表示すると送信方向には46byte以下のフレームで
受信方向ではゴミデーターが後ろにひっついて 46 byte で受信してるんですが、
これはなんでか分かる人いませんか?
0764デフォルトの名無しさんNGNG
bufsize = sizeof(data);
char buf[bufsize];

ってあまり見ない書き方だね、って俺だけ?
#gccか何かの拡張書式?
0765デフォルトの名無しさんNGNG
C99
0766デフォルトの名無しさんNGNG
というか普通だと思ったけど・・・
0767デフォルトの名無しさんNGNG
時代は変わったんだな
0768742NGNG
LANがボトルになってるなら751の関連で無視できる範囲なのかな
ルータでパケット分割が発生したときのオーバーヘッドとかどうなん
だろう?不達発生率とかは?
大量のデータのやり取りでも無視できる範囲なら誰かそう言って下さいな
ちなみにRealPlayerは500-600で
WMP数kだそうです

>>756
それってネットワーク部分じゃなくてCの論理エラーじゃない?
0769デフォルトの名無しさんNGNG
>>766
ネタ?
それともこの板ってこんなことも訂正されないほどレベルが下がってたのか。。
0770769NGNG
・・とおもったら本当に可変長配列ってあったんですね。
単に漏れのレベルが低いだけですた。。。
0771デフォルトの名無しさんNGNG
昔はgccの独自拡張だった気がするニャ
0772デフォルトの名無しさんNGNG
>763
送信機でパケットトレースしたんでねーの。
パケットを46バイトにする仕組みが、パケットキャプチャレイヤより
下に有れば、そういうことになるとおもうが。
0773デフォルトの名無しさんNGNG
RS232Cのフラグ文字(コード19)とは何でしょうか。

他にも制御コードがあるみたいですが、一覧表でもあれば...
0774デフォルトの名無しさんNGNG
普通だと思った

↑これはネタだろ。
0775デフォルトの名無しさんNGNG
>>773
ttp://www.robelle.com/library/smugbook/ascii.html
こんな感じ?
ANSI Character Setとかで検索すれば見つかりそうだが
0776デフォルトの名無しさんNGNG
man ascii
0777デフォルトの名無しさんNGNG
777get
0778デフォルトの名無しさんNGNG
PSOの様にロビーサーバを中継して、クライアントが部屋を作りサーバを
立ち上げ、そのサーバに他のクライアントが参加するという形のゲーム
を作成しています。

ルータを中継しているマシンはポートフォワーディングの設定をして
いないと、サーバとして立ち上げても他のクライアントからconnect
要求を受け付けないのでサーバになれません。
どうにかしてポートフォワーディングの設定をしていないマシンでも
サーバになれるようにしたいのですが、可能なのでしょうか?
通信にはwinsockを利用しています。
0779デフォルトの名無しさんNGNG
>>763
最近の NIC ではチップの方で IP Checksum 計算してくれる機能とかもあるくらいだから、
ボードによっては OS 側ではパディング位省略できるものが普通にあるんじゃない?
0780デフォルトの名無しさんNGNG
>>751
>なんでもLANを通るときに仮想接続というのを作ってパケットを流すが、
>この仮想接続を開いたり閉じたりするのに多少のオーバーヘッドがある

そーいうのは普通 WAN っていう。
んで仮想接続をキープして LAN 風にするのを VLAN とか言う。
0781デフォルトの名無しさんNGNG
>>742
DNS は 500 バイトだか 512 バイトを使ってる。真似しておくのがいいのでは?
マジメにやるなら DONT FRAGMENT ビットの立った長めのパケットをやりとりして、
その経路の MTU を調べるのが良いような気がする。
0782デフォルトの名無しさんNGNG
>>718
遅レスだけど、Windows NT 系 OS だけで動けばいいんなら、
ファイルを送信する場合に効率最大なのは IO コンプリーションポート+TransmitFile 。
カーネル空間 -> ユーザ空間 -> カーネル空間という無駄なデータコピーのオーバーヘッドもないし。

IO コンプリーションポートってのは、WinNT 系の非同期 IO 機能で、非同期で呼び出されたIOが完了すると
どこかに用意されていたスレッド(こういうのをスレッドプーリングっていいます)でおもむろに登録していた
完了処理が呼び出されるという仕掛けです。
0783デフォルトの名無しさんNGNG
>>778
UDP Hole punching!!で逝け
0784デフォルトの名無しさんNGNG
>>783
ゲームサーバとしてはオススメできない気はするけどね(^^;
0785デフォルトの名無しさんNGNG
>>784
その理由は?
0786デフォルトの名無しさんNGNG
>>785
仕組み上、一対一でもいつまで記憶しているかわからないルータ等の
UDPの転送を頼らないといけないのです
多くの接続があると思われるサーバ用途となると、XXのルータでは動いたとか
動かなかったとかのレベルになってしまうわけです
またUDPでそんな多くの情報となると、よほどうまく作らないとデータの欠けや再送
も辛くなりますね
0787デフォルトの名無しさんNGNG
アフォ登場
0788デフォルトの名無しさんNGNG
>>787
後学のために、その理由を教えてくれませんか?
0789742NGNG
>>781
500もあればたいていの制御情報は送れるからいいかな
たしかに実測で可変にするって手もありますね
組むの大変そうだけど

>>783
ゲームってことは万人に繋がらないといけないわけでしょ?
LAN内にいるPCとかはどうするの?
MACで無理やりパケット飛ばせるんだっけ?
ハッカーが使いそうな手ですねw


0790デフォルトの名無しさんNGNG
二人目のアフォ登場
0791デフォルトの名無しさんNGNG
>>786
>仕組み上、一対一でもいつまで記憶しているかわからないルータ等の
>UDPの転送を頼らないといけないのです
がんばれ

>多くの接続があると思われるサーバ用途となると、XXのルータでは動いたとか
>動かなかったとかのレベルになってしまうわけです
仕様ということに仕様
ていうかSkype並に繋がるならまあオッケイ?みたいな感じ?みたいな

>またUDPでそんな多くの情報となると、よほどうまく作らないとデータの欠けや再送
>も辛くなりますね
TCPの真似をすればいいだけだ。超がんばれ

でもまああれだよね、こういうのに対応したライブラリなんか聞いたこと無いから
一から開発はきっと大変よね、間違いない

>>789
>ゲームってことは万人に繋がらないといけないわけでしょ?
うん
>LAN内にいるPCとかはどうするの?
うん
>MACで無理やりパケット飛ばせるんだっけ?
マカー?
>ハッカーが使いそうな手ですねw
バッカー?
0792デフォルトの名無しさんNGNG
何も分ってない791に激萌え
0793デフォルトの名無しさんNGNG
791の馬鹿が露呈しましたw
0794デフォルトの名無しさんNGNG
三人目のアフォ登場
0795デフォルトの名無しさんNGNG
具体的場所を指して馬鹿だのアフォだの分かってないだの言って欲しいなぁ
0796デフォルトの名無しさんNGNG
>>795
彼らも根拠が示せないから仕方が無いよ
0797デフォルトの名無しさんNGNG
そんな事しなくてもUPNPを使えばいいよ
0798デフォルトの名無しさんNGNG
SOCK_DGRAMってどう発音すればいいですか?
0799デフォルトの名無しさんNGNG
>>798
SOCK_DGRAM と発音します。
0800デフォルトの名無しさんNGNG
>>799
それは英語で書くとどのようになりますか?
0801デフォルトの名無しさんNGNG
>>800
そけっと だいあぐらむを英語にして下さい。
0802デフォルトの名無しさんNGNG
>>801
朝からおバカな質問につきあっていただき
ありがとうございました。m(_ _)m
0803デフォルトの名無しさんNGNG
英語にすると、socket datagramとなるわけだがな。
0804デフォルトの名無しさんNGNG
相変わらず雰囲気が最悪だな。
0805デフォルトの名無しさんNGNG
>>798
速攻ダグラム
0806デフォルトの名無しさんNGNG
本スレ
http://pc5.2ch.net/test/read.cgi/gamedev/1078434119/
0807デフォルトの名無しさんNGNG
>>789の、
>MACで無理やりパケット飛ばせるんだっけ?
ってのは、MACアドレス?
だとすると、クライアントがサーバのMACアドレスがわかり、
かつ途中の経路のARPテーブルに
そのMACアドレスが正しく登録されてたら
LAN内までパケットルーティングされる、って話?

正直ネットげーでの利用は非現実的だ。
0808789NGNG
>>807
Wake Up On Lan みたいなもんかと思ってた
UDP Hole punchingちゃんと調べてみたけど
いちから作るの大変そうだね、作ったらほしいくらいですが
uPnP使ったほうが現実的な気がする

提案なんだけど、uPnPもってるのがいようがいまいが
第三者かゲームで対戦するだれかがサーバするってことにしとけば
ほぼ、つながらない環境なくなるよね
サーバが落ちた時の工夫が必要だけど
0809778NGNG
色々とアドバイスありがとうございます。
通信の仕様についてはskypeの前例もあることですし気合で
UDP Hole punchingを実装してみたいと思います。
周りの人間達は「ポートフォワーディング?uPnP?知らん。俺windows2000
だし、ゲームのためにそんなの設定するの嫌」といった人も結構いたので。

>仕組み上、一対一でもいつまで記憶しているかわからないルータ等の
一応、再送頻度が高ければなんとかなるみたいです、あるルータは60秒
以上データが来ないと記憶消去するとか。
0810デフォルトの名無しさんNGNG
>>809
がんがれ
UDP Hole Punching自体は仕組みを理解していれば簡単だ。
信頼性がほしいとなると実力次第だけど。
0811デフォルトの名無しさんNGNG
差出人、順序等不明の手紙を大量に受け取るのにすべて正常に送り返さないといけない中の人も大変だ
0812デフォルトの名無しさんNGNG
>>809
よくぞ言ってくれた!
実装が成功したら是非ライブラリ化してくださぁ〜い

>>811
面白い例えだね
でも手紙の裏面にちゃんと書いてあればいいってことでそ
0813デフォルトの名無しさんNGNG
Javaでステルススキャンするにはどうしたらよいのでしょうか?
そもそもそんなことできないのでしょうか?
どなたかお願いいたします。
0814デフォルトの名無しさんNGNG
おまえには無理
0815デフォルトの名無しさんNGNG
じゃあおまえにはできるのか?
0816デフォルトの名無しさんNGNG
無理に決まってるだろw
0817デフォルトの名無しさんNGNG
おれには無理
0818デフォルトの名無しさんNGNG
Java で RAW ソケットが扱えるなら簡単。
0819デフォルトの名無しさんNGNG
SOCKADDR_IN socka;
と言うのがありまして。
この変数にきちんと値が指定されてるかどうか調べたいのですが、どうすればいいのでしょうか?
if(socka==NULL)
とかすると、'==':型'SOCKADDR_IN'の左オペラントを扱う演算子が見つかりません
と出ます。
0820デフォルトの名無しさんNGNG
↓
0821デフォルトの名無しさんNGNG
↑
0822デフォルトの名無しさんNGNG
>>819
無理。
先に
socka.sin_port==0;
とかやっといて、それが変わってるかどうかで判別汁
0823デフォルトの名無しさんNGNG
そりゃそうだ、ポインタになってないからね
winsock使う範囲でそんな判定必要になったことないけどね
0824822NGNG
ごめ、=が1個多い。
0825デフォルトの名無しさんNGNG
ネットワークプログラミング以前の問題なので、
C言語のスレにでも行って初歩から勉強してください。
0826デフォルトの名無しさんNGNG
>>825
どの質問の事?
ちと遅すぎやしないか?(苦笑
0827デフォルトの名無しさんNGNG
まー、Winsock限定の質問って正直ありえないんだけどね。
プログラマにとってCのコードの集合体がWinsockであって、そのブラックボックスの中はプログラマが触る事はないから…

そこまで言ってしまったら、Winsockの関数の使い方だって、Cの関数の使い方の質問になるしw
0828デフォルトの名無しさんNGNG
>>827
さっさと失せろ、知ったかぶり。
0829マイク ◆yrBrqfF1Ew NGNG
>さっさと失せろ、知ったかぶり。

多くのネラに言えそうだな(▽
0830デフォルトの名無しさんNGNG
>>829
0831デフォルトの名無しさんNGNG
自分のIPアドレスを
192.168.1.1
の形式のNULL文字終端の文字列として取得したいのですが
どうすればいいでしょうか?
Windows2000を使用しています。
0832デフォルトの名無しさんNGNG
言語くらい書け。
0833あNGNG
すいません。ちょークソ初心者なんですが、
HSPで、bmpファイル等を画像専用に作成したフォルダ等に入れると
picload等で実行した時に、エラー13でファイルが読み込めないのですが
何故でしょうか。
フォルダ内にあるファイルには、特別な命令が必要なんでしょうか。
どうかご指導お願いします。
0834デフォルトの名無しさんNGNG
>>833
眼科や精神科をお勧めする
0835あNGNG
え、そんなアホっぽいくらい簡単なことなんですか?
0836デフォルトの名無しさんNGNG
>>832
C
0837デフォルトの名無しさんNGNG
パスが違うってこと?
HSPちょー初心者だからわからんけど
でも激しくスレ違い
0838デフォルトの名無しさんNGNG
>>831
gethostbynameでlocalhostとって
それを文字に展開すればいい
詳しくはgoogleにて
0839デフォルトの名無しさんNGNG
>>838
そこまではやっています。
hostent*
からどうやって(ry
0840デフォルトの名無しさんNGNG
hostent型までたどり着いているのに・・・
0841デフォルトの名無しさんNGNG
0xFFFFFFFFを自力で
255.255.255.255
にするんですか?
簡単だけど、よさげな関数はないの?
0842デフォルトの名無しさんNGNG
inet_ntoa
0843デフォルトの名無しさんNGNG
inet_ntoaの引数を調べてから物言えよ
0844デフォルトの名無しさんNGNG
>>843
あふぉですか?
ip = (IN_ADDR *)host->h_addr_list[0];
inet_ntoa(*ip)

hostはHOSTENTね;
0845デフォルトの名無しさんNGNG
アフォだからきいてんじゃんよ

おまいこそアフォですか?
0846デフォルトの名無しさんNGNG
h_addr_listの型を調べてから物言えよ
0847デフォルトの名無しさんNGNG
それが人に物を聞く態度か
0848デフォルトの名無しさんNGNG
>>846
中身を見てから物言えよ
0849デフォルトの名無しさんNGNG
じゃあついでにもうひとつ
gethostnameに渡すバッファは何バイト確保するの?
0850デフォルトの名無しさんNGNG
ようやく>>819に戻ったようで。
0851デフォルトの名無しさんNGNG
C++のネットワークプログラミングの本、日本語ではほとんどないね。
0852デフォルトの名無しさんNGNG
>>849
INT_MAXバイト
0853デフォルトの名無しさんNGNG
>>851
標準クラスがないからな・・・
stl, boostより先にやることがあるだろ
0854デフォルトの名無しさんNGNG
ACEがあるじゃん
本も出てるし
0855デフォルトの名無しさんNGNG
あれ糞っていうかデファクトスタンダードですらないし
0856デフォルトの名無しさんNGNG
じゃあC++でのportableなネットワークライブラリのデファクトスタンダードは何?
0857デフォルトの名無しさんNGNG
>>856
ないからこういう話になってるんじゃないの?
0858デフォルトの名無しさんNGNG
bind時に渡すsockaddrでアドレスとポートを指定しますが、
アドレスを指定するのはマシンにIPアドレスが2つ以上割り当てられているときに、
どちらを使うかを選択するという考えでよいのでしょうか?
0859デフォルトの名無しさんNGNG
>>858
そう。だからINADDR_ANYがある。
0860デフォルトの名無しさんNGNG
>>859
なるほど。
ありがとうございます。
0861デフォルトの名無しさんNGNG
ハードディスクレコーダーがspamの踏み台にされたそうですが、
デジタル家電に何があれば踏み台にされるんでしょうか?
偉い人教えて下さいでつ

i) TCP/IPでLANに繋がれば、そく
ii) Webブラウザ搭載
iii) 外部ウェブブラウザで機器の設定が出来る機器(Webサーバーか)
iv) Proxy Server機能がある場合のみ
0862デフォルトの名無しさんNGNG
>>861
踏み台にされる要因があれば、そく
0863デフォルトの名無しさんNGNG
サンクス>>862

次に、踏み台にされる要因を分かりやすく定義しる!
0864デフォルトの名無しさんNGNG
組み込みLinuxなんかに意図せず串機能が入っちゃうんだろうかね。
0865デフォルトの名無しさんNGNG
ttp://nlogn.ath.cx/archives/000288.html
これか〜。最近のビデオデッキは便利になったものよのう
0866デフォルトの名無しさんNGNG
メーカーが責任持って原因と対策を分かりやすく説明しる!
0867デフォルトの名無しさんNGNG
firewallソフトってのがどういう構造なのかということが知りたくて自分で
つくってみたいと思ったんですが。linuxとC言語で参考になるサイトなど
があれば伝授してください。お願いします
0868デフォルトの名無しさんNGNG
>>867
ttp://www.forest.impress.co.jp/article/2000/02/22/wallpaper.html
0869デフォルトの名無しさんNGNG
作れる人は参考になるサイトくらいわかる
ってくらいのレベル
0870デフォルトの名無しさんNGNG
>869
出直してきます(涙
0871マイク ◆yrBrqfF1Ew NGNG
>>867
NDISとかTDIとか昔調べたが全然わからんかったな。
0872デフォルトの名無しさんNGNG
http://nlogn.ath.cx/archives/000288.html
http://www.forest.impress.co.jp/article/2000/02/22/wallpaper.html
0873デフォルトの名無しさんNGNG
FTPのプロトコルを調べていて疑問に思いました。
データ転送用のコネクションは、クライアント側がサーバーから
接続してくるのを待つらしいのですが、これだとLANの中から
FTPにつなごうとすると上手く動かないような気がします。
だけど、実際には問題なく動作しています。
なにか考え違いをしてるでしょうか?
0874デフォルトの名無しさんNGNG
>>863-864

もヨロ
0875デフォルトの名無しさんNGNG
>>873
考え方は合ってる
FTPはよく使われるのでルータがうまいことやってくれる
最近はパッシブモードもよく使われる
0876デフォルトの名無しさんNGNG
HTTPに対するFTPのアドバンテージってなんかあるの?
0877デフォルトの名無しさんNGNG
>>876
実装が楽
0878デフォルトの名無しさんNGNG
>>877
Indyライブラリ使えばおんなじだって。
0879デフォルトの名無しさんNGNG
なんでHTTPとFTPを同列で比らべなきゃならんのじゃ
0880デフォルトの名無しさんNGNG
だって機能的にHTTPってFTPのスーパーセットみたいじゃん
今FTPを使うメリットってなんかあるの?
vectorとかもデフォルトHTTPでダウンロードだし。
0881デフォルトの名無しさんNGNG
ftpクライアントでWebページの更新とかやったことあればわかると思うけどなー
0882デフォルトの名無しさんNGNG
サーバ間で転送ができるとか
最近は脆弱性扱いだけどな
http://katsu.watanabe.name/doc/ftp/aboutpassive.html
0883デフォルトの名無しさんNGNG
>>880
ベクターのデフォはftpだけど。
0884デフォルトの名無しさんNGNG
HTTPはファイル毎にヘッダが入るから非効率
FTPのがサーバ側の構造が単純なのでレスポンスが早い
FTPはたくさんファイルがある時にディレクトリ管理できる
0885デフォルトの名無しさんNGNG
2chのdatもftpにおきゃいいのに
0886デフォルトの名無しさんNGNG
コネクション貼るのに時間かかるじゃんFTP
0887デフォルトの名無しさんNGNG
>>884
ftpはファイルが途中で壊れる事もしばしば。
パフォーマンス優先のために品質が犠牲になってる。
複数ファイルを一度にダウソすることなどほとんどなく、
書庫ファイルでのダウソが多いのでヘッダーなどどうでもいい。
0888デフォルトの名無しさんNGNG
ftpでファイルを公開しているサイトは、貧乏神が取り付いていると思う。
0889デフォルトの名無しさんNGNG
コネクション張るのに時間かかろうがしったこっちゃない
サーバ運営者の都合なんだから
アクセス集中したらHTTPなんて機能すらしない
0890デフォルトの名無しさんNGNG
FTPも機能しないじゃん。
コネクション貼りっぱなしで2本使うから余計リソース消費が激しい。
0891デフォルトの名無しさんNGNG
FTPよりHTTPのkeep-aliveのがナンボかマシっぽい
0892デフォルトの名無しさんNGNG
>パフォーマンス優先のために品質が犠牲になってる
この根拠は何?
httpだと別にチェックサムかなんか送んの?
0893デフォルトの名無しさんNGNG
このスレもこの時間だとRFCも読めないアフォしかいないな。
0894デフォルトの名無しさんNGNG
         -、            ,.-、
        ./  .\          /  ヽ
       /    ;ゝ--──-- 、._/    .|
       /,.-‐''"´          \   |
     /                ヽ、 |
    /  ●                ヽ|
     l       (_人__ノ         ●   l いや、そんな事言われても
    .|  ´´    |   /            |             ワテ猫やし
     l        ヽ_/         ´´  l
    ` 、                    /
      `ー 、__              /
          `'''ー‐‐──‐┬‐‐'''""
           /      |
           /        |
0895デフォルトの名無しさんNGNG
説明できる能力がないなら黙ってていいよ
0896デフォルトの名無しさんNGNG
今時FTPでアーカイブを一般公開するのは、IT負け組。
ほぼ間違いない(w

PDFで文書をWeb公開する企業は、ある意味IT勝ち組。
というより、ITをあまり必要としてないから、逆説的勝ち組。
0897デフォルトの名無しさんNGNG
>>887
httpのほうが「品質」が良いってどういう意味?
データをそのまんま流してるだけで、エラー訂正機能とかあるわけじゃないよね。
0898デフォルトの名無しさんNGNG
このスレ猫しかいないな
0899デフォルトの名無しさんNGNG
エラー訂正機能がftpにはあるとでも?
送信途中で失敗しても成功したかのように振舞う厄介なftpがそんなに好きなのかい?
0900デフォルトの名無しさんNGNG
振る舞わないよ
0901デフォルトの名無しさんNGNG
どこがネットワークプログラミングだ
0902デフォルトの名無しさんNGNG
引きこもりしかいない時間だから仕方ないよ
0903デフォルトの名無しさんNGNG
>>900
経験が浅いね。
0904デフォルトの名無しさんNGNG
>>902
いや、猫だよ
0905デフォルトの名無しさんNGNG
今時ファイル転送にftpなんて使ってる奴はアホ。
scp使えよ。
0906デフォルトの名無しさんNGNG
>>903
余程アフォなクライアントとサーバ書いたんだね
0907デフォルトの名無しさんNGNG
>>906
自分で書いたことなくて、ftpコンポーネントみたいなのを使ってると思われ。
0908デフォルトの名無しさんNGNG
LAN(TCP/IP)に繋がってる機器のOSを問い合わせる方法を教えて下さい。
0909デフォルトの名無しさんNGNG
無い
0910デフォルトの名無しさんNGNG
ポートスキャンして推測
0911デフォルトの名無しさんNGNG
FTPに対応するHTTPを使う規格といえばWebDAVだろ?
あんなのどこがいいのよ
0912デフォルトの名無しさんNGNG
>>908
smbとかhttpとかとりあえずOS吐く可能性があるプロトコルを片っ端から試してみる。
0913デフォルトの名無しさんNGNG
簡易DB的に使えるところ
0914デフォルトの名無しさんNGNG
>>908
利用している人に口頭で聞きに行く
0915デフォルトの名無しさんNGNG
お前ら
0916デフォルトの名無しさんNGNG
はバカ
0917デフォルトの名無しさんNGNG
>>908
その機器が回答するように設定しておく
0918デフォルトの名無しさんNGNG
nmapで調べられるよね。どうやっているんだろう?(^o^)
0919デフォルトの名無しさんNGNG
12:00:00
0920デフォルトの名無しさんNGNG
12:00:45
0921デフォルトの名無しさんNGNG
ここはあぼーんスレですか?
0922デフォルトの名無しさんNGNG
>>921
http://2chplus.2ch.net/superfree/
0923デフォルトの名無しさんNGNG
>>922
意味が分からないにもほどがある。いったいなんだよそれ。
0924デフォルトの名無しさんNGNG
誰でもあぼーんできる板
0925デフォルトの名無しさんNGNG
>>923
誰でも削除できるからあぼーんばっかりの板。
0926デフォルトの名無しさんNGNG
>>875
ルーターが、PORTコマンドを書き換えて相手に送るとか、
そこまでやってくれるってことですか?
なんか、すごいかも。
0927デフォルトの名無しさんNGNG
すごくもないべ
0928デフォルトの名無しさんNGNG
うちのネコでもできっぺ
0929デフォルトの名無しさんNGNG
ping <ipアドレス>
すると正しく応答しますが、

ping <Windowsマシン名>
すると、違ったIPに問い合わせた上、Request timed out.します。

サーバーのWINSの動作がおかしいのか、
氏にかけのネット機器(自社製)が半応答してるのか、
原因が分からず困っています。

どうやって調べて逝けばよいのでしょうか?
0930929NGNG
補足ですが、

>ping <Windowsマシン名>すると、違ったIPに問い合わせた上、

これは、コンソールに Pinging <マシン名> [XXX.XXX.XXX.XXX] with 32 bytes of data:と出て、
かつ、XXX.XXX.XXX.XXXのIPが違っていることが分かりました。
0931デフォルトの名無しさんNGNG
原因特定の基本は最小構成
0932デフォルトの名無しさんNGNG
>>929
1. 再起動する
2. Ethereal でパケットキャプチャを開始する
3. ping <Windowsマシン名>とする
4. Ethereal でパケットキャプチャを停止する

でパケット眺めれば、直接の原因はたぶんすぐわかると思う。
0933929NGNG
サンクスでつ>>932

Etherela(いーさ・りある?)凄いでつね。画面もカコイイし、Javaなんかな。
ping開始から、変なIPにARPプロトコルでBroadcastする前まで、
やりとりはDNS Serversの2つめ or Secondary WINS Server(DNSとWINS兼用サーバのため、どちらのサービスとして問い合わせたのか分からない)とのみ、
SMBプロトコルでやりとりしてることが分かりますた。

サーバーマシンの画面見ればなんか分かるんだろうか。
0934デフォルトの名無しさんNGNG
単に同じ名前のマシンがいるだけだったりして
0935929NGNG
>>934
PCだけでなくて、ITRON/TCPスタックの機器まであって。
見渡した限りでは機器じゃないし、Windows PCが半死に状態で応答してるとも思えないし。
pingも応答しない機器のOSなんて調べられないですよね。
0936デフォルトの名無しさんNGNG
DNSのレコードをなぜみないのかと
0937デフォルトの名無しさんNGNG
まあどうしてもわからなければlmhosts書き込んでやったら回避はできますよ
0938929NGNG
レスサンクスでつ。とりあえず、管理者にお願いしてサーバーPCみてみます。
現象を消すよりも、犯人特定が重要で。

SMBプロトコルで通信してるということは、
そのサーバーにDNSサービスではなくて、
WINS サービス(なぜかSecondary)として問い合わせてる、
と確定しちゃって良いんですよねぇ。
0939929NGNG
>lmhosts書き込んでやったら回避はできますよ

あ、そうなんですか。
たとえ他で同じ現象が出たとしてもサーバーいじれば何とかなるのか。
0940デフォルトの名無しさんNGNG
有効なのは書き込んだPCだけですけどね
0941デフォルトの名無しさんNGNG
linuxでTCPで通信する際に、テストとして再送が発生するようにしたいのですが、
ドライバ辺りで意図的にパケットロスを発生させる方法はありますか?
できれば一定の確率とか一定のパターンでパケットが落ちるように設定できるやつ
ないでしょうか?
0942デフォルトの名無しさんNGNG
間にLinuxのルータを立てて
パケットロストや遅延を発生させることができるらしい。
キーワードとかは知らないけど。
0943デフォルトの名無しさんNGNG
linee あたりでできないかな? bridgeだけど。
0944デフォルトの名無しさんNGNG
0945デフォルトの名無しさんNGNG
このスレを読んで
2chに自動カキコするスクリプトを書くことを決意した。
よしやるぞ
0946デフォルトの名無しさんNGNG
氏ね^^
0947デフォルトの名無しさんNGNG
>>945
応援するよ
0948デフォルトの名無しさんNGNG
>>945
2chの約八割はもうすでに人口無能による自動レスなわけだが
0949デフォルトの名無しさんNGNG
>>948
オマエモナー
0950945NGNG
作ったぞ perlで100行くらいで出来た

Cookieの対処でハマったけど
ProxomitronってソフトでやりとりしてるHTTPヘッダー覗いてみたら
Cookieはサーバーが要求してクライアントが送るんじゃなくて
アクセス時にクライアントが最初っから送りつけてることに気がつき
そのように記述したらサクっと書き込めた

あとは302 FoundだけどこれはHost情報を送ってやったらうまくいった

板一覧やスレ一覧を取得してやれば簡単な2chブラウザが作れるかも
やってみるかなぁ
0951デフォルトの名無しさんNGNG
その話を聞いているとガクブルしてくるんだが・・・・
漏れの予想では開発を中止する、になると思う
0952デフォルトの名無しさんNGNG
無差別スクリプト嵐なんて昔からあったじゃん
ム板も荒らされたし
0953941NGNG
>>942, >>943
サンクスコ。
これって中間のホストなしでできないかなぁ・・・。
0954デフォルトの名無しさんNGNG
ターゲットはぜひ、大規模Off板に
0955デフォルトの名無しさんNGNG
>>953
netfilterでuserspace packet handlerを書く。(ここは板に合っている)
一台でやるにはdouble NATを。(ここは板違い)
0956デフォルトの名無しさんNGNG
あ、この辺ね。
http://www.netfilter.org/documentation/index.html#documentation-howto
0957デフォルトの名無しさんNGNG
0958デフォルトの名無しさんNGNG
おまいら、知ったかぶりかどうか知らんが結構詳しいよな?
どうやってその知識を得たんだ?

やっぱり、ヲタク?
0959デフォルトの名無しさんNGNG
>>958
                | ̄``''- 、
                |      `゙''ー- 、  ________
                |    ,. -‐ ''´ ̄ ̄`ヽ、_        /
                |, - '´ ̄              `ヽ、     /
              /               `ヽ、ヽ   /
             _/                    ヽヽ/
           / / /   /  /  /            ヽハ
          く  / /!   |   〃 _/__ l|   | |   |  |  | | ||ヽ
           \l// / |  /|'´ ∧  ||   | |ー、||  |  | l | ヽ
            /ハ/ |  | ヽ/ ヽ | ヽ  | || /|ヽ/!  |/ | ヽ
            / |  ||ヽ { ,r===、   \| _!V |// //  .!   |
            | ||   |l |ヽ!'´ ̄`゙   ,  ==ミ、 /イ川  |─┘
            | ハ||  || | """ ┌---┐  `  / //  |
            V !ヽ ト! ヽ、    |     !    / //| /
               ヽ! \ハ` 、 ヽ、__ノ    ,.イ/ // | /
    ┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/
    |(/(/(/(/(/(/(/(/(/(/│||      |\  〃
  r'´ ̄ヽ.              | | ト    /    \
  /  ̄`ア             | | |  ⌒/     入
  〉  ̄二) 知ってるが    | | |  /     // ヽ
 〈!   ,. -'                | | ヽ∠-----', '´    ',
  | \| |   .お前の態度が   | |<二Z二 ̄  /     ',
  |   | |               _r'---|  [ ``ヽ、      ',
  |   | |   気に入らない >-、__    [    ヽ      !
  \.| l.              ヽ、      [     ヽ    |
    ヽ|              \    r'     ヽ、    |
0960デフォルトの名無しさんNGNG
やっぱり、ヲタクかw
0961デフォルトの名無しさんNGNG
コレの仕事でカネもらってるんだ
日々学び詳しくなるのはプロとして当然
0962デフォルトの名無しさんNGNG
専門家=ヲタク
0963デフォルトの名無しさんNGNG
C++でTCP/IPプログラミングしているんですが、
readなら1バイトずつバッファに読み込んでも動くんですが、
writeでは一度にすべてを書き込まないと動きません。
これって、そういう仕様なんですか?
0964デフォルトの名無しさんNGNG
>>963
はい
0965デフォルトの名無しさんNGNG
アンバッファド入出力に切り替えればいいんじゃいない?
0966デフォルトの名無しさんNGNG
モタクじゃない人なんて口だけですよ
0967デフォルトの名無しさんNGNG
>>962
専門家=ヲタク
じゃないだろ?
ヲタク=家でまでもコンパイラやインタプリタで遊んでる香具師
0968デフォルトの名無しさんNGNG
定義厨キタ━━━━━━(゚∀゚)━━━━━━ !!
0969デフォルトの名無しさんNGNG
大工だってそうでしょ、自分で道具吟味して家でこつこつ作ってるでしょ、いっしょでしょ
0970デフォルトの名無しさんNGNG
つまり仕事熱心な人がヲタク?



休日くらい休ませてくれ・・・。
0971デフォルトの名無しさんNGNG
プロでもヲタク系の奴とそうでないのはいるっしょ
「プログラマとして」役に立つのはヲタク系の奴だが

業務系のプログラマ程度だと、ヲタクでなくとも勤まる。
0972デフォルトの名無しさんNGNG
つか、思いっ切り板違いだな。マ板行けよ。
0973デフォルトの名無しさんNGNG
次スレ立ててくる
0974デフォルトの名無しさんNGNG
次スレ
http://pc5.2ch.net/test/read.cgi/tech/1096187183/
0975デフォルトの名無しさんNGNG
早ぇーよバカ
0976デフォルトの名無しさんNGNG
976
0977デフォルトの名無しさんNGNG
やっぱり、ヲタクって言われてシャクに触った?(w
0978デフォルトの名無しさんNGNG
趣味=仕事ならオタクなのか
幸せな人生だな
0979デフォルトの名無しさんNGNG
んな訳ねーだろ馬鹿w
0980デフォルトの名無しさんNGNG
0981デフォルトの名無しさんNGNG
0
レス数が950を超えています。1000を超えると書き込みができなくなります。