繁体   English   中英

通过套接字发送字符串

[英]Sending strings over socket

因此,我尝试使用树莓派和笔记本电脑之间的套接字通过客户端/服务器进行通信。 我已经能够在pi上使用简单的python脚本来发送基本字符串,以了解其工作原理的基本知识。 现在,我有了一些更高级的知识,并开始将OpenCV与USB摄像头一起使用,以制作一个可以检测摄像头框架中运动的安全系统。 我有带安全系统的python脚本与服务器连接,并且应该在便携式计算机的控制台中实时打印出“已占用”或“未占用”(最终应该打开一个弹出菜单,警告该动作是检测到),但是一旦我关闭与Pi的连接,它只会打印出很长的字符串“ Occupied”或“ Unoccupied”。 为什么不实时打印? 这是笔记本电脑上的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);

        }


    }

 }

答案就是@jtahlborn所说的。 我要做的就是在python代码中发送完每条消息后,在一行中添加一行。 我通过执行类似于client_socket.send(text+'\\n')来实现此目的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM