Итак, я играю с протоколом Tcp в C # и решил, что подключусь к своему серверу.Когда я подключаюсь к своему серверу, он уведомляет меня просто отлично.но затем я проверяю 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 байтов