UDP를 통해 노트북 (Linux)에서 Android 디바이스로 데이터 전송을 구현하려고합니다. 노트북에 android, netcat : UDP를 통해 2048 바이트 이상 보내는 법
나는 시작 :cat /home/me/my/file.txt | nc -u 192.168.150.3 12345
또는 :
nc -u 192.168.150.3 12345 < /home/me/my/file.txt
같은 결과를 얻는.
Android 기기에 내 코드는 다음과 같습니다
byte[] msg = new byte[100000];
DatagramPacket p = new DatagramPacket(msg, msg.length);
DatagramSocket s = new DatagramSocket(portNumber);
s.receive(p);
message = new String(msg, 0, p.getLength());
s.close();
내가 = 맞아 100000을 msg.length을 볼 수 있습니다 "메시지 ="와 함께 줄에 중단 점을 설정합니다. 하지만 p.getLength()는 단지 2048입니다. 즉, 내 데이터의 일부만 전송된다는 의미입니다. "message"에 "file.txt"에있는 모든 데이터가 포함되어 있지 않다는 의미입니다. 왜 그렇게됩니까? 내가 뭘 잘못 했니?
감사합니다. 그건 내 의심 이었어. 어쩌면 netcat이 udp를 통해 파일을 보낸 후에 무엇을 기다리는 지 알 수 있습니까? – user3137385
@ user3137385 : netcat은 피어의 데이터를 기다립니다. UDP에 파일 끝이나 연결이 없기 때문에 죽일 때까지 기다릴 것입니다. –
udp를 통해 매 초마다 파일을 보내야하는 스크립트를 작성하고 싶습니다. 저것을 자동으로 기다리는 어떤 가능성든지 있는가? – user3137385