美文网首页
Socket的函数解析

Socket的函数解析

作者: 这个名字也有宇 | 来源:发表于2016-12-02 15:39 被阅读0次

    // 客户端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的函数解析

          本文链接:https://www.haomeiwen.com/subject/dmcqmttx.html