目标 -我要将在Java(PC)项目中输入的文本发送到显示此文本的android应用。该PC已连接到由android移动设备创建的wifi热点。

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:连接被拒绝

谢谢!

===============>>#1 票数:1 已采纳

您尝试连接的IP:端口没有监听。

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

  ask by Rachita Nanda translate from so

未解决问题?本站智能推荐:

15回复

java.net.ConnectException:连接被拒绝

我正在尝试实现TCP连接,从服务器端一切正常,但是当我运行客户端程序(从客户端计算机)时,出现以下错误: 我尝试更改套接字号以防万一,但无济于事,有谁知道导致此错误的原因及解决方法。 服务器代码: 客户代码:
2回复

Java套接字 - java.net.ConnectException:连接被拒绝:连接

我创建了一个简单的聊天程序,它使用套接字进行通信。 当我在localhost上运行时,一切正常。 但是,当我尝试使用我的IP链接客户端和服务器程序时,会出现问题。 http://www.canyouseeme.org/可以通过端口9999连接到我的服务器,所以我知道服务器很好,端口是打
1回复

Java TCP服务器和客户端-java.net.ConnectException:连接超时

尝试连接到TCP服务器时出现此错误: 这是来自客户端的代码: 公共类ChessServerConnection { 这是服务器上的代码。 我关闭了两台计算机的防火墙...
1回复

Java套接字错误:java.net.ConnectException:连接被拒绝:连接[重复]

可能重复: Java套接字 - java.net.ConnectException:连接被拒绝:连接 我创建了一个简单的聊天程序,它使用套接字进行通信。 当我在localhost上运行时,一切正常。 但是,当我尝试使用我的IP链接客户端和服务器程序时,会出现问题。 ht
1回复

Android Raspberry pi W / System.err(13264):java.net.ConnectException连接被拒绝

您好,我是linux和android编程的新手,我的想法是通过TCP套接字将Raspberry Pi的数据包数据发送到Android Phone。 当连接开始时,数据流很好,少数数据发送后,流有时会“阻塞”。 我的Android手机IP 192.168.43.1我的静态Raspberry
2回复

java.net.ConnectException:连接被拒绝:connect

尝试使用apache文件上传上传文件,但出现此错误: 昨天在工作,但是今天不工作
2回复

如何解决java.net.ConnectException:连接被拒绝

我在设备中运行我的android应用程序但未连接到device.Its给出以下错误
1回复

错误:与主机的TCP / IP连接失败。 java.net.ConnectException:连接被拒绝:连接

我在用 Windows 7的 Netbeans IDE 7.1.2 SQL Server Management Studio Express 2005 JDK1.6 连接到数据库时出现以下错误: com.microsoft.sqlserver.
1回复

Java java.net.ConnectException:连接被拒绝

将应用程序复制到服务器时遇到问题。 该程序在我的测试机器(Mac OS X)上运行良好,但是当我在我的服务器(Windows Server 2008)上部署它时,我收到以下错误: java.net.ConnectException:连接被拒绝 我确定我已正确打开端口以进行出站
2回复

RMI(java.net.ConnectException:连接被拒绝:连接)

我正在尝试运行名为SampleServer的服务器。 我正在使用Windows,这就是我所做的: 在cmd中: 我收到以下错误: 我尝试使用不同的端口#,例如4719用于rmiregistry,但我收到相同的错误。 我确保我的防火墙已被禁用,但问题仍然存在。 我确保端