トップページ⇒tech
956コメント340KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。 NGNG
主にソケットに関してのFAQ
0508505NGNG
そろそろsocketをkernel32.dllのAPIにして欲しいね。
他のファイル関係のAPIと同じように、UNIX風の関数は
Cライブラリに取り込めば使い勝手よくなると思うぞ。
CreateSocket()を_socket()で包むような感じで。

ついでにパイプやコンソールもselect出来るようになれば
嬉しいね。何でCreatePipeのハンドルをpolling出来ない
仕様にしたんだろうね。まったく。
0509デフォルトの名無しさんNGNG
標準入出力モナー>508
select使えなさスギ
0510デフォルトの名無しさんNGNG
__WSAFDIsSetって何に使うのですか?
0511デフォルトの名無しさんNGNG
WinSockを使わないとすると、インターネットへのアクセスはどうなるのでしょうか?
直接デバイスドライバとやり取りするのですか?
でも、これだとハード毎に異なりますよねぇ〜。
WinSockのフックは出来たのですが、検出できないアクセスがあるもので…。
0512デフォルトの名無しさんNGNG
rawソケットを使ってTCPソケットと同じことをやろうとした場合、
パケットの送受信って何を使えばいいのでしょう?
0513デフォルトの名無しさんNGNG
Windowsでソケット使う場合ってBSDスタイルのワーカスレッド形式が良いですか?
0514デフォルトの名無しさんNGNG
test
0515超初心者NGNG
pingのTオプションについて教えてもらえませんか
どうやって指定するのでしょう。マルチキャストがいまいち・・・

またこれを使ってtracerouteの替わりにできるとも聞いたのですが
実際どうなんでしょう。
0516デフォルトの名無しさんNGNG
>>515
そんなあなたに ping -f がオススメです
0517デフォルトの名無しさんNGNG
>>515
Tオプションと言われても実装されている環境によって意味が違うの
では?Win98ではそのようなオプションはありませんでした。

多分「ping -T 値」って指定するのでは?
0518超初心者NGNG
>>517
usage: ping [-QRadfnqrv] [-c count] [-i wait] [-l preload] [-p pattern]
[-P policy] [-s packetsize] [-S src_addr] [-t timeout]
[host | [-L] [-I iface] [-T ttl] mcast-group]
こんな感じの環境です

fオプションはないみたいですね。
0519デフォルトの名無しさんNGNG

ソケット通信ほとんど素人の者です。
ソケット通信で Send メソッドで通信する場合
一度で送るサイズをこうした方が良いとかありますか?
1MBのデータを送る場合、1回の Send で1MB送るのではなく
10KBに分けて100回 Send を行った方が効率的ってことありますか?
(自分で試せ!ってツッコミはイヤ〜ン。)
それとMSDNのサポート技術文書「[SDK32] 送信サイズが小さいと TCP/IP のパフォーマンスが低くなる」ってところにMTUサイズがどうのこうのって書いてありますがこれはどう言うことでしょうか?
1460バイト単位らしいですが普段気に留める必要はあるのでしょうか?
環境はVC++6.0です。
 お・し・え・て
0520デフォルトの名無しさんNGNG
い・や・よ
0521デフォルトの名無しさんNGNG
>>518
 TTLの値はIPパケットの生存時間で0なら破棄されたと思います。
この値の減り方はよく知りませんが、ルータなどを超えると減ったと
思います。
 pingとtracerouteは同じICMPのECHOリクエストとECHO応答を使う
