Java 摆动套筒试验
我正在使用Swing尝试一个程序。Java 摆动套筒试验,java,swing,sockets,Java,Swing,Sockets,我正在使用Swing尝试一个程序。 我使用一个套接字连接到服务器,客户端有gui代码 服务器代码只是读取我使用System.out.println发送的数据。但问题是它挂断了;服务器永远无法获取数据 out.println("Done with the bingo"); 这是服务器应获取的第一个字符串。但它保持在等待状态,就好像什么也没有收到一样。您必须在每次println()之后使用flush(),或者在PrintWriter上激活自动刷新,以便真正发送数据: ... ou
我使用一个套接字连接到服务器,客户端有gui代码
服务器代码只是读取我使用System.out.println发送的数据。但问题是它挂断了;服务器永远无法获取数据
out.println("Done with the bingo");
这是服务器应获取的第一个字符串。但它保持在等待状态,就好像什么也没有收到一样。您必须在每次println()
之后使用flush()
,或者在PrintWriter上激活自动刷新,以便真正发送数据:
...
out = new PrintWriter(os);
out.println("Done with the bingo");
out.flush();
...
或
不要忘记服务器…您必须在每次println()
之后使用flush()
,或在PrintWriter上激活自动刷新,以便真正发送数据:
...
out = new PrintWriter(os);
out.println("Done with the bingo");
out.flush();
...
或
不要忘记服务器…如Carlos所说,在PrintWriter中启用自动刷新应该可以解决您的主要问题。您可能会考虑以下几个其他想法: 如果希望服务器逻辑处理多个客户端请求,请将其包装在一个循环中(例如,
while(true){…}
),并在单独的线程中处理每个请求
由于您在Swing事件调度线程(即ActhPrimeMeD(方法))上生成客户端请求,您可能会考虑将其封装在可运行的或SWANGWORKER中,这样就不会阻塞调度线程。否则,当套接字通信发生时,您可能会注意到UI显示为挂起或未绘制。
如Carlos所说,在PrintWriter中启用自动刷新应该可以解决您的主要问题。您可能会考虑以下几个其他想法: 如果希望服务器逻辑处理多个客户端请求,请将其包装在一个循环中(例如,while(true){…}
),并在单独的线程中处理每个请求
由于您在Swing事件调度线程(即ActhPrimeMeD(方法))上生成客户端请求,您可能会考虑将其封装在可运行的或SWANGWORKER中,这样就不会阻塞调度线程。否则,当套接字通信发生时,您可能会注意到UI似乎挂起或没有绘制。
我发现在swing上编程时,如果笔记本电脑不掉到沙子里,很难保持平衡。@Software Monkey:这就是为什么你要插入插座。如果我们能看一下服务器的代码,那会有帮助。如果有人添加了服务器代码:)我发现在swing上编程时,如果笔记本电脑不掉到沙子里,很难平衡它。@Software Monkey:这就是为什么你要插入插座。如果我们能偷看一下服务器的代码,这会有所帮助。如果有人添加了服务器代码:)...
out = new PrintWriter(os);
out.println("Done with the bingo");
out.flush();
...
...
out = new PrintWriter(os, true); // autoflush
out.println("Done with the bingo");
...