所以我尝试使用覆盆子pi和笔记本电脑之间的套接字通过客户端/服务器进行通信。我已经能够在我的pi上使用简单的python脚本发送基本字符串,以了解它是如何工作的基本概念。现在我有了更高级的一点,开始使用OpenCV和USB摄像头来制作一个小小的安全系统来检测摄像机框架中的运动。我有安全系统与服务器连接的python脚本,它应该打印出来"被占用"或者"空置"在我的笔记本电脑上的控制台中实时(最终应该打开一个弹出菜单,警告检测到运动),但它只打印出一长串巨大的字符串"被占用的"或者"空置"一旦我关闭与我的Pi的连接。为什么不实时打印出来?这是我笔记本电脑上的java代码,不幸的是我的Pi现在在学校,我无法访问python代码,但我明天会发布。
public class PyComms {
public static void main(String[] args) {
try{
ServerSocket server = new ServerSocket(4444);
System.out.println("Waiting for client on port 4444");
while(true){
Socket connected = server.accept();
System.out.println("CONNECTED WITH CLIENT");
BufferedReader inFromPi = new BufferedReader(new InputStreamReader(connected.getInputStream()));
while(true){
String fromclient = inFromPi.readLine();
if(fromclient.equalsIgnoreCase("Occupied")){
System.out.println("Client responded with "+fromclient + "\n");
}
else{
System.out.println("Client responded with "+fromclient + "\n");
connected.close();
}
}
}
}
catch(Exception e){
System.out.println(e);
}
}
}
答案 0 :(得分:0)
答案正是@jtahlborn说的。我所要做的就是在python代码中发送每条消息后包含一个新行。我通过做类似client_socket.send(text+'\n')