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);

     
  • 相关阅读:
    kubernetes_mk_lgg_
    kubernetes_tb宝满
    hcna
    kubernetes_book
    ipset和iptables配合来自动封闭和解封有问题的IP
    microk8s
    iptables
    docker kubernetes Swarm容器编排k8s CICD部署 麦兜
    scala Actor Akka
    数据库——mysql数据类型2
  • 原文地址:https://www.cnblogs.com/asdyzh/p/9949518.html
Copyright © 2011-2022 走看看