2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2007/02/09(金) 23:04:56
主にソケットに関しての質疑応答スレッドです。

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/

関連リンクは>>2-10辺り
足りなかったら適当に付け足してね

前スレ
ネットワークプログラミング相談室 Port18
http://pc10.2ch.net/test/read.cgi/tech/1159692799/

2 :デフォルトの名無しさん:2007/02/09(金) 23:05:58
過去スレ:
Port17 http://pc8.2ch.net/test/read.cgi/tech/1148944560/
Port16 ttp://pc8.2ch.net/test/read.cgi/tech/1136005644/
Port15 ttp://pc8.2ch.net/test/read.cgi/tech/1128088448/
Port14 ttp://pc8.2ch.net/test/read.cgi/tech/1118469143/
Port13 ttp://pc8.2ch.net/test/read.cgi/tech/1109793931/
Port12 ttp://pc5.2ch.net/test/read.cgi/tech/1102427855/
Port11 ttp://pc5.2ch.net/test/read.cgi/tech/1096187183/
Port10 ttp://pc5.2ch.net/test/read.cgi/tech/1090385857/
Port9 ttp://pc5.2ch.net/test/read.cgi/tech/1080658835/
Port8 ttp://pc5.2ch.net/test/read.cgi/tech/1073560271/
Port7 ttp://pc5.2ch.net/test/read.cgi/tech/1063035045/ ★行方不明
Port6 ttp://pc5.2ch.net/tech/kako/1052/10521/1052106444.html
Port5 ttp://pc2.2ch.net/tech/kako/1040/10402/1040220302.html
Port4 ttp://pc3.2ch.net/tech/kako/1034/10342/1034236536.html
Port3 ttp://pc3.2ch.net/tech/kako/1023/10233/1023359282.html
Port2 ttp://pc.2ch.net/tech/kako/1006/10062/1006258198.html
Port1 ttp://pc.2ch.net/tech/kako/970/970344582.html

まとめ ttp://makimo.to/cgi-bin/search/search.cgi?q=%83l%83b%83g%83%8F%81%5B%83N%81%40%91%8A%92k%8E%BA&andor=AND&sf=0&H=ikenai&D=tech&shw=2000

3 :デフォルトの名無しさん:2007/02/09(金) 23:07:20
図書コーナー:
UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI
 http://www.amazon.co.jp/exec/obidos/ASIN/4894712059/
 そのソースコード
 http://www.unpbook.com/src.html
詳解TCP/IP〈Vol.1〉プロトコル
 http://www.amazon.co.jp/exec/obidos/ASIN/4894713209/
詳解TCP/IP〈Vol.2〉実装
 http://www.amazon.co.jp/exec/obidos/ASIN/4894714957/
詳解TCP/IP〈Vol.3〉トランザクションTCP, HTTP, NNTP, UNIXドメインプロトコル
 http://www.amazon.co.jp/exec/obidos/ASIN/4894716674/
TCP/IPによるネットワーク構築
 〈Vol.1〉原理・プロトコル・アーキテクチャ
  http://www.amazon.co.jp/exec/obidos/ASIN/432012054X/
 〈Vol.3〉クライアント‐サーバプログラミングとアプリケーション
  http://www.amazon.co.jp/exec/obidos/ASIN/4320028007/
 ?Linux/POSIXソケットバージョン
  http://www.amazon.co.jp/exec/obidos/ASIN/4320120841/
 ?Windowsソケットバージョン
  http://www.amazon.co.jp/exec/obidos/ASIN/4320029992/

4 :デフォルトの名無しさん:2007/02/09(金) 23:08:04
マスタリングTCP/IP RTP編
 http://www.amazon.co.jp/exec/obidos/ASIN/4274065618/
Linuxソケットプログラミング?ネットワークプログラミングにおける実践技法
 http://www.amazon.co.jp/exec/obidos/ASIN/4894714671/
Webプロトコル詳解?HTTP/1.1、Webキャッシング、トラフィック特性分析
 http://www.amazon.co.jp/exec/obidos/ASIN/4894715414/
WinSock2.0プログラミング
 http://www.amazon.co.jp/exec/obidos/ASIN/4797306882/
猫でもわかるネットワークプログラミング
 http://www.amazon.co.jp/exec/obidos/ASIN/4797323604/
IPv6ネットワークプログラミング
 http://www.amazon.co.jp/exec/obidos/ASIN/4756142362/
