zoukankan      html  css  js  c++  java
  • C# Socket 接受数据不全的处理

    由于Socket 一次传输数据有限,因此需要多次接受数据传输。

    解决办法一:

        int numberOfBytesRead = 0;
        int totalNumberOfBytes = 0;
        do
        {
            numberOfBytesRead = mySocket.Receive(receivedData,totalNumberOfBytes ,
                                mySocket.ReceiveBufferSize,SocketFlags.None);
            totalNumberOfBytes += numberOfBytesRead;
        }
        while (numberOfBytesRead > 0);
     
    解决办法二:

    //通过clientSocket接收数据
    int receiveLength = 0;
    int index = 0;
    while (clientSocket.Available > 0)
    {                                              //参数 数据缓存区  起始位置  数据长度  值的按位组合
    receiveLength += clientSocket.Receive(result, index, clientSocket.ReceiveBufferSize, SocketFlags.None);
    index += receiveLength;
    }

    return Encoding.GetEncoding("GB18030").GetString(result, 0, index);

  • 相关阅读:
    选择排序
    插入排序
    洗牌算法
    访问性模式
    策略模式
    mysql EXPLAIN Join Types 手册解释 及数据实操
    Nginx Location和Rewrite总结
    json_decode 解析带BOM头文件错误
    laravel 集成 swagger插件
    php S3
  • 原文地址:https://www.cnblogs.com/xiaocandou/p/4447796.html
Copyright © 2011-2022 走看看