WHAT'S THIS? 
HEADLINES
LICENSE
PROJECT ARCHIVE
- RSS/1
- WHAT'S NEW
- FEATURES
- RESOURCE
- DOWNLOAD
+ JESSIE 
+ HttpVirtualUsers
+ NSXBASIC
+ genius_othello
CONTACT US
ERSS/1 - L[[hїKɂ鎩JeS@\T[`GW
Java1.4.xɂCubLOڑɂ
@RSS/1b̊J͂߂ɍۂɁCJava1.4.0Œǉꂽjava.nio.channel.*Ȃǂ̃pbP[WgāCIɔubLOڑsȂWebNCAgvOJ܂D
@Õy[WŁuĂΌJ܂vƏĂ܂C̎ނ̃\[XR[h͂܂藎ĂȂlqł̂ŁCtقł܂JĂ݂悤ƎvCL[{[h@Ă鎟łD
@C\[XR[hV܂D
RTS ` RandomTextServer
@Jp̃Tv́C_ȕ𐶐CNCAgƃT[o[̊Ԃł݂ɑMƂCɒPȂ̂łD
@ḾCvO~ȂCivɑ܂D
@ڂׂ_́CT[o[NCAgCƂubLO^Cṽ\PbggĂ邱ƂƎv܂D
@ɃT[o[Ȃǂł́CۂɃ\[XR[hJĂTCg܂(Sun̂̂ł)C̔ubLO\PbggăT[o[ƂƂ肷\[XR[hȂǂC܂ςƂ͌ȂłD
@ǂ悤Ȃւڂ\[XłĈɗ悤ł΍KłD
_E[h
@\[XR[h́CL̃N_E[hĂD
@d̖ZԂʂāCQ~]}CŊJ\[XR[hł̂ŁCX̎蔲܂Ĉ͏CĎgĂD
@rts-2003-10-22.lzh (lh5`)
@ȂC{IWindowsł̓z肵Ă܂DLinux⑼̃vbgtH[ł͓Ă܂D
RpC
@_E[h\[XR[h̃RpCɂ́Cant֗łD̃TCgŌJJavãvÓCꕔ̎IȃR[hĂقƂǂantgƂz肵Ă܂DĂȂꍇ̓_E[hăCXg[Ɨǂł傤D
@A[JCuWJCbuild.xmli[ĂfBNgɈړ܂DāC
@ant
@Ɠ͂ƁCRpC܂D
s@
@͂蓯Cbuild.xmli[ĂfBNgŁC
@ant server
@ƂƃT[o[N܂DT[o[́Cctrl+cȂǂŒ~ԁCғ𑱂܂D
@NCAg̋ŃCfBNgŁC
@java -cp build org.logical_paradox.rts.client.RandomTextClient localhost
@Ƃ܂Dlocalhost́̕CzXgłDIPAhXłԂ񓮍삷Ǝv܂DT[o[̓삵Ă}Vw肵ĂD
fUC
@SelectorSocketChannelȂǂ̃fUCCSuñXSClXɂƂĂ͗ǂfUCȂ̂ȂǁCUNIXselect()Ȃǂ̂܂JavaɎĂ̂悤ȁCVXeR[IfUĈŁCKɃIuWFNgwۂύX܂D
@Ă邱Ǝ̂́CЂƂMFCCAsyncSocketȂǂƓzȂ̂܂D͂ƂƂĂ̂ł傤D
@T[o[/NCAǵC3̃NX𒆐SƂĂ܂D
@Eorg.logical_paradox.rts.Multiplexer
@Eorg.logical_paradox.rts.client.CAsyncClientSocket
@Eorg.logical_paradox.rts.server.CAsyncServerSocket
@ォC
@ESelector()ƃIuWFNgwۂ邽߂̃NX(}`vNT) - SelectorD
@ENCAg\Pbg(g₷邽߂̃NX) - SocketChannelD
@ET[o[\Pbg(g₷邽߂̃NX) - ServerSocketChannelD
@CAsyncSocket/CAsyncServerSocket́CꂼCAsyncSocketpCCAsyncSocket̓CxgXi[̓o^/CȒPȃf[^̑MsȂ\bhĂ܂D
@SelectorUNIXVXeR[select()Ƃقړ悤ȂƂ邽߁CREADEWRITEECONNECTEACCEPT̂ꂼ̏ԂɉăR[obN邽߂̃CxgXi[(AsyncEventListener)pӂ܂D
@Ԃ̐U蕪(R[obN\bȟĂяo)́CMultiplexersȂĂCԂ̕ωSelectorŔꂽꍇɂ́CCAsyncClientSocket/CAsyncServerSocket̂ꂼ̊YCxg\bh(onConnect(),onReceive(),onSend(),onAccept())ĂяoĂ܂D
dg
@dg݂ɂẮCۂɃ\[XR[h𒭂߂Ă炦΂킩Ǝv܂D
@MultiplexeŕCSelectorgďԂ̌oCꂼ̏ԂɉonConnect()Ȃǂ̃\bhĂяoĂ܂D
@CCAsyncSocketAsyncEventListenerimplementsĂ܂CʂɈႤNXł肠܂(ۂɁCCÔƂTCgł́CCallbackƂNXʂɗpӂāC𕪗Ă܂...ǂƎv̂łC܂Ԃł͂ꂪȂ̂??)D
ӎ
@{͒ӂׂƂC̃Tvł͑SlĂȂ܂̂ŁCÔߏĂ܂D
@̃Tv́C悭JĂ̂͂ɗpł悤Ȍ`ɂȂĂƎv̂łCł͂܂D
(1) SocketChannel/ServerSocketChannelcloseĂȂ
@̃vOɂ͂܂܂̂ŁCcloseĂ܂D
@{́CcloseׂłD
@closȅ͐sȂƂƁCׂƂ(shutdownƂ..)̂ŁCQlăR[hǉĂD
@܂CT[o[~ƂNCAg͌oł܂D
@̃eNjbNg΂ł邩܂񂪁C{Iɂ̓T[o[Ƃ̒ʐM莞Ԉȏ㔭ȂꍇɎIcloseCƂōlق悳(?)łDʐMĊJ悤ł΁CĐڑCƂ̂ǂ܂D
@KȕĂ݂ĂD܂́C̃vOCĒĂ݂̂悢܂D
(2) f[^M̃^C~O͂Ă
@̃vO(T[o[/NCAg̗Ƃ)ł́C\ł߂ȃ^C~OŃf[^𑗂Ă܂D
@ꌩ܂Ă悤Ɍ..̂łC{Iɂ͂߂قǂƎv܂D
@RandomTextClient/RandomTextServerŁCMultiplexerɑ΂sendAll()Ă܂Cꂪ悭܂D
@f[^́CCAsyncSocket(̔hNX)onSend()őׂłD
@]āCCAsyncSocketɑMobt@pӂĂāCMultiplexer.sendAll()ł́Cobt@ɑ΂ďo͂CCAsyncSocket.onSend()ɑMobt@̓e𑗐MR[hׂłD
@MɂĂC@̂قǂ܂D̏ꍇC͂Mobt@pӂĂāCCAsyncSocket.onReceive()ɎMobt@֗ߍރR[h܂D
@́C\PbgM\ԂłȂ^C~OőMĂƂłD
@ƑMłĂ悤Ɍ܂CԂCJVMȂwindowsC܂ĂĂ̂ł傤D
(3) busy loop
@RandomTextClient.doWork()RandomTextServer.startServer()Ƃ킩Ǝv܂Cbusy loopłD
@ꉞCM̃^C~O͂ӖƁCbusy loopyӖŁCThread.sleep(n)Ă܂C\ԈĂ܂...ƂƂCɂ邱Ƃ܂D
@ubLOʐM̃eXgvOł邽߁CMultiplexer.doWork()onReceive()onSend()ȂǂŏsȂĂȂꍇCɕԂĂ܂D
@]āCbusy loopɂȂȂ悤ɒӂKv܂D
@busy loop̉ʓ|ł(vO̎dgݓIbusy loopɂȂĂ܂ꍇ)CubLO^Cv̒ʐM̂قIقǂƎv܂D̃Xbh𗧂グȂꍇ́CʂłD
(4) SocketChannel̐ʂ܂葽ƁC{]|
@̃vOł́CƂ肠5SocketChannel(CAsyncClientSocket)Ă܂D
@1Selectorɑ΂Ă܂葽SocketChannel蓖ĂȂقǂƁClIɂ͎v܂D
@SelectorŕSocketChannelꍇC̓̕VOXbhɂȂ邽߁C̎Msďł킯ł͂Ȃ߂łDMf[^̑SocketChannelĂԁCSocketChannelɑ΂M͑҂邱ƂɂȂ܂D
@]āC̃vOłƂ́ConSend()/onReceive()ȂǂɁCԂ̂R[hĂ͂܂D
@ł́CSelectorgꍇ(̃vOł́CMultiplexer𕡐)͂ǂȂ邩D
@ƂȂ̂ł킩܂D
@vOCāCĂ݂ĂD
@̂CQlQlɂĂD
Ql
uLinux\PbgvO~OvC
sA\GfP[VC
ISBN 4-89471-467-1
(ptH[}X헪ɂďĂ܂)
uUNIXlbg[NvO~O2 vol.1vC
sA\GfP[VC
ISBN 4-89471-205-9
(ubLO\PbggʐMɂāCڂĂ܂)
uvOfUĈ߂̃p^[vC
\tgoNpubVOC
ISBN 7973-1439-7
(T[o[ɊւfUCp^[Ȃ)
Java NIOɊւ鏑ЂCIC[甭Ă܂D
{͂܂ĂȂ??݂悤ȋC܂..
WebNCAgAvP[VɂubLOڑɂ
1H: {bgG[WFg̊J
| ŐV |  | VXeTv | _E[h | ₢킹 |
COPYRIGHT 2001,2002 - LOGICAL-PARADOX.ORG