【发布时间】:2014-02-03 13:45:42
【问题描述】:
我有一个 wifi sd 卡,它会在我用相机拍摄照片后向我发送 TCP 包,其中包含有关内存中新图像的信息。
在终端上,我可以使用这个 netcat 命令读取输入流。 netcat 连接 ip 192.168.11.254 并监听 5566 端口。第二行是我收到的图片路径。
$ nc 192.168.11.254 5566
>/mnt/sd/DCIM/109_0302/IMGP0101.JPG
在我的应用程序中,我有一个 Java 客户端套接字,它连接到相同的 ip 和端口。但是我没有像在 netcat 中那样收到输入流,没有任何反应。
void startListenForTCP (){
Thread TCPListenerThread = new Thread(new Runnable() {
@Override
public void run() {
Boolean run = true;
String serverMessage = null;
InetAddress serverAddr = null;
try {
serverAddr = InetAddress.getByName("192.168.11.254");
Socket clientSocket = new Socket(serverAddr, 5566);
try{
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
while (run) {
serverMessage = in.readLine();
mHandler.post(new DisplayToast(context, "TCP : " + serverMessage));
}
} catch(UnknownHostException e) {
mHandler.post(new DisplayToast(context, "UnknownHostException"));
} catch(IOException e) {
mHandler.post(new DisplayToast(context, "IOException"));
} finally {
clientSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
});
TCPListenerThread.start();
}
【问题讨论】: