簡體   English   中英

如何在此套接字連接中設置超時並向客戶端發送數據?

[英]How to set timeout in this socket connection and send data to client?

我已經采用了手動輸入的套接字 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();

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

為了寫入套接字,從中獲取輸出流(通過 socket.getOutputStream())並寫入該輸出流。

注意:不要在 while 循環中關閉套接字! 關閉套接字后無法寫入套接字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM