我无法通过三星 S9+ 的 DatagramSocket 发送 DatagramPacket(我使用的不是 UI 线程)

Posted

技术标签:

【中文标题】我无法通过三星 S9+ 的 DatagramSocket 发送 DatagramPacket(我使用的不是 UI 线程)【英文标题】:I cannot send a DatagramPacket through DatagramSocket from Samsung S9+ (I use another thread than UI thread) 【发布时间】:2020-01-05 06:42:54 【问题描述】:

我尝试将 UDP 数据包从我的手机发送到 PC - IP 192.168.1.113,在 PC 上我使用“数据包发送器”和 UDP 服务器端口 55777。 但它不起作用,我已经将 UDP 数据包从 Excel 中的 VBA 脚本发送到数据包发送者并且它有效,我也可以通过发送 我已经下载到移动端的 UDP 应用程序,发送到“数据包发送者”。

我使用: android Studio 3.5 SDK平台8.1 手机:三星S9+

我已将 INTERNET 权限添加到清单中:

我从一个新线程发送数据包,因为主线程不允许发送数据包,下面的代码是我继续之前的第一步,但需要先让它工作。

public class MainActivity extends AppCompatActivity 

    private Handler mainHandler = new Handler();

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    

    public void startThread(View view) 

        ExampleRunnable runnable = new ExampleRunnable(10);
        new Thread(runnable).start();

    


    class ExampleRunnable implements Runnable 

        @Override
        public void run() 

            DatagramSocket ds = null;

            String message = "Hello";
            try
                ds = new DatagramSocket();
                InetAddress serverAddr = InetAddress.getByName("192.168.1.113");
                DatagramPacket dp;
                dp = new DatagramPacket(message.getBytes(), message.length(), serverAddr, 55777);
                ds.send(dp);

             catch (IOException e) 
                e.printStackTrace();
             finally 
                if (ds != null) 
                    ds.close();
                
            

        
    

【问题讨论】:

没有互联网,它是基于本地连接的。我对吗?如果程序有任何错误/响应,请在此处发布日志。 添加您的堆栈跟踪以了解问题。您可以关注此代码snippet。 【参考方案1】:

在回答问题之前,有几件事需要确认。您可以提供堆栈跟踪或任何错误(如果有)。在您的情况下,如果没有编程错误,您应该检查您的firewall 一次。为端口55777 上的传入连接请求添加新的firewall rule

【讨论】:

以上是关于我无法通过三星 S9+ 的 DatagramSocket 发送 DatagramPacket(我使用的不是 UI 线程)的主要内容,如果未能解决你的问题,请参考以下文章

三星 S9(18:9) 相机预览拉长

GALAXY S9狂怼iPhone X,三星又拍广告黑苹果?

三星又拍广告黑苹果,这次是拿 GALAXY S9 怼 iPhone X

国行Galaxy S9开测Android 9.0:UI大变样

DownloadManager 无法使用 Pie 下载到三星的外部存储

三星手机wifi连接电脑上网该怎么操作