德莱華 2015-06-09 08:12 采纳率: 75%
浏览 1989

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();
    }
}

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

  • 写回答

1条回答

  • Tony萧 2015-06-11 03:20
    关注

    你服务端没有绑定端口

    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?