无法连接到服务器(从安卓 emulator到java服务器)
我已经用java编写了一个服务器,用安卓编写了一个客户端,但是我无法用安卓代码找到服务器
注1:我在java中使用了完全相同的代码,可以轻松地连接到服务器
注2:我在Stackoverflow中的一些线程中使用了“10.0.2.2”和“我的计算机ip”,但它们都不起作用
注3:我使用的是安卓 studio
如果有人能帮我,我将不胜感激
我在onCreate里放了他的名字:
cl1 = new Client("192.168.189.1");
cl1.startRunning();
这是我的客户端类:
package com.example.tavoes;
import java.io.*;
import java.net.*;
import java.util.Scanner;
import 安卓.util.Log;
public class Client {
private ObjectOutputStream output;
private String message = "";
private String serverIp;
private Socket connection;
private Scanner scanner;
// constructor
public Client(String host) {
super();
serverIp = host;
}
// connect to server
public void startRunning() {
try {
connectToServer();
setupStream();
whileChatting();
} catch (EOFException eofException) {
eofException.printStackTrace();
} catch (IOException ioException) {
ioException.printStackTrace();
} /*finally {
closeChat();
}*/
}
// connect to server
private void connectToServer() {
try {
connection = new Socket(InetAddress.getByName(serverIp), 4444);
} catch (IOException e) {
e.printStackTrace();
}
}
// setup streams to send and receive messages
private void setupStream() throws IOException {
output = new ObjectOutputStream(connection.getOutputStream());
output.flush();
//input = new ObjectInputStream(connection.getInputStream());
//System.out.println("Inside Streams are setup!");
}
// While chatting with server
private void whileChatting() throws IOException {
//do {
//output.flush();
output.writeObject("<Request connection \"1\" />");
scanner=new Scanner(connection.getInputStream());
message = scanner.nextLine();
//System.out.println(message);
//message = (String) input.readObject();
}
// close the streams and sockets
private void closeChat() {
try {
output.close();
//input.close();
connection.close();
//System.out.println("Closing connection");
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
}
# 1 楼答案
仅将其标记为已解决,以备将来参考: 为了使用您需要的网络创建任何连接
通过包含许可,允许应用程序使用网络 到舱单
在一个单独的线程上完成所有的网络活动 而不是主线程,或者使用AsyncTask