我必须将一个短字符串作为文本从客户端发送到服务器,然后再发送一个二进制文件。
如何使用相同的套接字连接发送二进制文件和字符串?
服务器是 java 桌面应用程序,客户端是 Android 平板电脑。我已经将其设置为在客户端和服务器之间双向发送短信。我还没有完成二进制文件发送部分。
一种想法是设置两个同时运行的独立服务器。我认为如果我使用两个不同的端口号并在应用程序中的两个不同线程上设置服务器,这是可能的。而且我必须在 Android 应用程序的两个服务上设置两个并发客户端。
另一个想法是以某种方式使用 if else 语句来确定正在发送两种类型的文件中的哪一种,无论是二进制文本,并使用适当的方法来接收正在发送的文件类型的文件。
发送文本的示例代码
PrintWriter out;
BufferedReader in;
out = new PrintWriter(new BufferedWriter
(new OutputStreamWriter(Socket.getOutputStream())) true,);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println("test out");
String message = in.readLine();
发送二进制文件的示例代码
BufferedOutputStream out;
BufferedInputStream in;
byte[] buffer = new byte[];
int length = 0;
out = new BufferedOutputStream(new FileOutputStream("test.pdf));
in = new BufferedInputStream(new FileOutputStream("replacement.pdf"));
while((length = in.read(buffer)) > 0 ){
out.write(buffer, 0, length);
}