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

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

■ このスレッドは過去ログ倉庫に格納されています
0001lmtp2009/07/07(火) 00:46:28
主にソケットに関しての質疑応答スレッドです。

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辺り
足りなかったら適当に付け足してね

前スレ
ネットワークプログラミング相談室 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/
0237デフォルトの名無しさん2009/08/03(月) 00:25:55
>>235
よく見掛ける状態遷移図は参考程度にしといた方がいいっ
てスティーブンスも言ってたんだけど。

http://pfsense.org/~cmb/diagrams/tcpStateDiagram1.gif

たとえば↑で斜体になってるのがアプリが呼び出すメソッ
ドと思えばいい。んでもって矢印が状態遷移だけど、
A/B というのは「A が発生したら B を実施して遷移す
る」の意味。「Close/FIN」はアプリが close() したら
FIN を送出して状態遷移。

そして TCP/IP は双方が established 状態になったら
サーバ/クライアントなんていう区別は無くなるんだよ
(そもそも、双方同時に Active open してもコネクショ
ンが張れるように設計されてる)。

ESTABLISHED から下に遷移している左側がアプリによる
close() の遷移で、右側がその応答である FIN を受け
取ったときの遷移。

双方同時に close() したらどうなるかとか考えてみる
といいよ。
0238デフォルトの名無しさん2009/08/03(月) 00:30:39
おっと、書き忘れてた。

CLOSE_WAIT ってのは「FIN は来たからアプリの
close() 待ちだな」っていう状態で、この時まだ送信で
きる状態。

FIN_WAIT ってのは「アプリは close() したから FIN
待ちだな」っていう状態で、この時まだ受信出来る状態。
■ このスレッドは過去ログ倉庫に格納されています