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

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权限:

    评论

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办