繁体   English   中英

使用套接字交替发送和接收byte []

[英]Alternately sending and receiving byte[] using Socket

我需要使用Socket交替发送和接收字节[]。 这个怎么做 ? 使用什么包装器? 这样可以吗,或者我可以更快地做到这一点

public boolean SendMessage(byte[] data){
        try{
            socket = new Socket(ipAddress, port);
            OutputStream socketOutputStream = (OutputStream) socket.getOutputStream();
            socketOutputStream.write(data);
            socket.close();
            return true;
        }
        catch(Exception exc){
            System.err.println(exc.getStackTrace());
        }
        return false;
    }

调用此函数后,我调用函数以接收字节,然后再次发送=> receive等。 有更快的方法吗?

使用相同的套接字进行读取和写入,只需同步两个应用程序,以便一个读取而另一个写入,反之亦然。

您应该使用相同的套接字,而不是每次都创建一个新的套接字来发送/接收然后关闭它。

说,创建两个线程。 一个作为SenderThread,另一个作为ReceiverThread。 SenderThread创建一个套接字,然后获取输出流,您可以使用带有标志的while循环来指示它是否应该运行。

Eg: while (running){

应该在ReceiverThread中完成相同的操作。 创建套接字和输入流。 然后运行while循环。

在while循环中,您可以提供将数据写入流或从流中读取数据的逻辑。

使用wait和notify,以便线程和谐运行。

暂无
暂无

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

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