我编写了一个多线程服务器,它使用tcplistener和一个控制输入和输出的客户端处理程序类。我还有一个GUI聊天客户端。聊天客户端工作正常,服务器的控制台版本也运行良好。
我在partial(?)Form类中有一个start()方法,当我单击一个按钮时,我从一个新线程运行该方法,它启动TCP侦听器并循环并接受套接字请求。对于每个请求,都会创建一个新的ClientHandler对象,并在将套接字用于新的处理程序线程之前将其传递给该对象。
ClientHandler是表单的另一个类,我在ClientHandler类中将数据写入Form类中的Listbox时遇到了实际问题。我尝试了几种不同的方法,但它们都不起作用,因为它们涉及在ClientHandler中创建一个新的表单类。
对于我应该阅读的任何帮助或建议,我将非常感激。
答案 0 :(得分:0)
确定问题已解决:
我将ServerGUI传递给ClientHandler类,如下所示:
ClientHandler handler = new ClientHandler(clientSocket, "Client " + id.ToString(),this);
然后我可以做任何我想做的事。很少花了我2个小时!