我能夠通過UDP套接字正確地發送我的數據,但是當我收到數據時,它一直在等待接收命令我不知道是什麼造成這個 請看看在我的代碼下面發送和接收數據在UDP套接字java android
我能夠在服務器端從android設備正確recive數據,但是當我從服務器端發送數據到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