我想使用Socket.io与pc和Android之间进行通信。代码:
http://socket.io/blog/native-socket-io-and-android/
public class MainActivity extends ActionBarActivity {
private Boolean socketConnection;
TextView tw;
Socket mSocket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tw = (TextView)findViewById(R.id.textView);
try {
mSocket = IO.socket("http://localhost:3000");
mSocket.connect();
socketConnection = true;
tw.setText("Yes");
}catch(URISyntaxException ex) {
socketConnection = false;
tw.setText("No");
}
}
我在调试应用程序时;服务器应用程序虽然关闭,客户端说连接成功。当我打开服务器应用程序时,服务器应用程序无法看到客户端。
答案 0 :(得分:2)
@Patosai指出,您的代码问题在于您正在连接localhost:3000
。这意味着您正在尝试连接运行应用程序的设备(Android手机或模拟器)。这将始终表明它已连接,因为设备始终可以与自身连接。
假设您连接到与PC相同的网络,则需要找到您的PC的IP地址以及您选择进行通信的端口。例如,如果您确定您的PC的IP为123.456.2.1
且您的Socket.IO代码中的端口为4000
,则您需要写mSocket = IO.socket("http://123.456.2.1:4000")