udp-android应用开发在创建DatagramSocket对象时绑定不 了端口

问题描述

android应用开发在创建DatagramSocket对象时绑定不 了端口

package com.example.clientudp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button fasong =null;
private static final int PORT=4328;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fasong=(Button)findViewById(R.id.kaishi);
fasong.setOnClickListener(new kaishianniu());
}
class kaishianniu implements OnClickListener{
public void onClick(View arg0) {
xianCheng s=new xianCheng();
Thread aa=new Thread(s);
aa.start();
}
}
//关键语句:://///////////////////////////////////////////////////////////////////////
class xianCheng implements Runnable{

    @Override
    public void run() {
        // TODO Auto-generated method stub
        try{
            System.out.println("chuangjian");
            DatagramSocket socket =new DatagramSocket(PORT);
            System.out.println("套接字创建成功");
            System.out.println(socket.getPort());
            InetAddress address=InetAddress.getByName("10.16.6.32");
            String str="hello";
            byte data[]=str.getBytes();
            System.out.println(socket.getPort());
            DatagramPacket packet=new DatagramPacket(data, data.length,address,PORT);
            System.out.println(socket.getPort());
            socket.send(packet);
            socket.close();
            System.out.println("发送成功");
        }catch(IOException e){
            System.out.println("fail");
            e.printStackTrace();
            System.out.println(e.getMessage());
        }
    }

}

}、
////////////////////////////////////////////////////////////////////////////
使用真机测试结果:

服务器代码::
package UDP;

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

public class myUDP {
public static void main(String[] args) {
xianCheng a=new xianCheng();
Thread th=new Thread(a);
th.start();
}
}
class xianCheng implements Runnable{

public void run() {
    // TODO Auto-generated method stub
    try{
        System.out.println("chuangjian");
        DatagramSocket socket=new DatagramSocket();
        System.out.println("server ok");
        byte buffer[] =new byte [1024];
        DatagramPacket packet=new DatagramPacket(buffer, buffer.length);
        System.out.println("等待接受");
        socket.receive(packet);
        System.out.println("receive ok");
        String result = new String(packet.getData(),packet.getOffset(),packet.getLength());
        System.out.println("you enter is ->"+result);
        socket.close();
    }catch(IOException e){
        System.out.println("server fail");
        e.printStackTrace();
    }
}

}
上面是服务器端代码,虽然真机显示发送成功,但是服务器端没有接收到数据包,求各位大神指点迷津???

解决方案

你服务端没有绑定端口

解决方案二:

你服务端没有绑定端口

时间: 2024-10-03 22:48:05

udp-android应用开发在创建DatagramSocket对象时绑定不 了端口的相关文章

android应用-Android应用开发 对话框创建

问题描述 Android应用开发 对话框创建 private void showDialog(String msg){ Builder builder =**new AlertDialog.Builder(HttpUtil.this);** // AlertDialog.Builder builder =new Builder(HttpUtil.this); builder.setMessage(msg) .setCancelable(false) .setPositiveButton("确定&

java+ 程序 子类继承父类 创建子类对象时构造方法中无显示调用父类构造方法

问题描述 java+ 程序 子类继承父类 创建子类对象时构造方法中无显示调用父类构造方法 创建子类对象时,Student s = new Student(""school""); 该构造方法中没有显示调用父类的构造方法,但还是编译成功了,该构造方法调用自身的构造函数,此构造函数中有调用父类的构造方法,执行成功的原因是什么 解决方案 不用显示调用,会自动执行父类的构造 解决方案二: 子类的构造方法中,如果没有显示调用父类的构造方法,会默认调用父类无参的构造方法.类似于

Android App开发中创建Fragment组件的教程_Android

你可以认为Fragment作为Activity的一个模块部分,有它自己的生命周期,获取它自己的事件,并且你可以在Activity运行的时候添加或者移除它(有点像你可以在不同的Activity中重用的一个"子Activity").这节课程讲述如何使用Support Library继承Fragment类,所以你的应用程序仍然是兼容运行的系统版本低于Android1.6的设备. 注意:如果你决定你的应用要求的最低的API级别是11或者更高,你不需要使用Support Library,反而能使

Android App开发中创建Fragment组件的教程

你可以认为Fragment作为Activity的一个模块部分,有它自己的生命周期,获取它自己的事件,并且你可以在Activity运行的时候添加或者移除它(有点像你可以在不同的Activity中重用的一个"子Activity").这节课程讲述如何使用Support Library继承Fragment类,所以你的应用程序仍然是兼容运行的系统版本低于Android1.6的设备. 注意:如果你决定你的应用要求的最低的API级别是11或者更高,你不需要使用Support Library,反而能使

Android性能优化篇:Android中如何避免创建不必要的对象

在编程开发中,内存的占用是我们经常要面对的现实,通常的内存调优的方向就是尽量减少内存的占用.这其中避免创建不必要的对象是一项重要的方面. Android设备不像PC那样有着足够大的内存,而且单个App占用的内存实际上是比较小的.所以避免创建不必要的对象对于Android开发尤为重要. 本文会介绍一些常见的避免创建对象的场景和方法,其中有些属于微优化,有的属于编码技巧,当然也有确实能够起到显著效果的方法. 使用单例 单例是我们常用的设计模式,使用这种模式,我们可以只提供一个对象供全局调用.因此单例

Android中怎样避免创建不必要的对象_Android

前言 随着在APP中分配更多的对象,你就得实施定期的强制垃圾收集,会导致用户体验产生小卡顿现象.并发垃圾处理器在Android 2.3中引入,但是总是应该避免不必要的工作,因此应该在不必要的时候避免创建对象实例. 在编程开发中,内存的占用是我们经常要面对的现实,通常的内存调优的方向就是尽量减少内存的占用. Android设备不像PC那样有着足够大的内存,而且单个App占用的内存实际上是比较小的.所以避免创建不必要的对象对于Android开发尤为重要. 本文会介绍一些常见的避免创建对象的场景和方法

Android中怎样避免创建不必要的对象

前言 随着在APP中分配更多的对象,你就得实施定期的强制垃圾收集,会导致用户体验产生小卡顿现象.并发垃圾处理器在Android 2.3中引入,但是总是应该避免不必要的工作,因此应该在不必要的时候避免创建对象实例. 在编程开发中,内存的占用是我们经常要面对的现实,通常的内存调优的方向就是尽量减少内存的占用. Android设备不像PC那样有着足够大的内存,而且单个App占用的内存实际上是比较小的.所以避免创建不必要的对象对于Android开发尤为重要. 本文会介绍一些常见的避免创建对象的场景和方法

android 机顶盒开发onkeylistener没反应

问题描述 android 机顶盒开发onkeylistener没反应 如图绑定了onkeylistener事件,也设置焦点了,但是遥控器按了没反应

socket-android 客户端开发好之后下载到手机上,ip 和 端口应该怎么设置才能连接到我的电脑(服务器)

问题描述 android 客户端开发好之后下载到手机上,ip 和 端口应该怎么设置才能连接到我的电脑(服务器) android 客户端开发好之后下载到手机上,ip 和 端口应该怎么设置才能连接到我的电脑(服务器) 解决方案 HTTP请求的地址改为你的ip和端口就可以了.例如:http://192.168.1.29:80/api.php?device=1111