Visual Basicではじめるネットワークプログラミング超入門
 http://www.amazon.co.jp/exec/obidos/ASIN/4839917523/

5 :デフォルトの名無しさん:2007/02/09(金) 23:08:42
URL抜粋:
★規格
RFC 日本語版リスト
 http://www5d.biglobe.ne.jp/~stssk/rfcjlist.html
JPNIC RFC関連リンク集
 http://rfc-jp.nic.ad.jp/link/
RFC Editor
 http://www.rfc-editor.org/
HTMLなRFC (セクションを直に示すのに便利)
 http://www.freesoft.org/CIE/RFC/
RFC 2616 "Hypertext Transfer Protocol -- HTTP/1.1" 日本語訳
 http://www.studyinghttp.net/rfc_ja/2616/rfc2616_ja.html
IANA Well known port numbers
 http://www.iana.org/assignments/port-numbers
★プログラミング
C10K ヘヴィーロードサーバ
 http://www.kegel.com/c10k.html
MSDN
 http://msdn.microsoft.com/library/en-us/dnsitehelp/html/tochelp.asp
Raw IP Networking FAQ
 http://www.whitefang.com/rin/
Java で packet capture
 http://netresearch.ics.uci.edu/kfujii/jpcap/doc/
Randomness Recommendations for Security
 http://www.faqs.org/rfcs/rfc1750.html
BoostSocket
 http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostSocket
The Code Project - Internet & Network programming
 http://www.codeproject.com/internet/
ネットワークプログラミングの基礎知識 (問題ありのサイト?)
 http://X68000.q-e-d.net/~68user/net/

6 :デフォルトの名無しさん:2007/02/09(金) 23:09:33
★ツール類
ethereal - http://www.ethereal.com/
Wireshark - http://www.wireshark.org/
tcpdump - http://www.tcpdump.org/
Windump - http://netgroup-serv.polito.it/netgroup/tools.html
WinPcap - http://www.winpcap.org/
pathchar - ftp://ftp.ee.lbl.gov/pathchar/
pchar - http://www.employees.org/~bmah/Software/pchar/
Packetyzer - http://www.networkchemistry.com/products/packetyzer/
libevent - http://www.monkey.org/~provos/libevent/

★プロトコル
TTCP
 http://www.sean.de/Solaris/ttcp.html
 http://www.kohala.com/start/ttcp.html
UDP Hole Punching
 http://homepage3.nifty.com/toremoro/p2p/firewall.html

★IP, TCP実装
http://www.iti.fi/documentation/miniip.html
http://www.sics.se/~adam/uip/
http://www.codeguru.com/Cpp/I-N/network/tcpip/article.php/c5447/
http://www.geocities.jp/bruce_teller/security/garakuta.htm

7 :1:2007/02/09(金) 23:15:50
前スレ >>990-1000
前スレと同じテンプレで立てさせてもらった。

次スレを立てる人へ
>>5のRFC 2616 "Hypertext Transfer Protocol -- HTTP/1.1" 日本語訳のアドレスは
http://www.studyinghttp.net/cgi-bin/rfc.cgi?2616 に変わっているから立てるときに変えてください。

8 :デフォルトの名無しさん:2007/02/10(土) 00:02:51
チャンスを掴む入口⇒ http://luckygame.tv/

9 :デフォルトの名無しさん:2007/02/10(土) 01:15:47
関連かな?

Java ネットワークプログラミング 【教えて!】
http://pc10.2ch.net/test/read.cgi/tech/1086238859/

10 :デフォルトの名無しさん:2007/02/12(月) 00:35:11


11 :デフォルトの名無しさん:2007/02/17(土) 14:15:40
教えてください。
send/recvを使ってHTTP通信したいのですが、ブロックしてしまうのを回避するために
・send/recv前に毎回selectして調べる
・非同期でsend/recvしてh_errorを調べる
の方法は適切ですか?

12 :デフォルトの名無しさん:2007/02/17(土) 14:30:19
・非ブロックソケットを使う

13 :デフォルトの名無しさん:2007/02/17(土) 14:36:55
>>11

・無限ループのスレッドでずーっとread、メインはセマフォ待ちで待機。
・改行の受信か相手側のクローズを検知したらセマフォを解放

これが正しいモデルだと思うけど、どうよ。

14 :デフォルトの名無しさん:2007/02/17(土) 15:09:40
無条件に正しいモデルなんてものはない。

15 :デフォルトの名無しさん:2007/02/17(土) 15:57:44
無限ループのrecvなんて、最悪だな。

