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

时间:2011-01-31 13:37:21

标签: java

我需要使用Socket交替发送和接收byte []。这该怎么做 ? 使用什么包装? 这样可以,或者我可以更快地完成这项工作

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;
    }

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

Eg: while (running){

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

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

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