은 무작위 (그러나 작은) 간격으로 연속적인 데이터를 보내는 데 필요한 소켓을 가지고 있다고 가정 할 수 있습니다. 약 20 개 개체를 초 단위로 말할 수 있습니다.소켓을 통한 연속적인 데이터
나는 어떻게 처리해야할지 모르겠다는 가능성이있는 문제를보고 있습니다.
1) 예제 A에서와 같이 한 번에 하나의 객체를 보내면 그 객체는 낱개로 도착할 수 있습니까? 예제 B에서와 같이하는 것이 더 나은가?
2) 데이터를받는 스레드가 전체 개체가 전송되기 전에 데이터를 읽으려고 시도하여 데이터를 분할하고 내가 알아야 할 다른 문제를 만들 수 있습니까?
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처럼 읽기
void run()
{
get socket outputstream
while (isBroadcasting)
{
if (myQueue.isEmpty() == false)
send first object in queue through outputstream
Thread.sleep(25);
}
}
예를 들어 B이
예처럼 보일 수있는 데이터를 전송하는
의사)는겠습니까 이 실행 가능한 솔루션이 될 수 있을까요? 끝날 때까지 양쪽 끝에서 스트림을 열어두고 루핑하고 데이터를 쓰거나 읽는 것이 좋습니다.
질문 2에 대한 추가 정보, 만약 내가 DataOutputStream.Write (byteArray, 0, byteArray.length)를 통해 그들을 보냈을 경우 그들은 전체적으로 다른 쪽에서 읽힐까요? 고마워요, 그리고 당신의 대답을 받아 들일 것입니다. – WIllJBD
아니요. TCP는 메시징 시스템이 아닌 바이트 스트림입니다. – EJP
EJP, 나는이 배열을 다른 쪽에서 읽을 때 바이트 배열을 보내면 무슨 뜻인지 짐작합니다. 배열의 모든 바이트가 그것을 통해 만들었습니까? 그래서 나는 그들로부터 완전한 대상을 만들 수 있습니까? – WIllJBD