android开发socket编程之udp发送实例分析

本文实例讲述了android开发socket编程之udp发送实现方法。分享给大家供大家参考。具体分析如下:

需要实现的功能:采用udp下的socket编程,当按下确认键,模拟器发送文本框数据,pc机上的网络调试助手接收

一、环境:

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"; //这是要传输的数据
  byte out [] = str.getBytes(); //把传输内容分解成字节
  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"; //这是要传输的数据
    byte out [] = str.getBytes(); //把传输内容分解成字节
    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程序设计有所帮助。

(0)

相关推荐

  • Android开发中Socket通信的基本实现方法讲解

    一.Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据.而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求. 那么,什么是socket?Socket又称套接字,在程序内部提供了与外界通信的端口,即端口通信.通过建

  • android Socket实现简单聊天功能以及文件传输

    干程序是一件枯燥重复的事,每当感到内心浮躁的时候,我就会找小说来看.我从小就喜爱看武侠小说,一直有着武侠梦.从金庸,古龙,梁羽生系列到凤歌(昆仑),孙晓(英雄志)以及萧鼎的(诛仙)让我领略着不一样的江湖. 如果你有好看的武侠系列小说,给我留言哦.题外话就扯这么多了,接着还是上技术. 看看今天实现的功能效果图: 可以这里使用多台手机进行通讯,我采用的服务器发送消息. 是不是只有发送消息,有些显得太单调了.好,在发送消息的基础上增加文件传输.后期会增加视频,音频的传输,增加表情包.那一起来看看图文消

  • Android中使用socket通信实现消息推送的方法详解

    原理 最近用socket写了一个消息推送的demo,在这里和大家分享一下. 主要实现了:一台手机向另外一台手机发送消息,这两台手机可以随时自由发送文本消息进行通信,类似我们常用的QQ. 效果图: 原理:手机通过socket发送消息到服务器,服务器每接收到一条消息之后,都会把这条消息放进一个messageList里面,服务器会不停地检测messageList是否含有消息,如果有的话就会根据messageList里面item的数据,推送到相应的另一端手机上面. 下面简单画了一个图来说明这个原理: 演

  • python服务器与android客户端socket通信实例

    本文实例讲述了python服务器与android客户端socket通信的方法.分享给大家供大家参考.具体实现方法如下: 首先,服务器端使用python完成,下面为python代码: 复制代码 代码如下: #server.py  import socket  def getipaddrs(hostname):#只是为了显示IP,仅仅测试一下      result = socket.getaddrinfo(hostname, None, 0, socket.SOCK_STREAM)      re

  • Android Socket通信详解

    一.Socket通信简介  Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据.而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求. 那么,什么是socket?Socket又称套接字,在程序内部提供了与外界通信的端口,即端口通信.通过

  • Android中Socket通信的实现方法概述

    本文实例简述了Android中Socket通信的实现方法,具体内容如下: 一.socket通信概述 通俗的来说套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口. 应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题.多个TCP连接或多个应用程序进程可能需要通过同一个TCP

  • Android编程之客户端通过socket与服务器通信的方法

    本文实例讲述了Android编程之客户端通过socket与服务器通信的方法.分享给大家供大家参考,具体如下: 下面是一个demo,Android客户端通过socket与服务器通信. 由于Android里面可以完全使用java.io.*包和java.net.*包,那么,实际上,逻辑部分与J2SE没有区别.只是UI代码不一样. Android客户端通过socket与服务器通信分为下面5步: (1)通过IP地址和端口实例化Socket,请求连接服务器: 复制代码 代码如下: socket = new

  • Android开发之Socket通信传输简单示例

    本文实例讲述了Android Socket通信传输实现方法.分享给大家供大家参考,具体如下: 1.开篇简介 Socket本质上就是Java封装了传输层上的TCP协议(注:UDP用的是DatagramSocket类).要实现Socket的传输,需要构建客户端和服务器端.另外,传输的数据可以是字符串和字节.字符串传输主要用于简单的应用,比较复杂的应用(比如Java和C++进行通信),往往需要构建自己的应用层规则(类似于应用层协议),并用字节来传输. 2.基于字符串传输的Socket案例 1)服务器端

  • 详解Android使用Socket对大文件进行加密传输

    前言 数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文.它的核心是密码学. 数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法.它利用密码技术对信息进行加密,实现信息隐蔽从而起到保护信息的安全的作用. 项目中使用Socket进行文件传输过程时,需要先进行加密.实现的过程中踏了一些坑,下面对实现过程进行一下总结. DES加密 由于加密过程中使用的是DES加密算法,下面贴一下DES加密代码: //秘钥算法 privat

  • android开发socket编程之udp发送实例分析

    本文实例讲述了android开发socket编程之udp发送实现方法.分享给大家供大家参考.具体分析如下: 需要实现的功能:采用udp下的socket编程,当按下确认键,模拟器发送文本框数据,pc机上的网络调试助手接收 一.环境: win7 + eclipse + sdk 二.代码: package test.soket; //import com.test_button.R; import java.io.DataOutputStream; import java.io.IOException

  • Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】

    本文实例讲述了Python 网络编程之UDP发送接收数据功能.分享给大家供大家参考,具体如下: demo.py(UDP发送数据): import socket # 导入socket模块 def main(): # 创建一个udp套接字 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定本机ip和端口号 (发送数据时,如果不绑定,系统会随机分配端口号.接收数据时,一般需要手动绑定ip和端口) udp_socket.b

  • Android编程之MD5加密算法实例分析

    本文实例分析了Android编程之MD5加密算法.分享给大家供大家参考,具体如下: Android MD5加密算与J2SE平台一模一样,因为Android 平台支持 java.security.MessageDigest这个包.实际上与J2SE平台一模一样. 算法签名: 复制代码 代码如下: String getMD5(String val) throws NoSuchAlgorithmException 输入一个String(需要加密的文本),得到一个加密输出String(加密后的文本) pa

  • Android编程之ListPreference用法实例分析

    本文实例讲述了Android编程之ListPreference用法.分享给大家供大家参考,具体如下: 先展示一下效果图,如下所示: 项目代码如下: package com.my.listpreference; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.On

  • Android开发中Widget的生命周期实例分析

    本文实例分析了Android开发中Widget的生命周期.分享给大家供大家参考,具体如下: Widget是android中桌面小控件,创建时必须继承AppWidgetProvider,AppWidgetProvider其实就是继承了BroadcastReceiver的Receiver的一种,widget有以下几个生命周期方法: 1.onEnabled方法:此方法在Widget第一次被创建的时候调用,并且只调用一次,此方法中常放入初始化数据,服务的操作. 2.onReceive方法:通Broadc

  • Android网络编程之UDP通信模型实例

    什么是Android UDP? UDP是User Datagram Protocol的简称,中文名是用户数据包协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务.它是IETF RFC 768是UDP的正式规范.在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层-传输层,处于IP协议的上一层.UDP有不提供数据报分组.组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的.UDP用来支持那些需要在计算机之间传输数据

  • python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)

    UDP广泛应用于需要相互传输数据的网络应用中,如QQ使用的就是UDP协议.在网络质量不好的情况下,使用UDP协议时丢包现象十分严重,但UDP占用资源少,处理速度快,UDP依然是传输数据时常用的协议. 下面是用python实现UDP服务器的代码: 复制代码 代码如下: #!/usr/bin/env pythonimport socketaddress=('127.0.0.1',10000)s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)s.bind

  • Android开发实现拨打电话与发送信息的方法分析

    本文实例讲述了Android开发实现拨打电话与发送信息的方法.分享给大家供大家参考,具体如下: xml布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation=&qu

  • C# 网络编程之UDP

    一.概述 UDP和TCP是网络通讯常用的两个传输协议,C#一般可以通过Socket来实现UDP和TCP通讯,由于.NET框架通过UdpClient.TcpListener .TcpClient这几个类对Socket进行了封装,使其使用更加方便, 本文就通过这几个封装过的类讲解一下相关应用. 二.UDP基本应用 与TCP通信不同,UDP通信是不分服务端和客户端的,通信双方是对等的.为了描述方便,我们把通信双方称为发送方和接收方. 发送方: 首先创建一个UDP对象: string locateIP

  • Java网络编程之UDP实现原理解析

    UDP实现通信非常简单,没有服务器,每个都是客户端,每个客户端都需要一个发送端口和一个接收端口.一个客户端向另一个客户端发送消息时,需要知道对方的IP和接收端口,所用到的类为DatagramSocket. DatagramSocket socket =new DatagramSocket(),发送端socket,若不指定端口,系统自动分配 DatagramSocket socket =new DatagramSocket("接收信息端口"),接收端socket,需要指定接收端口 ​ 若

随机推荐