Socket的函数解析

// 客户端socket在接收数据时,有两种超时:1. 连接服务器超时,即连接超时;2. 连接服务器成功后,接收服务器数据超时,即接收超时

// 设置 socket 读取数据流的超时时间

clientSocket.setSoTimeout(5000);

// 发送数据包,默认为 false,即客户端发送数据采用 Nagle 算法;

// 但是对于实时交互性高的程序,建议其改为 true,即关闭 Nagle 算法,客户端每发送一次数据,无论数据包大小都会将这些数据发送出去

clientSocket.setTcpNoDelay(true);

// 设置客户端 socket 关闭时,close() 方法起作用时延迟 30 秒关闭,如果 30 秒内尽量将未发送的数据包发送出去

clientSocket.setSoLinger(true,30);

// 设置输出流的发送缓冲区大小,默认是4KB,即4096字节

clientSocket.setSendBufferSize(4096);

// 设置输入流的接收缓冲区大小,默认是4KB,即4096字节

clientSocket.setReceiveBufferSize(4096);

// 作用:每隔一段时间检查服务器是否处于活动状态,如果服务器端长时间没响应,自动关闭客户端socket

// 防止服务器端无效时,客户端长时间处于连接状态

clientSocket.setKeepAlive(true);

// 客户端向服务器端发送数据,获取客户端向服务器端输出流

OutputStream osSend = clientSocket.getOutputStream();

OutputStreamWriter osWrite =newOutputStreamWriter(osSend);

BufferedWriter bufWrite =newBufferedWriter(osWrite);

// 代表可以立即向服务器端发送单字节数据

clientSocket.setOOBInline(true);

// 数据不经过输出缓冲区,立即发送

clientSocket.sendUrgentData(0x44);//"D"


参考博文:

http://www.360doc.com/content/13/0605/10/1554663_290593550.shtml

你可能感兴趣的:(Socket的函数解析)