package com.example.tristan.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
import java.io.IOException;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.UnknownHostException;
public class MainActivity extends AppCompatActivity {
private Socket client;
int serverPort = 8888;
String serverIP = "192.168.1.6";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fctClient();
}
public void fctClient() {
try {
Toast toast = Toast.makeText(getApplicationContext(), "OK", Toast.LENGTH_SHORT);
InetAddress addr = InetAddress.getByName(serverIP);
SocketAddress socketAddress = new InetSocketAddress(addr,serverPort);
//SocketAddress socketAddress = new InetSocketAddress(serverIP, serverPort);
client = new Socket();
toast.show();
client.connect(socketAddress);
toast.show();
toast.show();`enter code here`
client.close();
} catch (UnknownHostException e) {
Toast toast = Toast.makeText(getApplicationContext(), "KO1", Toast.LENGTH_LONG);
toast.show();
e.printStackTrace();
} catch (IOException e) {
Toast toast = Toast.makeText(getApplicationContext(), "KO2", Toast.LENGTH_LONG);
toast.show();
e.printStackTrace();
}
}
} 你好, 我正在尝试使用套接字在Python服务器上连接Android上的客户端。 Python服务器运行良好,但Android代码无法连接通过IOException的服务器。 有人能告诉我我的错误吗?代码在“client.connect(socketAddress);”行上失败。这让我认为错误的命令用于生成socketAddress。 我发现以下链接遇到了同样的问题,但他的解决方案对我不起作用。
(Java/Android) Client-side Socket throwing IOException
提前感谢你, TL
答案 0 :(得分:0)
您可以在logcat中清楚地看到NetworkOnMainThreadExeption。所有互联网代码都应该在线程或AsyncTask中执行。
如果修改代码,则删除所有Toasts,因为它们无法在线程或AsyncTask的doInBackground中调用。
答案 1 :(得分:0)
好的,谢谢!这也是一个问题!由于AsyncTask,我现在能够连接到我的服务器。 另一个问题是我在Manifest XML中忘记的权限。 谢谢你的回答!