도와주세요!!
글 수 15,339
2010.06.21 10:26:00 (*.240.208.55)
36122
현재 EZ-AU1250 보드를 사용하고 있는 유저 인데요
PC에서 UDP로 데이터를 전송하는데 패킷 크기는 512Byte이고 이 패킷을 PC에서는 계속 전송을 해주고 있습니다.
그런데 보드에서 받는 패킷의 양은 많이 손실 됩니다... 한데이터의 크기는 대략 300K 정도 됩니다.
혹시 보드 사양 때문에 이렇게 보내는 패킷을 다 받지 못하는 건가요? 보니까 대충 90K정도가 넘어가면 데이터를 받지 못합니다.
패킷을 다 받아야 다른 처리를 하게 되는데 하드웨어 문제인지... 아니면 코드 문제인지 갈피를 못잡겠네요
답변 부탁드리겠습니다.
UDP는 User Datagram Protocol로 512Byte를 전송하면 상대방은 정확히 512Byte를 받습니다.
그러나 대신에 연결 지향이 아니기 때문에 첫 번째 패킷이 전송되었다고 하더라도 두 번째, 세 번째를 바로 받지
않는다면 두 번째나 세 번째, 또는 그 다음의 어떤 패킷이라도 받지 못할 수 있습니다.
내부 네트워크가 아니라 웹까지 거친다면 순서도 뒤죽박죽으로 받을 수 있습니다.
그러므로 받는 쪽에서는 수신하면 버퍼링하고 빨리 다음 패킷을 받을 수 있도록 해주어야 합니다.
패킷 하나 받아 놓고 데이터를 검색하고 자료를 찾는 다고 시간을 보내면 다음 패킷을 받지 못할 수도 있습니다.
우선 전송하는 쪽에서 천천히 보내 보세요. 그러면 차이가 보이실 것입니다.