データをUDPソケット経由で正しく送信できますが、データを受信すると、受信コマンドで待機しています。何が原因なのかわかりません。 私のコードでUDPソケットでデータを送受信します。android
私は、サーバー側でアンドロイドデバイスから適切にデータを受け取ることができますが、サーバー側からアンドロイドデバイスにデータを送信すると受信しません。私はそれが受信サーバから他のクライアントなどのPCアプリケーションにデータを送信し、データが表示されたときにはなくrpoperly
class Task implements Runnable {
@Override
public void run() {
try {
String messageStr = "feed";
int server_port = 8888;
InetAddress local = InetAddress.getByName("10.0.2.2");
int msg_length = messageStr.length();
byte[] message = messageStr.getBytes();
DatagramSocket s = new DatagramSocket();
//
DatagramPacket p = new DatagramPacket(message, msg_length, local, server_port);
s.send(p);//properly able to send data. i receive data to server
for (int i = 0; i <= 20; i++) {
final int value = i;
message = new byte[30000];
p = new DatagramPacket(message,message.length);
s.receive(p); //keeps on waiting here but i am sending data back from server, but it never receives
final byte[] data = p.getData();;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(new Runnable() {
@Override
public void run() {
progressBar.setProgress(value);
imageView.setImageBitmap(BitmapFactory.decodeByteArray(data,0,data.length));
}
});
}
}
catch(Exception ex)
{
}
}
}
私は、これは今少し古いですけど、あなたは、このいずれかを把握しましたか?あなたと同じ問題で立ち往生してください。私はサーバーにデータを取得していますが、何も返信しません。 – patrickdamery
UDPの場合は、送信ごとにデータサイズを小さくしてみてください。これが私の問題を解決しました。 – user2539602
私はしばらくしてそれを理解しましたが、データのサイズは送信側と受信側の両方で同じでなければなりません。そうでなければ、不安定な音声が得られます – patrickdamery