【发布时间】:2016-08-26 16:10:15
【问题描述】:
此客户端服务器程序只运行一次,android 将字符串发送到服务器,服务器将其转发给 arduino。当我第一次发送时,arduino 收到了它,但是当我第二次发送时,服务器收到了它,但没有将它转发给 arduino。我看不到问题所在。如果有人可以帮助我,我将不胜感激..
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class server {
private ServerSocket serverSocket;
String type1;
String type;
Socket socket;
Socket s;
DataOutputStream dos;
private ClientHandler c = new ClientHandler();
private Connection con = new Connection();
public server(int port) {
try {
serverSocket = new ServerSocket(port);
new Connection().start();
// new ClientHandler().start();
} catch (IOException e) {}
}
private class Connection extends Thread {
public void run() {
//Socket socket;
while (true) {
try {
socket = serverSocket.accept();
// DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
System.out.println("connected");
DataInputStream dis = new DataInputStream(socket.getInputStream());
type = dis.readUTF();
System.out.println("jag fick det från android: " + type);
new ClientHandler().start();
dis.close();
//c.run();
} catch (IOException e) {}
}
}
}
private class ClientHandler extends Thread {
public void run() {
//System.out.println("1");
try {
// System.out.println("2");
socket = serverSocket.accept();
// System.out.println("3");
System.out.println("got it");
dos = new DataOutputStream(socket.getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while (true) {
try {
if (type == null) {
//break;
continue;
}
// System.out.println("4");
//DataInputStream dis1 = new DataInputStream(s.getInputStream());
//type1 = dis1.readUTF();
//System.out.println("3");
dos.writeUTF(type);
System.out.println("jag fick det från ardunio: " + type);
//dos.flush();
//dos.close();
// con.run();
// type = null;
//socket.close();
break;
//continue;
} catch (IOException e2) {}
}
}
}
public static void main(String[] args) {
new server(3389);
System.out.println(" Server startar");
}
}
【问题讨论】:
-
首先不要吞下异常......如果有什么引发了异常,你至少应该知道引发了异常,至少尝试打印它们。
-
主耶稣那个缩进... xD
-
我看不到编辑我不知道你为什么可以把它发给我?
标签: java multithreading sockets arduino server