ネットワークプログラミング相談室 Port24
■ このスレッドは過去ログ倉庫に格納されています
0001lmtp
2009/07/07(火) 00:46:28Programming 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辺り
足りなかったら適当に付け足してね
前スレ
ネットワークプログラミング相談室 Port23
http://pc12.2ch.net/test/read.cgi/tech/1230466044/
関連スレ
ネットワークプログラミング雑談
http://pc12.2ch.net/test/read.cgi/tech/1235800707/
Java ネットワークプログラミング 【教えて!】
http://pc11.2ch.net/test/read.cgi/tech/1086238859/
0002lmtp
2009/07/07(火) 00:47:11Port22 ttp://pc11.2ch.net/test/read.cgi/tech/1222603744/
Port21 ttp://pc11.2ch.net/test/read.cgi/tech/1204287577/
Port20 ttp://pc11.2ch.net/test/read.cgi/tech/1186418855/
Port19 ttp://pc10.2ch.net/test/read.cgi/tech/1159692799/
Port18 ttp://pc11.2ch.net/test/read.cgi/tech/1171029896/
Port17 ttp://pc8.2ch.net/test/read.cgi/tech/1148944560/
Port16 ttp://pc8.2ch.net/test/read.cgi/tech/1136005644/
Port15 ttp://pc8.2ch.net/test/read.cgi/tech/1128088448/
Port14 ttp://pc8.2ch.net/test/read.cgi/tech/1118469143/
Port13 ttp://pc8.2ch.net/test/read.cgi/tech/1109793931/
Port12 ttp://pc5.2ch.net/test/read.cgi/tech/1102427855/
Port11 ttp://pc5.2ch.net/test/read.cgi/tech/1096187183/
Port10 ttp://pc5.2ch.net/test/read.cgi/tech/1090385857/
Port9 ttp://pc5.2ch.net/test/read.cgi/tech/1080658835/
Port8 ttp://pc5.2ch.net/test/read.cgi/tech/1073560271/
Port7 ttp://pc5.2ch.net/test/read.cgi/tech/1063035045/ ★行方不明
Port6 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
0003lmtp
2009/07/07(火) 00:47:57UNIXネットワークプログラミング〈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/
0004lmtp
2009/07/07(火) 00:50:21http://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/
0005lmtp
2009/07/07(火) 00:52:19★規格
RFC 日本語版リスト
http://www5d.biglobe.ne.jp/~stssk/rfcjlist.html
JPNIC RFC関連リンク集
http://rfc-jp.nic.ad.jp/link/
RFC Editor
http://www.rfc-editor.org/
HTMLなRFC (セクションを直に示すのに便利)
http://www.freesoft.org/CIE/RFC/
RFC 2616 "Hypertext Transfer Protocol -- HTTP/1.1" 日本語訳
http://www.studyinghttp.net/cgi-bin/rfc.cgi?2616
IANA Well known port numbers
http://www.iana.org/assignments/port-numbers
0006lmtp
2009/07/07(火) 00:53:30C10K ヘヴィーロードサーバ
http://www.kegel.com/c10k.html
C10K ヘヴィーロードサーバ(日本語訳)
http://www.hyuki.com/yukiwiki/wiki.cgi?TheC10kProblem
MSDN
http://msdn.microsoft.com/library/en-us/dnsitehelp/html/tochelp.asp
Raw IP Networking FAQ
http://www.whitefang.com/rin/
Java で packet capture
http://netresearch.ics.uci.edu/kfujii/jpcap/doc/
Randomness Recommendations for Security
http://www.faqs.org/rfcs/rfc1750.html
BoostSocket
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostSocket
The Code Project - Internet & Network programming
http://www.codeproject.com/internet/
ネットワークプログラミングの基礎知識 (問題ありのサイト?)
http://X68000.q-e-d.net/~68user/net/
0007lmtp
2009/07/07(火) 00:57:38ethereal - http://www.ethereal.com/
Wireshark - http://www.wireshark.org/
tcpdump - http://www.tcpdump.org/
Windump - http://netgroup-serv.polito.it/netgroup/tools.html
WinPcap - http://www.winpcap.org/
pathchar - ftp://ftp.ee.lbl.gov/pathchar/
pchar - http://www.employees.org/~bmah/Software/pchar/
Packetyzer - http://www.networkchemistry.com/products/packetyzer/
libevent - http://www.monkey.org/~provos/libevent/
★プロトコル
TTCP
http://www.sean.de/Solaris/ttcp.html
http://www.kohala.com/start/ttcp.html
UDP Hole Punching
http://homepage3.nifty.com/toremoro/p2p/firewall.html
★IP, TCP実装
http://www.iti.fi/documentation/miniip.html
http://www.sics.se/~adam/uip/
http://www.codeguru.com/Cpp/I-N/network/tcpip/article.php/c5447/
http://www.geocities.jp/bruce_teller/security/garakuta.htm
0008デフォルトの名無しさん
2009/07/07(火) 01:00:45そのおかげで腕がある人間が自己評価よりも高く買ってもらえるんで少しうれしかったりする時代でもあるよ
0009デフォルトの名無しさん
2009/07/10(金) 05:56:530010デフォルトの名無しさん
2009/07/10(金) 07:50:50RFCも読まずに偉そうなことが言えるスレ
0011デフォルトの名無しさん
2009/07/10(金) 11:17:110012デフォルトの名無しさん
2009/07/10(金) 11:35:46個人的には 書き方のスタイル(好み)の違い以上の差が無いと思う。
結局リスト全部調べないとわかんないし。
0013デフォルトの名無しさん
2009/07/10(金) 11:50:17pollはwin32には無いのでselectより移植性が低い
0014デフォルトの名無しさん
2009/07/10(金) 11:55:380015デフォルトの名無しさん
2009/07/10(金) 14:50:13やっぱ、4.4BSDぐらいじゃないか、まともに実装されてるOSは。
http://pc12.2ch.net/test/read.cgi/unix/1065245050/
4.4BSDの設計と実装
0016デフォルトの名無しさん
2009/07/10(金) 23:37:38winsock2で、クライアントアプリを作成、send、recv等のブロック型を別スレッド(Thread2)で利用しています。
で、ファイルのダウンロード中などにその接続を中止したいときがあります。
その際、closesocket()でソケットを閉じるだけでいいのでしょうか?
それともメインスレッドやサブスレッド(Thread3)などからshutdownなどを使用し、その後closesocket()で終了させたほうがいいのでしょうか?
クライアントとして接続を途中で中止させる場合の正しい作法みたいのってあるんでしょうか?
0017デフォルトの名無しさん
2009/07/10(金) 23:53:220018デフォルトの名無しさん
2009/07/11(土) 10:10:03QUITとか送らないといつまでも待ち続ける糞鯖プロセスも有るかもだwww
0019デフォルトの名無しさん
2009/07/11(土) 10:28:420020デフォルトの名無しさん
2009/07/11(土) 17:22:11とりあえず、closesocketのみでもOK、ただし相手によっては手順を踏んだほうが好ましいということですね。
ありがとうございました。
0021デフォルトの名無しさん
2009/07/12(日) 15:43:53子プロセスで受信した情報を親プロセスで読みたいのですが、
調べたところ共有メモリとかいう単語が出てきたのですがいろいろなページを見てもよく理解できませんでした。
shmget(key_t key,int size,int shmflg)の意味もよくわかりません。
keyとshmflgが不明です。どなたか説明お願いします・・
0022デフォルトの名無しさん
2009/07/12(日) 15:52:48お前、危なっかしいから。勉強するな。
四の五の言わずにファイルに書いとけ。
0023デフォルトの名無しさん
2009/07/12(日) 21:55:10shm だけあっても同期とる手法覚えないと意味ねぇし
書き込み途中のデータ読んだりするぞ
そもそも、親子に分ける必然性があるのかと....
0024デフォルトの名無しさん
2009/07/13(月) 00:23:02WSAEventSelectについてなんだけど。
クライアントで使用する場合、
まず WSAEventSelect(sock,hEvent,FD_WRITE|FD_CLOSE); で設定しFD_WRITEイベントで必要なデータを送った後、
WSAEventSelect(sock,hEvent,FD_READ|FD_CLOSE); に設定しなおして受信を待つのが普通なのか?
WSAEventSelect(sock,hEvent,FD_READ|FD_WRITE|FD_CLOSE); にした場合、
まず読み込むデータがないのだからFD_READは来ない。
>アプリケーションは最初の FD_WRITE 通信イベントの設定から、送信で WSAEWOULDBLOCK (英語)が返されるまで送信可能だとみなすことができます。
というのがあるからFD_WRITEはすぐに来るだろ。
で、送信が終わって、相手サーバがレスポンスを返してきたときFD_READが来て受信出来る。
けど、もうこちらから送信するデータがないのにFD_READとFD_READの合間にFD_WRITEが発生した場合はどうすればいいのかな?
こちら側で送信データがない場合は FD_WRITEで処理が終わったときに
WSAEventSelect(sock,hEvent,FD_READ|FD_CLOSE); に再設定しちゃうのが普通なのだろうか?
ちょっと判りにくい文で申し訳ないけど。
0025デフォルトの名無しさん
2009/07/13(月) 00:50:46まず、最初のwriteは普通成功する(ただし、全部送れるとは限らない)。
そして、以後のwriteが失敗した場合(ERROR_IO_PENDINGとか)に
「初めてFD_WRITEを待つ動作」を行う。
ただし、AsyncSelectだと、connect直後にFD_WRITEが来たかな。最初のwrite用に。
要は、「通常時は常に送信可能」と思っておいて
「一旦送信不可と返された時だけ、FD_WRITEを待つ」というやり方にすればよい。
「送るデータが何も無いのにFD_WRITEを待つ」なんてのは、まったく意味が無い。
0026デフォルトの名無しさん
2009/07/13(月) 01:10:38ありがとう。
つまり送るデータがない場合は、WSAEventSelect(sock,hEvent,FD_READ|FD_CLOSE); に設定するってことなのかな?
・・略・・
WSAEventSelect(sock,hEvent,FD_WRITE|FD_CLOSE);
while(WaitForSingleObject(hEvent,INFINITE)!=WAIT_FAILED)
{
if(WSAEnumNetworkEvents(sock,hEvent,&events) == SOCKET_ERROR)
{
if(events.lNetworkEvents & FD_CLOSE)
{
・・略・・
}
if(events.lNetworkEvents & FD_READ)
{
・・略・・(受信)
}
if(events.lNetworkEvents & FD_WRITE)
{
・・略・・(送信)
if(送信するデータがなくなった==true) WSAEventSelect(sock,hEvent,FD_READ|FD_CLOSE);
}
・・略・・
0027デフォルトの名無しさん
2009/07/14(火) 15:19:15ダウンロードする方法はありますでしょうか?
GETはファイルのみですよね?
サーバ側にIndexOf /を出力する設定にして自力で
辿るしかないのでしょうか。
0028デフォルトの名無しさん
2009/07/14(火) 17:11:110029デフォルトの名無しさん
2009/07/14(火) 17:45:20無い。無いものはない。終了。
0030デフォルトの名無しさん
2009/07/14(火) 18:07:230031デフォルトの名無しさん
2009/07/14(火) 18:08:37WebDAVでも入れる
003227
2009/07/14(火) 18:44:17wgetは検討中です。
wgetでダウンロードを実際に行わずにディレクトリツリー
だけ取得できるようなオプションがあれば良いのですが
そのような事は可能でしょうか?
>>31
webdavはサーバ側のディレクトリの作成には対応してますが
サーバ側のディレクトリのダウンロードもいけるのでしょうか?
0033デフォルトの名無しさん
2009/07/14(火) 18:53:270034デフォルトの名無しさん
2009/07/14(火) 20:16:310035デフォルトの名無しさん
2009/07/14(火) 22:32:550036デフォルトの名無しさん
2009/07/14(火) 22:38:32ダウンロードする方法はありますでしょうか?
GETはファイルのみですよね?
サーバ側にIndexOf /を出力する設定にして自力で
辿るしかないのでしょうか。
httpプロトコルで
httpプロトコルで
httpプロトコルで
0037デフォルトの名無しさん
2009/07/14(火) 23:53:55お前恥ずかしい
0038デフォルトの名無しさん
2009/07/15(水) 00:34:29HTTPプロトコルがいいんだー、ふーんHTTPね
じゃぁ、rfc2616読むといいよ
いろいろ書いてあるから
0039デフォルトの名無しさん
2009/07/15(水) 01:01:060040デフォルトの名無しさん
2009/07/15(水) 13:54:24httpプロトコルで丸ごとコピーのプロトコル?を通せば(ry
0041デフォルトの名無しさん
2009/07/17(金) 09:07:27backlog=0とするのはご法度ということですが
バックログをゼロにしたいときはどうしたらよいでしょうか。
0042デフォルトの名無しさん
2009/07/17(金) 10:16:23聞いたこと無いなぁ。
0043デフォルトの名無しさん
2009/07/17(金) 10:24:28受け付けた接続を保持するキューのサイズのはずだから
004441
2009/07/17(金) 10:34:48おっしゃるとおりです。
ようするにlisten()して最初の接続を受け付けた段階で
2つ目以降の接続を受け付けたくないんですが
実際にはaccept()する前にいくつもの接続を受け付けてしまう
(クライアント側からはconnect()が完了したように見える)
のを抑止したいんです。
0045デフォルトの名無しさん
2009/07/17(金) 11:04:02acceptしたあとlistenを再度呼び出して0に再設定すればいい…
と記憶しているが、実際に試した事は無い。
■ このスレッドは過去ログ倉庫に格納されています