我正在尝试使用带有haxe(4)和HashLink(1.9.0)的HTTP服务器,并且套接字似乎不能很好地工作.
import haxe.io.Error;
import sys.net.Host;
import sys.net.Socket;
class Main {
static public function main() {
var _aSocketDistant = new List();
var _oSocketMaster = new Socket();
_oSocketMaster.bind( new Host( 'localhost' ), 8000);
_oSocketMaster.setBlocking( false );
_oSocketMaster.listen( 9999 );
while(true) {
// Accepting socket
var oSocketDistant = _oSocketMaster.accept();
if ( oSocketDistant != null ) {
trace( 'opening : ' + oSocketDistant.peer() );
oSocketDistant.setBlocking( false );
_aSocketDistant.add( oSocketDistant );
}
// Trying to read from each socket
for ( oSocketDistant in _aSocketDistant ) {
try {
trace( oSocketDistant.read() );
} catch ( e :Dynamic ) {
if ( e != Error.Blocked )
throw e;
}
}
}
}
}
运行这段代码,然后使用firefox调用http://localhost:8000/,将获得以下信息:
Main.hx:27: opening : {host : 127.0.0.1, port : 65154}
远程套接字永远不会读取任何消息.
它不发送请求吗?