プログラムですが、tracerouteはTTLの値でパケットが破棄される仕
組みを利用していたと思います。詳細はtracerouteのソースを読ん
でください。それに合わせてpingを利用するなら使えそうな感じが
します。
0522超初心者NGNG
結局Tオプションはどのようにアドレスを指定すればいいんでしょう。
224.0.0.1としてみたら何かは表示されましたが
普通のアドレスだとこうなります。
> ping -T 10 アドレス
ping: -I, -L, -T flags cannot be used with unicast destination
0523デフォルトの名無しさんNGNG
>>515
板違い。通信技術板へいきませう。
0524超初心者NGNG
>>523
そうします
0525デフォルトの名無しさんNGNG
WinSock1と
WinSock2って何が違うんですか?
0526デフォルトの名無しさんNGNG
UNIXネットワークプログラミングは基本ですか?
0527デフォルトの名無しさんNGNG
>>526
というかマトモな本がそれしかない
0528デフォルトの名無しさんNGNG
>>519
素人です。
自分は2000バイトずつに分けてます。
1回ずつACKを受け取ってから送信するようにしてます。
正しいかどうかわからないけど、動いてます。
1MBを1回のSendでは無理だと思います。
0529デフォルトの名無しさんNGNG
>>528
サンキュ。
これから本格的なMLに聞いてくる。
とりあえずレスありがと。
0530512NGNG
結局この板にはrawソケットでプログラミングできる人が居ないのね。
0531デフォルトの名無しさんNGNG
>>530
Berkeley Packet Filterでも使えば?
0532512NGNG
>>531
 Berkley Packet Filterをちょっと調べてみたらパケットのスニファー
みたいな用途っぽいですね。やりたいのはconnect()などの制御
とデータパケットの送受信をrawソケットで実現させること。
 環境は書いてませんでしたが、AIXかHP-UX。あるいはLinuxでも
OK。
0533デフォルトの名無しさんNGNG
>>532
LinuxでいいんならTCP実装のソース読めばいいんでねえの?
0534512NGNG
>>533
Linuxカーネルって全くといって良いほどソースを読んだことが無いです
が、rawソケットで実装されてるのですか?なかなか奥の深い助言です
ね。

カーネルソースをみてみましたが、net/ipv4辺り?としかわかりません。
ソースを読むにあたって、システムコールに対応するソースは何処か
解説のあるサイトはご存知でしょうか?
0535デフォルトの名無しさんNGNG
<form method='POST' action="http://aaa/ssss.cgi">
<input type=hidden name="get" value="143242341324">
<input type=submit value="abcd">
</form>
このCGIの出力結果を見るにはどんな文ををサーバーに送れば見ることが出来ますか?
おしえてください
0536デフォルトの名無しさんNGNG
> あるいはLinuxでも OK。

