c# - 为什么我的 ReceivedBufferSize 很大?最多 65535 字节
问题描述
所以我在 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;
}
}
}
解决方案
推荐阅读
- git - Confluence 可以显示来自 Bitbucket/Jenkins 服务器的分支、提交哈希和日期吗?
- oracle - 如何从 Oracle 11g 实例访问 Oracle 12c 架构
- typescript - 带有泛型的打字稿自定义限制
- c# - C# - 自定义组通过花费更多时间处理大型数据集
- excel - 使用变量名称设置工作簿
- kotlin - 如何将 Kotlin ByteArray 转换为 NsData,反之亦然
- vue.js - 如何使用键盘按钮来操作数字
- python - 没有错误消息在 Flask 上闪烁
- java - 如何在android中使用cardview
- mysql - 如何使用辅助函数创建更新两个字段 mySQL 的存储过程