代码之家  ›  专栏  ›  技术社区  ›  Bazouk55555

Android studio:Socket.io服务器和客户端

  •  2
  • Bazouk55555  · 技术社区  · 6 年前

    我试图在android studio中运行一个简单的客户机-服务器socket.io,我基本上是在客户机和服务器线程上使用socket.io https://github.com/mrniko/netty-socketio . 但是客户端无法连接(但是我成功地连接到了另一台其他人没有在android上实现的服务器)。这是我的客户机和服务器代码:

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test_class_activity);
        findViewById(R.id.connect_socket).setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                Thread clientThread = new Thread(new Runnable() {
                    @Override
                    public void run() {
                        if (mSocket==null || !mSocket.connected()) {
                            try {
                                mSocket = IO.socket("http://127.0.0.1:" + PORT);
                            } catch (URISyntaxException e) {
                                System.out.print(e.getMessage());
                            }
    
                            if(mSocket!=null) {
                                mSocket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
    
                                    @Override
                                    public void call(Object... args) {
                                        Log.d("ActivityName: ", "socket connected");
                                        //socket.disconnect();
                                    }
                                }).on(Socket.EVENT_MESSAGE, new Emitter.Listener() {
    
                                    @Override
                                    public void call(final Object... args) {
                                        Log.d("ActivityName: ", "msg received: " + args[0].toString());
                                        runOnUiThread(new Runnable() {
                                            @Override
                                            public void run() {
                                                ((TextView)findViewById(R.id.response_server)).setText(args[0].toString());
                                            }
                                        });
                                        mSocket.emit(Socket.EVENT_MESSAGE, "salut Sam c est Adrien. J ai recu ton message: \"" + args[0].toString() + "\"");
                                    }
                                });
                                mSocket.connect();
                            }
                        }
                    }
                });
                clientThread.start();
            }
        });
    
        findViewById(R.id.start_server).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    server();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
            }
        });
    
    private static void server() throws InterruptedException, UnsupportedEncodingException {
        if(server!=null) {
            Configuration config = new Configuration();
            config.setHostname("localhost");
            config.setPort(PORT);
            server = new SocketIOServer(config);
            server.addEventListener("toServer", String.class, new DataListener<String>() {
                @Override
                public void onData(SocketIOClient client, String data, AckRequest ackRequest) {
                    client.sendEvent("toClient", "server recieved " + data);
                }
            });
            server.addEventListener("message", String.class, new DataListener<String>() {
                @Override
                public void onData(SocketIOClient client, String data, AckRequest ackRequest) {
                    client.sendEvent("toClient", "message from server " + data);
                }
            });
            server.start();
        }
    }
    
    }
    

    你知道为什么我的客户不能连接吗?

    0 回复  |  直到 6 年前