我有一个应用程序,通过套接字与其他设备在本地网络上进行通信。在那里我也想传输文件和文本。 我的问题是我不知道如何获取文件和文本并在接收中管理它们!
这是我的文字接收者:
try {
outputStream = new DataOutputStream(socket.getOutputStream());
outputstream_external = outputStream;
inputStream = new BufferedReader(new InputStreamReader(socket.getInputStream()));
log("success to set streams");
}
catch (IOException e1) {
log("Error: Connection is not stable, exit");
shutdown();
}
while (true) {
String message = null;
try {
message = inputStream.readLine();
if (message == null) {
return;
}
G.log(message);
JSONObject object = new JSONObject(message);
String command = object.getString(Command.COMMAND);
G.log(message);
这是我的文字发件人:
public void sendCommand(String command) {
G.log("send command + " + command);
command = command.replace("\n", " ") + "\n";
if (outputStream == null) {
return;
}
final String commend = command;
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
outputStream.write(commend.getBytes());
}
catch (IOException e) {
e.printStackTrace();
G.log("sendCommand into catch");
}
}
});
thread.start();
}
我如何一起收到短信和文件?
答案 0 :(得分:1)
这就是为什么有这么多应用级网络协议,如HTTP,FTP,SMTP。
在您的情况下,您需要两种类型的消息,一种是字符串,另一种是文件。每条消息都应符合预定义的格式。例如,
[4字节消息类型] + [4字节消息长度] + [消息内容]
您在发送方构建消息,并在接收方解析消息。
但是,在大多数情况下,您不必重新发明轮子。在互联网上搜索,找出是否有适合您的现有协议。