gpt4 book ai didi

java - Android 使用套接字时崩溃

转载 作者:行者123 更新时间:2023-12-02 01:44:12 27 4
gpt4 key购买 nike

我正在尝试从 Windows 服务器上的 C++ TCP 套接字获取数据包。我用 Putty 测试了我的服务器。它可以工作,但我无法从 Android 创建客户端。我测试了这段代码,当我打开应用程序时它立即崩溃。

API 级别:26测试手机:Oreo 8.0

编辑:现在连接后 3-4 秒就会崩溃。我尝试了其他 TCP 客户端应用程序,它们工作正常。

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

Intent intent = getIntent();
String message = intent.getStringExtra(LoginActivity.EXTRA_MESSAGE);

// Capture the layout's TextView and set the string as its text
TextView textView2 = findViewById(R.id.textView2);
TextView textView = findViewById(R.id.textView);
textView2.setText(message);
ip = message;

Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
TextView textView = findViewById(R.id.textView);
Socket socket = new Socket("192.168.1.108", 2970);
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
textView.setText(in.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
});
thread.start();
}

最佳答案

我认为这应该是你的错误:android.os.NetworkOnMainThreadException

尝试创建线程并围绕它进行套接字调用

        Thread thread = new Thread(new Runnable() {
@Override
public void run() {
//Do your socket call here

}
});

thread.start();

另外,不要忘记在线程外部更新用户界面( TextView )

关于java - Android 使用套接字时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53947295/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com