2015-05-16 179 views
0

目的 - 我想发在java(PC)项目的Android应用程序,显示此text.The PC输入的文本连接到wifi的创建热点 由Android手机。java.net.ConnectException:连接被拒绝TCP

的PC /客户端的Java项目代码:

public class EcsDemo { 

    public static void main(String[] args) { 

     System.out.println("Enter SSID to connect :"); 
     Scanner in = new Scanner(System.in); 
     String ssid = in.nextLine(); 
     System.out.println("You entered ssid " + ssid); 
     System.out.println("Connecting to ssid .."); 
     DosCommand.runCmd(DosCommand.connectToProfile(ssid)); 
     // netsh wlan connect name= 
     System.out.println("initializing tcp client .."); 

      try { 
       TCPClient.startTCpClient(); 
      } catch (UnknownHostException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
    } 
} 

public class TCPClient { 
    public static void startTCpClient() throws UnknownHostException, IOException{ 
     String FromServer; 
     String ToServer; 

     Socket clientSocket = new Socket("localhost", 5000); 

     BufferedReader inFromUser = new BufferedReader(new InputStreamReader(
       System.in)); 

     PrintWriter outToServer = new PrintWriter(
       clientSocket.getOutputStream(), true); 

     BufferedReader inFromServer = new BufferedReader(new InputStreamReader(
       clientSocket.getInputStream())); 

     while (true) { 

      FromServer = inFromServer.readLine(); 

      if (FromServer.equals("q") || FromServer.equals("Q")) { 
       clientSocket.close(); 
       break; 
      } else { 
       System.out.println("RECIEVED:" + FromServer); 
       System.out.println("SEND(Type Q or q to Quit):"); 

       ToServer = inFromUser.readLine(); 

       if (ToServer.equals("Q") || ToServer.equals("q")) { 
        outToServer.println(ToServer); 
        clientSocket.close(); 
        break; 
       } else { 
        outToServer.println(ToServer); 
       } 
      } 
     } 
    } 
    } 

Android应用/服务器代码:

public class MainActivity extends Activity { 

    private String TAG = "MainActivity"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     Log.i(TAG, "starting server"); 

     new ServerAsyncTask().execute(); 
    } 
} 

public class ServerAsyncTask extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected Void doInBackground(Void... params) { 
     try { 
      TCPServer.startTCPServer();// initTCPserver(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

} 


public static void startTCPServer() throws IOException{ 
    String fromclient; 
    String toclient; 

    ServerSocket Server = new ServerSocket(5000); 

    System.out.println("TCPServer Waiting for client on port 5000"); 
    Log.i("startTCPServer","TCPServer Waiting for client on port 5000"); 

    while (true) { 
     Socket connected = Server.accept(); 
     System.out.println(" THE CLIENT" + " " + connected.getInetAddress() 
       + ":" + connected.getPort() + " IS CONNECTED "); 
     Log.i("startTCPServer"," THE CLIENT" + " " + connected.getInetAddress() 
       + ":" + connected.getPort() + " IS CONNECTED "); 

     BufferedReader inFromUser = new BufferedReader(
       new InputStreamReader(System.in)); 

     BufferedReader inFromClient = new BufferedReader(
       new InputStreamReader(connected.getInputStream())); 

     PrintWriter outToClient = new PrintWriter(
       connected.getOutputStream(), true); 

     while (true) { 

//   System.out.println("SEND(Type Q or q to Quit):"); 
//   toclient = inFromUser.readLine(); 
// 
//   if (toclient.equals("q") || toclient.equals("Q")) { 
//    outToClient.println(toclient); 
//    connected.close(); 
//    break; 
//   } else { 
//    outToClient.println(toclient); 
//   } 


      fromclient = inFromClient.readLine(); 

      if (fromclient.equals("q") || fromclient.equals("Q")) { 
       connected.close(); 
       break; 
      } else { 
       System.out.println("RECIEVED:" + fromclient); 
      } 

     } 

    } 
} 
} 

运行Android应用程序后,然后当我运行java项目我得到以下异常:

java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source) 
    at java.net.PlainSocketImpl.connect(Unknown Source) 
    at java.net.SocksSocketImpl.connect(Unknown Source) 
    at java.net.Socket.connect(Unknown Source) 
    at java.net.Socket.connect(Unknown Source) 
    at java.net.Socket.<init>(Unknown Source) 
    at java.net.Socket.<init>(Unknown Source) 
    at com.expressecs.javademo.TCPClient.startTCpClient(TCPClient.java:15) 
    at com.expressecs.javademo.EcsDemo.main(EcsDemo.java:41) 

我已经提到了以下链接:

java.net.ConnectException: Connection refused

谢谢!

+0

我是网络编程新手,我以为可以使用TCP/UDP –

+0

@Codester完成为什么不能通过无线网络使用TCP?传输层协议的媒体如何? – Prabhu

+0

@Prabhu如果我错了,请纠正我。 –

回答

1

在您试图连接的IP:端口上没有任何监听。

您的服务器未启动,或正在侦听不同的端口,或者绑定到127.0.0.1而不是0.0.0.0或公共IP地址。

+0

我正在使用本地主机,当我改变它的IP为WiFi。有效。谢谢 –

相关问题