我正在尝试从Android设备向PC发送一个简单的字符串。 我设法通过wifi发送字符串(因为在LAN网络上),但代码不能超过3g。 我正在使用的代码是:
class send extends AsyncTask
{
@Override
protected Object doInBackground(Object... params) {
try {
InetAddress serverAddr = InetAddress.getByName("IP here")
Socket socket = new Socket(serverAddr, 8564);
String message = "sample_message";
try {
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(message);
} catch(Exception e) {}
finally {
socket.close();
}
} catch (Exception e) {}
return null;
}
}
答案 0 :(得分:0)
您是否尝试过创建DataOutputStream
之类的
DataOutputStream dos=new DataOutputStream(socket.getOutputStream());
dos.writeBytes(message + '\n');
而不是:
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(message);
答案 1 :(得分:0)
您的PC连接在哪里?它是NAT背后的局域网吗?您是否使用LAN IP地址作为serverAddr?什么是" IP在这里"?
如果您使用NAT后面的本地网络IP地址,您将永远无法连接。
如果你有路由器/ wifi AP,启用端口转发到你的PC并使用ISP提供的公共IP地址作为serverAddr。