16 :デフォルトの名無しさん:2007/02/17(土) 16:04:37
read/recvはCPU負荷率が下がるので逆に推奨。
最悪なのはI/O待ちもsleepもない計算だけのループ。

17 :デフォルトの名無しさん:2007/02/17(土) 16:23:51
I/O待ちだけでブロックしてるようなスレッド作ると、他所から
そのスレッドを綺麗に終了させる手段がないじゃん。
イベントとI/Oの両方を待機させるような作りにするのが定石じゃないの。

18 :デフォルトの名無しさん:2007/02/17(土) 16:43:28
>>17
I/Oにイベントを流してやる

19 :11:2007/02/17(土) 17:45:45
レスありがとうございます。
後出しになって申し訳ないのですが、実はApache + C++CGIとして動作させています。そのため、スレッドの生成は避けたいと思っています。
CGIの待機中プロセスが増えすぎてしまわないためにタイムアウトを設けたいと思って質問しました。

少なくとも毎回selectするくらいなら非ブロックモードにするべきのようですね。
非ブロックでsend/recvし、ソケットが閉じられるまでループさせる方法で試してみます。

20 :デフォルトの名無しさん:2007/02/17(土) 18:34:48
> イベントとI/Oの両方を待機させるような作り

そうそう、
socketのイベントとpthread_cancelを同時に待つ方法が知りたい。

21 :デフォルトの名無しさん:2007/02/17(土) 18:47:00
>>20
スレッドでソケットでセレクト

22 :デフォルトの名無しさん:2007/02/18(日) 00:35:09
>>19
> 少なくとも毎回selectするくらいなら非ブロックモードにするべきのようですね。

なことはない


23 :デフォルトの名無しさん:2007/02/18(日) 15:55:13
何でRFCはあんなに読みにくいのかと。

24 :デフォルトの名無しさん:2007/02/19(月) 08:43:58
読みやすいよ。規格書としては抜群に。
ITU, IEEE, ISOに比べればね。

25 :デフォルトの名無しさん:2007/02/19(月) 11:37:13
Can't Conceive Intelligent Thoughts Today

26 :デフォルトの名無しさん:2007/02/20(火) 03:40:15
Content-Dispositionでさあ、IEってfilename="c:\abc\def.txt"
みたいに送ってくるけど、\はquoted-pairになるから、これって違法な
気がするんだが・・

27 :デフォルトの名無しさん:2007/02/20(火) 11:07:40
プログラムとちょっと外れるけど
環境はWindowsXPです
名前解決を変更するのにHostsをいじればいいわけですが
ドメインではなくて実際のIPにフィルターかけることって出来ますかね?
192.168.1.90 -> 192.168.1.100
90へのリクエストはすべて100へ行くようにしたいわけです
ソケットフックするしかない?

28 :デフォルトの名無しさん:2007/02/20(火) 22:38:18
static arpを登録すればいける気がする。
(IP->IPのマッピングじゃないけど。)

29 :デフォルトの名無しさん:2007/02/20(火) 22:39:49
書き込んでから気づいた。受け取り側がよっぽどアホでない限り、
自分のIP宛でないパケットが来たところで無視されるのがオチだな。

30 :デフォルトの名無しさん:2007/02/20(火) 23:16:24
・/28あたりでネットマスク切って、あとは自力構成したルータの
パケットフィルタで書き換える

・振り替えを実行したいマシン毎で、192.168.1.90に対して、192.168.1.100のMACを
static ARPとして設定する。そのうえ、192.168.1.100のマシンで、ループバック
インターフェースに、192.168.1.90/32を割り当てる。100のマシンのホストモデルが
「強力」なら「弱い」にしておく。

くらいしか思い浮かばないな。

31 :デフォルトの名無しさん:2007/02/20(火) 23:18:53
というか、それがいわゆるNAT。

32 :デフォルトの名無しさん:2007/02/20(火) 23:24:44
宛先を書き換えるわけだから、逆NATでないの。まーどーでもいいけど。

33 :デフォルトの名無しさん:2007/02/21(水) 16:18:26
ちなみに100のほうは変動するので
90内でだけで解決しないといけない

34 :デフォルトの名無しさん:2007/02/21(水) 18:19:00
>>32
裏と表がひっくり返った50円玉やるよw

35 :デフォルトの名無しさん:2007/02/21(水) 19:55:51
ジャイアン乙

