クラスを使用するクラスゲームがありますTCPServer
。での低レベルの送受信をすべて分離したいと思いTCPServer
ます。そこでTCPServer
、着信メッセージを常に読み取る別のスレッドを提供します。これらのメッセージをに返したいと思いますGame
。しかし、私はこれを行う方法がわかりません。Game
また、クライアントにメッセージを送信することによって応答するこれらのメッセージに反応する必要があります。
TCPServer
スレッドをからに移動することで可能だと思いますGame
が、これはこれを解決するための最良の方法ですか?2つのクラスを分けておく方がいいのではないでしょうか。
次の擬似コードがあります。
public class Game{
TCPServer tcpServer = new TCPServer();
public void execute(){
// do something
Object o = new Object;
send(o);
if(receive(o)){ // WRONG
// do something with the receive object
}
}
private void send(Object o){
tcpServer.send(o);
}
private Object receive(Object o){
return tcpServer.receive(o);
}
public class TCPServer extends Thread{
private ServerSocket serverSocket;
Socket client = new Socket;
public void run(){
Object o = receive();
// How do I get this object o in the Server class in function execute()?
}
private Object receive(){
return serverSocket.listen();
}
public void send(Object o){
client.send(o);
}