我的js代码:
const express = require('express'),
http = require('http'),
app = express(),
server = http.createServer(app),
io = require('socket.io').listen(server);
app.get('/', (req, res) => {
res.send('Chat Server is running on port 3000');
});
io.on('connection', (socket) => {
console.log('user connected');
});
server.listen(3000, ()=>{
console.log('Node app is running on port 3000')
});
如果我在浏览器中打开http://127.0.0.1:3000
,则会收到消息
但是在android中,我无法连接到套接字
我的android代码:
try {
Socket socket = IO.socket("http://127.0.0.1:3000");
socket.connect();
Log.i("errorCheck", "ID: "+socket.id());
} catch (URISyntaxException e) {
e.printStackTrace();
}
我测试了其他IP,例如:10.0.2.2、10.0.2.3,localhost,调制解调器配置IP,我的真实IP
和4444、8080端口
但是不行
我使用genymotion模拟器
答案 0 :(得分:2)
android模拟器还具有自己的本地主机,因为它的行为就像一个单独的实体,因此它将无法直接从主机(您的计算机)访问本地主机。如果要从计算机访问本地主机,请使用10.0.2.2,这是主机回送接口的特殊别名。