繁体   English   中英

为什么我的ReceivedBufferSize很大? 最多65535字节

Why is my ReceivedBufferSize huge? Up to 65535 bytes

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

因此,我在使用C#中的Tcp协议,并想连接到服务器。 当我连接到服务器时,它会通知我。 但是然后我去检查ReceivedBufferSize,它是这个receivedBuffer={byte[65536]}

实际上,它只返回几个字节。

为什么会这样呢? 将其发送回客户也没有任何作用,因此我删除了该部分。 我认为这是因为数据包太大了。

这部分就在这里

byte[] receivedBuffer = new byte[client.ReceiveBufferSize];

返回receivedBuffer={byte[65536]}

public partial class MainWindow : Window
{
    public static IPAddress remoteAddress = IPAddress.Parse("127.0.0.1");
    public TcpListener remoteServer = new TcpListener(remoteAddress, 7777);
    public TcpClient client = default(TcpClient);

    public MainWindow()
    {
        InitializeComponent();
    }

    private void BtnListen_OnClick(object sender, RoutedEventArgs e)
    {
        if (StartServer())
        {
            client = remoteServer.AcceptTcpClient();
            MessageBox.Show("Connected");
            byte[] receivedBuffer = new byte[client.ReceiveBufferSize];

            NetworkStream clientStream = client.GetStream();

            while (client.Connected)
            {
                if (client.Connected)
                {
                    if (client.ReceiveBufferSize > 0)
                    {
                        receivedBuffer = new byte[100];
                        clientStream.Read(receivedBuffer, 0, receivedBuffer.Length);
                    }
                }
            }
        }
    }

    private bool StartServer()
    {
        try
        {
            remoteServer.Start();
            MessageBox.Show("Server Started...");
            return true;
        }
        catch (Exception exception)
        {
            MessageBox.Show(exception.ToString());
            throw;
        }
    }
}

如您所见,它只有15个字节 在此处输入图片说明

问题暂未有回复.您可以查看右边的相关问题.

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题
 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM