我正在编写一个客户机-服务器服务,其中我的服务器正在向客户机发送文件。
在下面的示例中,我尝试将文件名列表发送给我的客户机。
服务器
serverSocket = new ServerSocket(4000);
connsock = serverSocket.accept();
objectOutput = new ObjectOutputStream(connsock.getOutputStream());
List<String> file_names = new ArrayList<String>();
File[] files = new File("C:\\ServerMusicStorage").listFiles();
for (File file : files) {
if (file.isFile()) {
file_names.add(file.getName());
}
}
objectOutput.writeObject(file_names);
objectOutput.flush();
客户
newclientSocket = new Socket("localhost", 4000);
objectInput1 = new ObjectInputStream(newclientSocket.getInputStream());
System.out.println("<---Available files--->");
// get list of files from server
Object file_names = objectInput1.readObject();
file_list = (ArrayList<String>) file_names;
int count = 1;
for (int i = 0; i < file_list.size(); i++) {
System.out.println(count + ")" + file_list.get(i));
count++;
}
因此,当我在javanetbeanside上运行我的程序时,它可以按我所希望的那样工作。我拿到文件了
<---Available files--->
1)blank.wav
2)fuark.wav
对于docker连接,我用它创建了一个网络
docker network create client_server_network
我用它来运行服务器
docker run --env SERVER_HOST_ENV=server --network-alias server --network client_server_network -it server
客户和
docker run --network client_server_network -it clientimage
虽然客户机-服务器通过docker容器连接成功,但当我运行这两个服务时,我没有得到任何输出。
<---Available files--->
我被困在这里好几天了。有什么问题吗?如果我需要提供任何其他信息,请告诉我。
p、 在docker的服务器端,我将服务器映像设置为主机 newclientSocket = new Socket("server", 4000)
暂无答案!
目前还没有任何答案,快来回答吧!