「已注销」 2016-08-04 12:11 采纳率: 0%
浏览 4139

android写了一个发送UDP包到指定IP-端口的程序,可怎么都收不到数据包。。。

这段代码在电脑上用JAVA编译运行,在linux虚拟机上用pcap可以抓到包。。如下图:
图片说明
在linux上可以抓到该数据包:
图片说明
然后再在andiord studio里实现并生成apk安装到手机上,但点击send没有反应啊,linux上没有收到任何数据包。。为什么会这样呢?

package com.test.s.test;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

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

public class MainActivity extends AppCompatActivity {
    private Button buttonSend;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        buttonSend = (Button) findViewById(R.id.buttonSend);

        buttonSend.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "Sent00!", Toast.LENGTH_SHORT).show();
                new Thread(){
                    @Override
                    public void run() {
                        try {
                            txUDP("192.168.1.102", 8888, "abcdefg");
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }.start();
            }
        });
    }
    private void txUDP(String destip, int port, String txdata) throws IOException {
        InetAddress address = InetAddress.getByName(destip);
        byte[] data = txdata.getBytes();
        // 2.创建数据报,包含发送的数据信息
        DatagramPacket packet = new DatagramPacket(data, data.length, address, port);
        // 3.创建DatagramSocket对象
        DatagramSocket socket = new DatagramSocket();
        // 4.向服务器端发送数据报
        socket.send(packet);
        // 5.关闭资源
        socket.close();
    }
}

求解答啊,手机、电脑和linux在同一局域网。

  • 写回答

3条回答 默认 最新

  • 「已注销」 2016-08-04 12:25
    关注

    在AndroidManifest中添加Internet权限:

    评论

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名