gpt4 book ai didi

java - TCP 客户端套接字。连接并等待输入流

转载 作者:可可西里 更新时间:2023-11-01 02:33:19 24 4
gpt4 key购买 nike

我有一个 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();
}

最佳答案

试试这个可能有用

第一步

删除这两行:

serverAddr = InetAddress.getByName("192.168.11.254");
Socket clientSocket = new Socket(serverAddr, 5566);

添加这一行:

Socket clientSocket = new Socket("192.168.11.254", 5566);

第二步

删除此代码:

try {
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
while (run) {
serverMessage = in.readLine();
mHandler.post(new DisplayToast(context, "TCP : " + serverMessage));
}
}

添加这段代码:

try {
char[] buffer = new char[2048];
int charsRead = 0;
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
while ((charsRead = in.read(buffer)) != -1) {
String message = new String(buffer).substring(0, charsRead);
Log.e("In While", "msg :"+message);
}
}

关于java - TCP 客户端套接字。连接并等待输入流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21529030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com