こんにちは、HaxeでThreadServerを作成しようとしています。私はこの言語が大好きです。数日前にC#とAS3が混在しています。Haxeタイプが見つかりません:クライアント
だから、問題は、私はなどをキックするためにそれらを後で例にアクセスするにはリストのクライアントを保存しようとすると、私はそれを必要ですが、それは、入力したが、それは、それをここにアクセスできるようにする必要があり、同じパッケージ内にありますない私に語りましたファイル名とエラーのコードです。
エラー:
var cl:Client = { id: num, cSocket:s };
var cData = new ClientData(cl);
Main.clients.add(cData);
Server.hx:
package;
import neko.Lib;
import sys.net.Socket;
import neko.net.ThreadServer;
import haxe.io.Bytes;
typedef Client =
{
var id : Int;
var cSocket:Socket;
}
typedef Message =
{
var str : String;
}
class Server extends ThreadServer<Client, Message>
{
// create a Client
override function clientConnected(s : Socket) : Client
{
var num = Std.random(100);
Lib.println("client " + num + " is " + s.peer());
var cl:Client = { id: num, cSocket:s };
var cData = new ClientData(cl);
Main.clients.add(cData);
return cl;
}
override function clientDisconnected(c : Client)
{
Lib.println("client " + Std.string(c.id) + " disconnected");
}
override function readClientMessage(c:Client, buf:Bytes, pos:Int, len:Int)
{
var complete = false;
var cpos = pos;
while (cpos < (pos+len) && !complete)
{
complete = (buf.get(cpos) == 0);
cpos++;
}
if (!complete) return null;
var msg:String = buf.getString(pos, cpos-pos);
return {msg: {str: msg}, bytes: cpos-pos};
}
override function clientMessage(c : Client, msg : Message)
{
Lib.println(c.id + " got: " + msg.str);
}
}
ClientData.hx:
package;
class ClientData
{
var client:Client;
public function new(c:Client)
{
this.client = c;
}
}
Main.hx:
package;
class Main
{
public static var clients=new List<ClientData>();
static function main()
{
var server = new Server();
server.run("localhost", 5588);
}
}
助けてくれてありがとう!
すっごいはちょうどそれがClient.hxするタイプを動かさなかったし、それが働いていた、この答えを愚かSRS感謝しています!素晴らしい、ちょうど新しい何かを学んだ:) – Reptic
あなたは愚かではありません。 Haxeの言葉は(ここではよくあることですが)ここでは「最小の驚きの原則」(https://en.wikipedia.org/wiki/Principle_of_least_astonishment)に違反しています。 P.S.答えがあなたのために働いた場合は、[同意する](https://stackoverflow.com/help/someone-answers)してください。 – Thomas
私はそれを受け入れるだろうちょうど簡単な質問を行うためにカップルの分を待つ必要があります大きなプロジェクトなどのためのThreadServerスケーラブルですか? – Reptic