2011-11-09 104 views
0

我的Android应用程序应该连接到java tcp服务器时出现问题。我收到Connection拒绝错误。Android应用程序和Java服务器问题。拒绝连接

server.java

public class Server 
{ 
public static void main(String argv[]) throws Exception 
{ 
ServerSocket welcomeSocket = new ServerSocket(6789); 
System.out.println("welcome into server"); 
while(true) 
{ 

Socket connectionSocket = welcomeSocket.accept(); 
if (connectionSocket != null) 
{ 
System.out.println(connectionSocket); 
Client client = new Client(connectionSocket); 
client.start(); 
} 
} 
} 
} 

class Client extends Thread 

private Socket connectionSocket; 
private String clientSentence; 
private String ans; 
private String temak="test"; 
private String capitalizedSentence; 
private BufferedReader inFromClient; 
private DataOutputStream outToClient; 

public Client(Socket c) throws IOException 
{ 
connectionSocket = c; 
} 

public void run() 
{ 
try 
{ 
inFromClient = new BufferedReader(new nputStreamReader(connectionSocket.getInputStream())); 
outToClient = new DataOutputStream(connectionSocket.getOutputStream()); 
clientSentence = inFromClient.readLine(); 
System.out.println(clientSentence); 
capitalizedSentence = clientSentence.toUpperCase() + '\n'; 
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); 
ans = inFromUser.readLine(); 
outToClient.writeBytes(capitalizedSentence); 
if("hej".equals(clientSentence)){ 
outToClient.writeBytes(ans + " tester hej"+ "\n"); 
} 
else{ 
outToClient.writeBytes(ans+"\n"); 
} 
} 
catch(IOException e) 
{ 
System.out.println("Errore: " + e); 
} 
} 
} 

从客户端片段在Android上:

String sentence = null; 
String modifiedSentence; 
String tempus; 
try { 

Socket clientSocket = new Socket("localhost", 6789); 
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); 
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); 
Log.d("pre","TCP Connected."); 

outToServer.writeBytes(sentence + 'n'); 
modifiedSentence = inFromServer.readLine(); 
Log.d("sentence ", modifiedSentence); 
Log.d("post","TCP Success !!!"); 

clientSocket.close(); 

} catch (Exception e) { 
Log.d("error","TCP Error: " + e.toString()); 
} 

程序试图在本地主机连接端口6789

+0

您可以编辑您的代码示例以正确执行缩进操作。现在很难阅读。 – Gray

+0

localhost是android设备不是你的PC/Mac/Whatever – Selvin

+0

那么如何获得设备外?把我的IP? – iie

回答

1

根据例如(编辑:) this Selvin写道,你应该使用IP地址10.0.2.2连接到运行模拟器的PC。 (localhost127.0.0.1从仿真器内部循环回仿真器。)