【发布时间】:2019-10-31 07:03:00
【问题描述】:
我使用socket 创建了一个简单的android 项目,它将String 发送到在我的桌面上运行的server。我检查了它运行良好的java代码。甚至我的 android Activity 运行顺利。调用onclick() 方法的连接。但是当我试图在我的 android 设备上运行时,我在服务器上什么也没有,也没有收到任何错误。
感谢您的帮助,这是我的活动代码
package com.example.controler;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void send_a(View v){
try {
Socket csoc = new Socket("x.x.x.x", 6666);
DataOutputStream outToSerever = new DataOutputStream(csoc.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(csoc.getInputStream()));
outToSerever.writeBytes("A");
csoc.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
【问题讨论】:
-
and nither receiving any error我们不相信你:NetworkOnMainThreadException. -
正如@blackapps 指出的那样,您不能阻止“主循环”。使用 AsyncTask、Service 类或 Volley 库developer.android.com/training/volley/simple
-
AsyncTask
doInBackground(Param...param)方法? -
@momo 和 blackapps 感谢它现在正常工作