我已经获取了手动输入的Socket Ip和端口,现在我想为socket连接设置超时时间。以及如何在下面的代码中向客户端发送数据。
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 循环中关闭套接字!关闭后无法写入套接字。
关于java - 如何在此套接字连接中设置超时并将数据发送到客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55449174/