我有一个Java应用程序输入图像,给出了许多选项来编辑它们(裁剪,调整大小),然后将它们导出到本地存储。如何为Java应用程序提供网络功能?
我目前正尝试使用java.net将服务器附加到此应用程序,但运行到几个问题,因为我从来没有这样做过。
- 我有激活服务器的图形用户界面的按钮,这样应用程序可以接收命令 - 问题是服务器使用while循环,不会停止,直到它与客户断开连接,这意味着程序直到那时才能运行。我假设它需要创建一个新线程,但是如何在不创建新实例的情况下向应用发送命令?
- 我想通过服务器将图像从客户端发送到应用程序。目前使用JFileChooser来选择图像的客户端,但是如何将它发送到流中并在另一端重新创建它?
我的代码只是修改了此client和server的版本。它只是删除回显功能并根据客户端发送的字符串运行一个方法。 (例如客户端发送“打开”,以服务器 - 服务器运行开放(){}方法
编辑: 代码:
这是服务器代码ImageGUI是与所有的命令的GUI。并保持openImage方法 私人INT PORTNUMBER = 8888;
public Server() {
try (
// Create Server socket
ServerSocket theServer = new ServerSocket(portNumber);
// Create socket for client
Socket clientSocket = theServer.accept();
// Use to write to client
PrintWriter out = new PrintWriter(
clientSocket.getOutputStream(), true);
// Used to read from client
BufferedReader in = new BufferedReader(new InputStreamReader(
clientSocket.getInputStream()));) {
// Waits for Client commands
String clientCommand;
while ((clientCommand = in.readLine()) != null) {
if (clientCommand.contains("open")) {
// Runs open method in ImageGUI
new ImageGUI().openImage(); // I don't want this because it
// will create another GUI
// I want to run the openImage()
// in the GUI already open
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
向我们展示一些代码。 – 2014-02-19 15:41:08
'但是如何在不创建新实例的情况下向应用程序发送命令?咦? – SLaks
我在代码中添加了一条评论来解释我的意思。 – user2916314