私は、ローカルネットワーク上で他のデバイスとソケットを介して通信するアプリケーションを持っています。私はファイルとテキストも転送したいと思っています。 私の問題は、ファイルとテキストの両方を取得して受信で管理する方法がわからないことです。ストリームを使用して文字列とファイルをソケットで送受信する
これは私のテキストレシーバです:
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();
}
私は一緒にテキストやファイルを受信することができますか?
Tnx、どうやってストリームでこのフォーマットを構築し、受け取るのですか?サンプルコードを説明してくれますか? –
いくつかの良いチュートリアルが見つかりました。http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.htmlおよびhttp://crunchify.com/java-nio-non-blocking-io-with-server -client-example-java-nio-byte-buffer-selector-java-nio-vs-io / – cmoaciopm