如何在此套接字连接中设置超时并将数据发送到客户端?

问题描述 投票:1回答:1

我已经采取了手动输入的Socket Ip和端口,现在我想为套接字连接设置超时。以及如何在下面的代码中将数据发送到客户端。

 public void run() {
            try {
                socket = new Socket(eHostIp.getText().toString(), Integer.parseInt( eHostPort.getText().toString() ) );
                socket.connect( );
                //PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
                //out.println("");
                eReceiveData.setText( "Server Connected" );
                //eReceiveData.setText( socket.getInputStream().read() );

                BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream() ), 1024 );
                eReceiveData.setText( "Server Connected... XXXXXXX" );
                String line;
                while ((line = in.readLine()) != null) {
                    Log.d("read line",line);
                    eReceiveData.setText( line );
                    socket.close();
                }

                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    } );
    thread.start();
java android sockets server client-server
1个回答
1
投票

使用Socket.connect(SocketAddress endpoint, int timeout)方法指定超时。

为了从它写入套接字get输出流(通过socket.getOutputStream())并写入该输出流。

注意:不要在while循环中关闭套接字!关闭后,您无法写入套接字。

© www.soinside.com 2019 - 2024. All rights reserved.