開發Android手機間UDP傳輸資料系統要謹慎

來源:互聯網
上載者:User

開發Android手機間UDP傳輸資料系統要謹慎

Tips:
1 手機UDP同固定ip電腦通訊問題不大,但是也會略微丟包,這裡的問題實在抓不到原因,覺得Android網路層的UDP實現上面是不是有特殊考慮。
2 手機UDP同手機UDP通訊基本不靠譜,所以手機見通過RTP發送資料包進行視頻傳輸,非常不靠譜,會莫名其妙的收不到資料,過一會又能莫名其妙的收到資料。目前我們沒有找到原因。
3 如果要手機間RTP視頻,通過伺服器中轉RTP資料包是可以的。

貼個用戶端:

package com.jouhu.udptestclient;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;


import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class UDPTestClientActivity extends Activity {
/** Called when the activity is first created. */


public EditText et;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button)findViewById(R.id.button1);
et = (EditText)findViewById(R.id.editText1);
et.setText("5006");
btn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
String data = "just a test";
// TODO Auto-generated method stub
DatagramSocket socket;
try {
socket = new DatagramSocket();
//socket.setBroadcast(true);
InetAddress serverIP = InetAddress.getByName("192.168.1.109");
DatagramPacket packet = new DatagramPacket(data.getBytes(), data.length(),serverIP,Integer.parseInt(et.getText().toString()));
socket.send(packet);
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
});
}
}

伺服器端採用了Handler+執行緒模式,我將單獨寫博來闡述,這是一個比較通用的模型,可以解決線程同UI間通訊的問題。

-END-


本文同發地址:http://doandroid.info/2012/03/14/%E5%BC%80%E5%8F%91android%E6%89%8B%E6%9C%BA%E9%97%B4udp%E4%BC%A0%E8%BE%93%E6%95%B0%E6%8D%AE%E7%B3%BB%E7%BB%9F%E8%A6%81%E6%85%8E%E9%87%8D/

歡迎轉載,註明出處。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.