2011-11-28 70 views
1

在Android上,我尝试实现一个简单的TCP监听器线程(或从任何地方复制它)。它应该只是等待一个文本,然后做一些事情。文本被发送,这部分工作,但这个监听器线程甚至不会创建用于正确收听的套接字。简单的TCP监听器线程为Android ..我没有连接

有没有人有一个想法,最新错误或另一个简单的方法对我? 该文本是由我自己定义的,而不是html。我只发现了太复杂的http处理程序。

import java.lang.*; 
import java.io.*; 
import java.net.*; 

public class Client implements Runnable { 



    public static void main(String args[]) { 

     System.out.print("Listening Thread started\n"); 

     try { 
     Socket skt = new Socket("localhost", 2999); 
     BufferedReader in = new BufferedReader(new 
      InputStreamReader(skt.getInputStream())); 
     System.out.print("Received string: '"); 

     while (!in.ready()) {} 
     System.out.println(in.readLine()); // Read one line and output it 

     System.out.print("'\n"); 


     in.close(); 
     } 
     catch(Exception e) { 
     System.out.print("Whoops! It didn't work!\n"); 
     System.err.println(e); 
     } 
    } 
    public Client() { 

    } 
@Override 
public void run() { 
    // TODO Auto-generated method stub 
    main(null); 
} 

} 
+0

您是否遇到异常?什么例外? – MByD

+0

11-28 15:39:22.488:I/System.out(279):Listening Thread started 11-28 15:39:22.528:I/System.out(279):哎呀!它没有工作! 11-28 15:39:22.548:W/System.err(279):java.net.ConnectException:localhost/127.0.0.1:2999 - 连接被拒绝 – nico

回答

3

您显示的代码用于创建客户端套接字,而不是服务器套接字。请参阅下面的TCP服务器套接字示例,取自SystemBash

class TCPServer 
{ 
    public static void main(String argv[]) throws Exception 
     { 
     String clientSentence; 
     String capitalizedSentence; 
     ServerSocket welcomeSocket = new ServerSocket(6789); 

     while(true) 
     { 
      Socket connectionSocket = welcomeSocket.accept(); 
      BufferedReader inFromClient = 
       new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); 
      DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); 
      clientSentence = inFromClient.readLine(); 
      System.out.println("Received: " + clientSentence); 
      capitalizedSentence = clientSentence.toUpperCase() + '\n'; 
      outToClient.writeBytes(capitalizedSentence); 
     } 
     } 
} 
+0

谢谢。我的头被封锁了,这显然是更多的逻辑;) – nico