Android套接字连接被拒绝(同一网络中的设备)

时间:2016-05-17 06:31:34

标签: java android sockets

我正在尝试通过套接字编程连接两个Android设备。这些设备在同一网络中,因此一个将充当服务器,另一个将充当客户端。

这是我的服务器代码:

 public class WhiteServer extends AsyncTask<Integer,String,String> {
private View root;

    public WhiteServer(View view){
        root = view;


    }

    @Override
    protected String doInBackground(Integer... params) {

        try {
            ServerSocket serverSocket = new ServerSocket(params[0]);
            publishProgress("Sever is active on portNumber "+params[0]);
            Socket s = serverSocket.accept();
            publishProgress("Connected client is"+s.getRemoteSocketAddress());

        } catch (IOException e) {
           publishProgress(e.toString());
        }


        return "";
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);

        Toast.makeText(root.getContext(),"Done",Toast.LENGTH_LONG).show();

    }

    @Override
    protected void onProgressUpdate(String... values) {
        super.onProgressUpdate(values);

        TextView status = (TextView) root.findViewById(R.id.status);
        status.setText(values[0]);

    }
}

这是我的客户代码:

public class Light extends AsyncTask<Integer,String,String> {
        private String ipAddress;
      private View view;
        public Light(String ip,View v){
            ipAddress = ip;
            view = v;
        }

        @Override
        protected String doInBackground(Integer... params) {

               try{

                   Socket client = new Socket(ipAddress,params[0]);
                   publishProgress("Connected to server on port "+client.getLocalPort());


               }catch (Exception e){
                   publishProgress(e.toString());
               }


            return "";
        }

        @Override
        protected void onProgressUpdate(String... values) {
            super.onProgressUpdate(values);
            Toast.makeText(view.getContext(),values[0],Toast.LENGTH_LONG).show();
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Toast.makeText(view.getContext(),"Done",Toast.LENGTH_LONG).show();
        }
    }

我在端口 1028 中注册了服务器,并且正在侦听端口 1028 。 由于两个设备都连接相同,因此 HostName 对于它们都是相同的。 当输入服务器主机名和端口(1028)并单击时,它会显示:

java.netConnectException:拒绝连接

它们也是两个不同的应用程序。我能知道怎么解决这个问题吗?

0 个答案:

没有答案