BPFってありました? 相当する機能はあったと思うけど..
0537512NGNG
Berkley Packet Filterをしっかり調べれば問題解決するということ
ですね。詳細を調べてみます。
0538デフォルトの名無しさんNGNG
DirectPlayってルータとか通すときプロコトルがNATでないといけませんよね。
うちのはNATeなのですがヤフメなどは使えます。
で、ポートの役目リストみたいなページで、ヤフメのポートが記述してあったのですが、、
WinSockなど特別な方法を使えばふつーに通信できるのでしょうか?
判りにくくてスミマセン(汗

具体的に言うとマイクロソフトメッセンジャーなどは1:1で会話や通信できるのに
(どこかでサーバ介している??)
DirectPlayを使うと(というよりわたしの技術では)東急ケーブルなどのローカルIPなプロバイダの人とは
ネットワークゲームが出来なかったりするのです。(どうにかNATeにも対応させたいし、、)
回避する方法はないのでしょうか。。
資料などありましたらこのバカにも判りやすく具体的によろしくお願いします
(ここの何処にあるとか。。)
0539デフォルトの名無しさんNGNG
TCP/IPのパケットデータを覗くソフトってあるんでしょうか?
Win2000使ってます。
0540デフォルトの名無しさんNGNG
>>539 PacMon
http://www.layer.co.jp/
0541デフォルトの名無しさんNGNG
フリーウェアならethereal、Analyzerがあります。
メニューなどが英語ですけど十分使えます。
Analyzerの英語(日本語ならベターだけど)ドキュメントが欲しいところ。
0542デフォルトの名無しさんNGNG
>>538
NATって何なのかもう少し理解してから書き込んで下さい
0543デフォルトの名無しさんNGNG
NATの理解がNATらん
0544デフォルトの名無しさんNGNG
>>543
回線で足つってください。
0545デフォルトの名無しさんNGNG
NATく行かん
0546デフォルトの名無しさんNGNG
>>545
回線で足つって氏んで下さい
0547デフォルトの名無しさんNGNG
厨房質問ですいません。
ftp-data 20/tcp
や
netbios-dgm 138/tcp nbdgm
netbios-dgm 138/udp nbdgm
のように実際のセッションがあるときにしか使われないポートが
開いているかどうかを調べるには対応する
ftp 21/tcp
とか
netbios-ssn 139/tcp nbssn
が開いていることで判断すればいいのでしょうか?
それとも上記のデータ送信ポートが開いていることを
セッションを作らずに直接調べる方法があるのでしょうか?
0548sNGNG
おまえらたいどがNATらん.
0549デフォルトの名無しさんNGNG
厨房警報NATるで
0550デフォルトの名無しさんNGNG
怪傑ズNAT
0551デフォルトの名無しさんNGNG
(ソケット使うならTCP/IPって普通に勉強するもんじゃなかったのか。。。
0552デフォルトの名無しさんNGNG
>>545
激しくワラタ
0553デフォルトの名無しさんNGNG
>>551
ソケット使う「だけ」ならそれほど勉強する必要はない。
0554デフォルトの名無しさんNGNG
1、CGIでURLエンコードするときのデフォルトの文字コードは決まってるんでしょうか?
2、SJISのエンコードは %XX で言いと思うんですが、他の文字コードのエンコードは
  どうやってやるのでしょうか?
UNICODEとかの場合は %XXXX で良いのでしょうか?
0555デフォルトの名無しさんNGNG
>>554

%xxは文字コードのエンコードじゃなくてバイナリのエンコードだから
S-JISだろうとEUCだろうとunicodeだろうと全部%xxの組み合わせダヨ。

デフォルトの文字コードはどうなんだろうね。発信元依存じゃないのかな?
0556デフォルトの名無しさんNGNG
>>554
URL-Encode は単にエンコード方式を規定しているだけで、charset の規定はない。
0557554NGNG
555さん556さん、ありがとうございます。
わかりましたです。
0558デフォルトの名無しさんNGNG
このスレ、レベル低いね。
0559デフォルトの名無しさんNGNG
甘NATう
0560七夕NGNG
願いがかNATいいね
0561デフォルトの名無しさんNGNG
NATって大豆を水につけて煮たものに納豆菌をつけてワラの中に入れて発酵させたものでしょ?
0562デフォルトの名無しさんNGNG
そら納豆や
0563デフォルトの名無しさんNGNG
NATゃん
0564デフォルトの名無しさんNGNG
age
0565デフォルトの名無しさんNGNG
おもしろかった
0566デフォルトの名無しさんNGNG
Windowsで、WinInet使わずにWinSockでHTTPするのはバカですか?
0567デフォルトの名無しさんNGNG
・WinInetのバージョンに左右されたくない
・IEが入ってなくても使えるようにしたい
等の理由があれば馬鹿じゃないだろ
0568デフォルトの名無しさんNGNG
わたしもWinsock派だよん
0569デフォルトの名無しさんNGNG
>>567
なるほど、じゃあ、そういうことにしておきます。

プロトコル調べて、自力で動かすのが楽しいからやってただけなんですが(笑)
0570デフォルトの名無しさんNGNG
すにっふぁしたあい('-`)
0571デフォルトの名無しさんNGNG
proxy とか使ってる人がいるかもしれないから、
WinInet 使えるんなら使っておいたほうが良いと思う。
0572デフォルトの名無しさんNGNG
winsock2使えアホボケ
0573デフォルトの名無しさんNGNG
>>571
proxyも自分でつないじゃ駄目?
0574デフォルトの名無しさんNGNG
>>573
IEの設定を使いたいって事でしょ
自力で探ると結構面倒だし
0575デフォルトの名無しさんNGNG
JavaScriptで自動構成とかされてると自力じゃどうやっても取れない。
厳密にはJavaScriptエンジンまで作れば取れるだろうけどそこまでする
ならWinInet使うぞ。
WinInetで困ったのがIE5あたりで追加されたフラグをうかつに立ててると
IE3環境でERROR_INVALID_PARAMETERになること
0576デフォルトの名無しさんNGNG
あと https がタダで使えるのも美味しいぞ>WinInet
0577デフォルトの名無しさんNGNG
Winsockのselectは効率割悪いってよ。>使ってる人
詳しくはアスキーのマルチスレッドプログラミングって本参照
0578デフォルトの名無しさんNGNG
IriaやらRegetのレジューム機能
ってどうやって実現されてるの?
0579デフォルトの名無しさんNGNG
>>577
NTならIO完了ポートを使うのが常識。
0580デフォルトの名無しさんNGNG
>>578
要求ヘッダで「ここの位置からのデータを頂戴」と書いてサーバーに伝えてるだけです。
詳しくはIriaやRegetのログ出力を見れ。
0581デフォルトの名無しさんNGNG
>>578
その手ことが知りたいならRFC嫁やゴラァ
0582デフォルトの名無しさんNGNG
winsockレベルでproxy経由でアクセスってどうやるんですか?
0583デフォルトの名無しさんNGNG
GET http://www.2ch.net/ HTTP/1.0
0584デフォルトの名無しさんNGNG
HTTP1.0/1.1のRFC読めって?
0585デフォルトの名無しさんNGNG
>>582
おいおい(ワラ
0586デフォルトの名無しさんNGNG
プロキシサーバに接続した後、>>583 みたいに URI 部分に
スキームやホスト名まで指定してやれば可能。プロキシが
対応していれば ftp:// ってのも HTML 形式で返してくれるぞ。
あとは Cache-Control とかだな。
0587デフォルトの名無しさんNGNG
>>585はなんでワラってるの?
0588デフォルトの名無しさんNGNG
>>587
winsock使ってる時点で、自力で串とお話する以外ないからだろ?
0589デフォルトの名無しさんNGNG
?
そのやりかたを教えてくれって言ってるんじゃないの?>588
0590デフォルトの名無しさんNGNG
>>589
winsock使ってる時点で、プロキシ経由しようが
しまいがあんまり変わんないんだよ。
0591デフォルトの名無しさんNGNG
>>589
ということで、それを聞くということは、
プロキシ経由しないやり方もよく分かってないんじゃないかと
思うわけさ(ワラ
0592デフォルトの名無しさんNGNG
で、>>589と>>591はなんでワラってるの?
0593デフォルトの名無しさんNGNG
Raw Socket反対!!!!
IPヘッダー書き換える
馬鹿なクラッカーが増えるだけ!!!
0594デフォルトの名無しさんNGNG
包丁反対!!!!
人を刺す
馬鹿な犯罪者が増えるだけ!!!
0595デフォルトの名無しさんNGNG
Raw SocketないとPingもできないから困る
0596デフォルトの名無しさんNGNG
HTTPわかってない奴は無理にSocketでHTTPを実装しようとするな。
RFC読めとまではいわないからせめて本でも買って仕組みを勉強しろ!
0597デフォルトの名無しさんNGNG
HTTP1.1のRFCは日本語訳もあるし、本など不要
それすら読まない奴は、公害垂れ流しになるから、
インターネット上にパケットをとばすプログラムは組むな
0598デフォルトの名無しさんNGNG
>>595
Windowsに関しては生ソケットを使わなくても、PINGはとばせる
0599デフォルトの名無しさんNGNG
>>598
Windowsに関してはっていってもどうせWinsock2のRawソケットじゃたいしたことできないから関係ないな。
0600デフォルトの名無しさんNGNG
ソケットの持ってるバッファのサイズって知ることはできますか?
また、変更することはできますか?
0601デフォルトの名無しさんNGNG
>>600
getsockopt
0602デフォルトの名無しさんNGNG
>>594
料理できねーよ。
0603デフォルトの名無しさんNGNG
>>599
たいしたことできないって何が?
0604デフォルトの名無しさんNGNG
Windows 上で現在の DNS サーバー名を取得するにはどうすれば良いのでしょうか?

うちのマシンだと HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\NameServer も
GetComputerNameEx(ComputerNameDnsDomain,lpBuffer,&nSize) もヌル文字列しか返らなくて役に立ちません
0605デフォルトの名無しさんNGNG
ヌル文字列しか帰らないのは単にDNSサーバーが本当に設定されてない
だけでないかい。
ipconfigでは表示されるの?
0606デフォルトの名無しさんNGNG
うちはルータ通してるので、DhcpNameServer
0607デフォルトの名無しさんNGNG
>>606
どんな環境だろうとルータを通らないとインターネットは使えないぞ
0608デフォルトの名無しさんNGNG
ウェブオブジェクトってなんですか?
■ このスレッドは過去ログ倉庫に格納されています