[英]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.