36 :デフォルトの名無しさん:2007/02/21(水) 23:55:52
>>27
リクエスト元が192.168.1.90、100と違うサブネットなら、境界のルータで
NATかければいい。
同じサブネットなら、無理やりな方法になるけど>>30 かな?

>>32
(NAPTじゃない)NAT、それも固定NATなら、対称なんだから逆も何もない。

37 :デフォルトの名無しさん:2007/02/22(木) 11:48:19
100のほうは正確にはグローバルIPになる
ローカルから接続する対象をリアルタイムで変更したいわけ
ソフトによってはIP固定で通信してるからそれに対応したいということ
NATってあて先変更できたっけ?
90のほうにNATソフトいれたら出来るんだっけ?
そういう機能があるソフト知ってたら教えて下さい

38 :デフォルトの名無しさん:2007/02/22(木) 14:37:41
とりあえず、>>6にある
UDP Hole Punching
 http://homepage3.nifty.com/toremoro/p2p/firewall.html
の中のNATの説明読んでから出直してくれ。
そしてプログラミングに関連づけて質問し直してくれ。

39 :デフォルトの名無しさん:2007/02/22(木) 17:08:33
技術的に出来ることは十分わかってるんですが
ソケットをフックするよりドライバ書いてるほうがはるかに手間がかかるので
NATの原理で出来るというアドバイスは愚の骨頂です
最初に書いた通り、こちらの最も望むものはフックするより手間の掛からない方法です

40 :デフォルトの名無しさん:2007/02/22(木) 17:53:01
>>39=>>27なの?
馬鹿だなあ。
知識足りないんだから、大人しく教えを乞えばいいのに…


41 :デフォルトの名無しさん:2007/02/22(木) 21:00:56
なんだなんだ、ネトゲの改造か何かか?

42 :デフォルトの名無しさん:2007/02/22(木) 21:02:01
チートツールじゃないですよ。健全な目的です。

43 :デフォルトの名無しさん:2007/02/25(日) 19:17:26
rtspとかmmsのパケットをキャプチャするプログラム作りに挑戦始めました。

ttp://www.jptm.net/memo/index.php?cmd=read&page=WinPcap%A4%F2%BB%C8%A4%C3%A4%BF%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0&word=winpcap

とりあえずこのページのサンプルを実行してみましたが、
いまいちよくわからず・・・

このサンプルではrtspとかmmsとかをキャプチャできるのでしょうか?

というか全然知識が足りないので
読んだ方がよいページとかありましたら
紹介お願い致しますm(_ _)m

44 :デフォルトの名無しさん:2007/02/25(日) 22:16:38
RFC 2326(rtsp)
http://www.ietf.org/rfc/rfc2326.txt

mms、mmshはmplayer、xineとかのコードとかでしょうか。


45 :43:2007/02/27(火) 07:27:19
ありがとうございます。

というかまだ全然プロトコル解析の段階にいってません・・・orz

メディアプレイヤーで以下のアドレスを再生させると
mms://wms.g2.cdn.bcast.co.jp/yahoo/ystream/kad/10193/kad1019300001100000b929.asf?session_id=b4d2575ccae7b6b454cece0e68ea0860&product_id=
取得パケットの中には
202.93.94.14
という外部アドレスだけが見つかりました。

ttp://www.cman.jp/network/support/ip.html
で調べたところ、
wms.g2.cdn.bcast.co.jp
というのは
202.93.94.16
というアドレスであると出たのですが

逆に
202.93.94.16
を調べたら
wms06.g2.bbt.bcast.co.jp
と出ていました。

46 :43:2007/02/27(火) 07:28:53
202.93.94.14
を調べたら
wms04.g2.bbt.bcast.co.jp
と出ていました。

でももう一度改めてパケット取得してみたら

202.93.94.15
というアドレスだけが見つかりました。

wms.g2.cdn.bcast.co.jpというドメイン名からは
正確なIPアドレスはわからないものなのでしょうか?

47 :デフォルトの名無しさん:2007/02/27(火) 07:40:33
% dnsip wms.g2.cdn.bcast.co.jp
202.93.94.16 202.93.94.15 202.93.94.18 202.93.94.17

「正確なIPアドレス」の定義がよくわからんが、1つのDNS名が
複数のIPアドレスを持つのは、負荷分散的によくあること。

48 :デフォルトの名無しさん:2007/02/28(水) 06:05:23
>>46
DNSラウンドロビンだのぉ。

16 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)