假设我有一个需要以随机(但很小)的间隔发送连续数据的套接字,可以说在任何时间跨度内每秒大约 20 个对象。
我正在等待我不确定如何处理的可能问题。
1) 如果我像示例 A 中那样一次发送一个对象,它们仍然可以成束到达吗?以便更好地执行示例 B 中的操作?
2)接收数据的线程是否可能会在发送整个对象之前尝试读取数据,从而拆分数据,并产生另一个我必须注意的问题?
用于发送数据的伪可能如下所示
示例 A
void run()
{
get socket outputstream
while (isBroadcasting)
{
if (myQueue.isEmpty() == false)
send first object in queue through outputstream
Thread.sleep(25);
}
}
示例 B
void run()
{
get socket outputstream
while (isBroadcasting)
{
while (myQueue.isEmpty() == false)
send all object in queue through outputstream
Thread.sleep(25);
}
}
最后像这样读
void run()
{
get socket inputstream
while (isReceiving)
{
get object(s) from inputstream and publish them to main thread
Thread.sleep(25);
}
}
3)这会是一个可行的解决方案吗?是否可以在两端保持流打开,循环和写入/读取数据直到完成?