简而言之,我有两节课:
public final class ServerMain
{
static List<Table> s_AvailableGameTables = new Vector<Table>();
static List<Table> s_OccupiedGameTables = new Vector<Table>();
static List<ServerThread> s_PlayersOnServer = new Vector<ServerThread>();
...
}
class ServerThread extends Thread{
...}
ServerMain
是服务器本身,它通过为刚刚连接到ServerThreads
的每个用户分配一个新的ServerThread
来管理ServerMain
。我的问题很简单:
唯一的方法是保留每个服务器线程对papa ServerMain的引用吗?
我想听听一些好建议。提前致谢。
最佳答案
对于#1,假设实例是可访问的(例如,它们是public
),则不需要实例来访问ServerMain的静态成员,则可以将其作为ServerMain.MyVar
进行访问。
对于#2,是的,您需要研究使用synchronized
语句来防止多个线程同时写入列表,或者使用线程安全列表实现。
对于#3,术语“套接字编程”可以指UDP或TCP。您使用哪种类型的套接字取决于您要实现的类型的应用程序。
关于java - 关于使用Java开发带有套接字的服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6527109/