android開發(fā)socket編程之udp發(fā)送實例分析
本文實例講述了android開發(fā)socket編程之udp發(fā)送實現(xiàn)方法。分享給大家供大家參考。具體分析如下:
需要實現(xiàn)的功能:采用udp下的socket編程,當按下確認鍵,模擬器發(fā)送文本框數(shù)據(jù),pc機上的網(wǎng)絡調(diào)試助手接收
一、環(huán)境:
win7 + eclipse + sdk
二、代碼:
package test.soket;
//import com.test_button.R;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.Socket;
import java.net.SocketException;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class test_socket extends Activity {
public static TextView show;
public static Button press;
public static boolean flag;
private static final int MAX_DATA_PACKET_LENGTH = 40;
private byte[] buffer = new byte[MAX_DATA_PACKET_LENGTH];
private DatagramPacket dataPacket;
private DatagramSocket udpSocket;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//開辟控件空間
show = (TextView)findViewById(R.id.editText1);
press = (Button)findViewById(R.id.button1);
flag = false;
//soket_send thread = new soket_send();
//thread.init();
//thread.start();
try
{
udpSocket = new DatagramSocket(5554);
}
catch (SocketException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
dataPacket = new DatagramPacket(buffer, MAX_DATA_PACKET_LENGTH);
String str = "hello,jdh"; //這是要傳輸?shù)臄?shù)據(jù)
byte out [] = str.getBytes(); //把傳輸內(nèi)容分解成字節(jié)
dataPacket.setData(out);
dataPacket.setLength(out.length);
dataPacket.setPort(5554);
try
{
InetAddress broadcastAddr = InetAddress.getByName("192.168.0.248");
dataPacket.setAddress(broadcastAddr);
udpSocket.send(dataPacket);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
press.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
flag = true;
/*
String str = "hello,jdh"; //這是要傳輸?shù)臄?shù)據(jù)
byte out [] = str.getBytes(); //把傳輸內(nèi)容分解成字節(jié)
dataPacket.setData(out);
dataPacket.setLength(out.length);
*/
//獲得輸入框文本
CharSequence str =test_socket.show.getText();
byte out[] = str.toString().getBytes();
dataPacket.setData(out);
dataPacket.setLength(out.length);
try
{
InetAddress broadcastAddr = InetAddress.getByName("192.168.0.248");
dataPacket.setAddress(broadcastAddr);
udpSocket.send(dataPacket);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
}
界面如下:

注意:在模擬器IP為本機IP,端口為模擬器名稱
希望本文所述對大家的Android程序設計有所幫助。
相關(guān)文章
如何在Android中實現(xiàn)一個簡易的Http服務器
這篇文章主要介紹了如何在Android中實現(xiàn)一個簡易的Http服務器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
修改Android簽名證書keystore的密碼、別名alias以及別名密碼
這篇文章主要介紹了修改Android簽名證書keystore的密碼、別名alias以及別名密碼的相關(guān)資料,需要的朋友可以參考下2015-12-12
Android實現(xiàn)一個比相冊更高大上的左右滑動特效(附源碼)
這篇文章主要介紹了Android實現(xiàn)一個比相冊更高大上的左右滑動特效(附源碼),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02
Android模擬實現(xiàn)網(wǎng)易新聞客戶端
這篇文章主要為大家詳細介紹了Android模擬實現(xiàn)網(wǎng)易新聞客戶端,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05
Android 自定義View時使用TypedArray配置樣式屬性詳細介紹
這篇文章主要介紹了Android 自定義View時使用TypedArray配置樣式屬性詳細介紹的相關(guān)資料,需要的朋友可以參考下2016-11-11
Android SdkVersion的區(qū)別及獲取版本信息方法
下面小編就為大家?guī)硪黄狝ndroid SdkVersion的區(qū)別及獲取版本信息方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
Android Flutter基于WebSocket實現(xiàn)即時通訊功能
WebSocket是一種在單個TCP連接上進行全雙工通信的協(xié)議。本文將利用Flutter WebSocket實現(xiàn)即時通訊功能,文中示例代碼講解詳細,感興趣的可以了解一下2022-03-03
AndroidStudio 配置 AspectJ 環(huán)境實現(xiàn)AOP的方法
本篇文章主要介紹了AndroidStudio 配置 AspectJ 環(huán)境實現(xiàn)AOP的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02

