Why is my ReceivedBufferSize huge? Up to 65535 bytes
So I am playing around with the Tcp protocol in C# and figured I would connect to my server.
When I connect to my server it notifies me just fine. but then I go to check the ReceivedBufferSize and it's this receivedBuffer=byte[65536]
When in reality it only gives back a few bytes.
Why is this happening?
Sending this back to my client doesn't do anything either so I removed that part.
I figured it's because the packet is so big.
This part right here
byte receivedBuffer = new byte[client.ReceiveBufferSize];
returns 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;
As you can see here, it's only 15 bytes
c# .net sockets tcp server
|
show 1 more comment
So I am playing around with the Tcp protocol in C# and figured I would connect to my server.
When I connect to my server it notifies me just fine. but then I go to check the ReceivedBufferSize and it's this receivedBuffer=byte[65536]
When in reality it only gives back a few bytes.
Why is this happening?
Sending this back to my client doesn't do anything either so I removed that part.
I figured it's because the packet is so big.
This part right here
byte receivedBuffer = new byte[client.ReceiveBufferSize];
returns 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;
As you can see here, it's only 15 bytes
c# .net sockets tcp server
Where are you seeing 65536? According to the docs, the default is 8 KiB
– John
Nov 15 '18 at 1:52
Thebyte receivedBuffer = new byte[client.ReceiveBufferSize];
contains that much, and I have no idea why it's so big
– Mark Denom
Nov 15 '18 at 1:53
If it is that big, why not create a smaller buffer?
– John
Nov 15 '18 at 1:53
4
TheReceiveBufferSize
property is how many bytes you are expecting to receive in the buffer at a time, not the actual count of bytes received, if that's the confusion.
– Jonathon Chase
Nov 15 '18 at 1:54
Oh, okay! Yeah that makes sense then, I was curious to why there was so many empty bytes
– Mark Denom
Nov 15 '18 at 1:55
|
show 1 more comment
So I am playing around with the Tcp protocol in C# and figured I would connect to my server.
When I connect to my server it notifies me just fine. but then I go to check the ReceivedBufferSize and it's this receivedBuffer=byte[65536]
When in reality it only gives back a few bytes.
Why is this happening?
Sending this back to my client doesn't do anything either so I removed that part.
I figured it's because the packet is so big.
This part right here
byte receivedBuffer = new byte[client.ReceiveBufferSize];
returns 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;
As you can see here, it's only 15 bytes
c# .net sockets tcp server
So I am playing around with the Tcp protocol in C# and figured I would connect to my server.
When I connect to my server it notifies me just fine. but then I go to check the ReceivedBufferSize and it's this receivedBuffer=byte[65536]
When in reality it only gives back a few bytes.
Why is this happening?
Sending this back to my client doesn't do anything either so I removed that part.
I figured it's because the packet is so big.
This part right here
byte receivedBuffer = new byte[client.ReceiveBufferSize];
returns 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;
As you can see here, it's only 15 bytes
c# .net sockets tcp server
c# .net sockets tcp server
edited Nov 15 '18 at 1:53
Mark Denom
asked Nov 15 '18 at 1:47
Mark DenomMark Denom
288110
288110
Where are you seeing 65536? According to the docs, the default is 8 KiB
– John
Nov 15 '18 at 1:52
Thebyte receivedBuffer = new byte[client.ReceiveBufferSize];
contains that much, and I have no idea why it's so big
– Mark Denom
Nov 15 '18 at 1:53
If it is that big, why not create a smaller buffer?
– John
Nov 15 '18 at 1:53
4
TheReceiveBufferSize
property is how many bytes you are expecting to receive in the buffer at a time, not the actual count of bytes received, if that's the confusion.
– Jonathon Chase
Nov 15 '18 at 1:54
Oh, okay! Yeah that makes sense then, I was curious to why there was so many empty bytes
– Mark Denom
Nov 15 '18 at 1:55
|
show 1 more comment
Where are you seeing 65536? According to the docs, the default is 8 KiB
– John
Nov 15 '18 at 1:52
Thebyte receivedBuffer = new byte[client.ReceiveBufferSize];
contains that much, and I have no idea why it's so big
– Mark Denom
Nov 15 '18 at 1:53
If it is that big, why not create a smaller buffer?
– John
Nov 15 '18 at 1:53
4
TheReceiveBufferSize
property is how many bytes you are expecting to receive in the buffer at a time, not the actual count of bytes received, if that's the confusion.
– Jonathon Chase
Nov 15 '18 at 1:54
Oh, okay! Yeah that makes sense then, I was curious to why there was so many empty bytes
– Mark Denom
Nov 15 '18 at 1:55
Where are you seeing 65536? According to the docs, the default is 8 KiB
– John
Nov 15 '18 at 1:52
Where are you seeing 65536? According to the docs, the default is 8 KiB
– John
Nov 15 '18 at 1:52
The
byte receivedBuffer = new byte[client.ReceiveBufferSize];
contains that much, and I have no idea why it's so big– Mark Denom
Nov 15 '18 at 1:53
The
byte receivedBuffer = new byte[client.ReceiveBufferSize];
contains that much, and I have no idea why it's so big– Mark Denom
Nov 15 '18 at 1:53
If it is that big, why not create a smaller buffer?
– John
Nov 15 '18 at 1:53
If it is that big, why not create a smaller buffer?
– John
Nov 15 '18 at 1:53
4
4
The
ReceiveBufferSize
property is how many bytes you are expecting to receive in the buffer at a time, not the actual count of bytes received, if that's the confusion.– Jonathon Chase
Nov 15 '18 at 1:54
The
ReceiveBufferSize
property is how many bytes you are expecting to receive in the buffer at a time, not the actual count of bytes received, if that's the confusion.– Jonathon Chase
Nov 15 '18 at 1:54
Oh, okay! Yeah that makes sense then, I was curious to why there was so many empty bytes
– Mark Denom
Nov 15 '18 at 1:55
Oh, okay! Yeah that makes sense then, I was curious to why there was so many empty bytes
– Mark Denom
Nov 15 '18 at 1:55
|
show 1 more comment
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53311296%2fwhy-is-my-receivedbuffersize-huge-up-to-65535-bytes%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53311296%2fwhy-is-my-receivedbuffersize-huge-up-to-65535-bytes%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Where are you seeing 65536? According to the docs, the default is 8 KiB
– John
Nov 15 '18 at 1:52
The
byte receivedBuffer = new byte[client.ReceiveBufferSize];
contains that much, and I have no idea why it's so big– Mark Denom
Nov 15 '18 at 1:53
If it is that big, why not create a smaller buffer?
– John
Nov 15 '18 at 1:53
4
The
ReceiveBufferSize
property is how many bytes you are expecting to receive in the buffer at a time, not the actual count of bytes received, if that's the confusion.– Jonathon Chase
Nov 15 '18 at 1:54
Oh, okay! Yeah that makes sense then, I was curious to why there was so many empty bytes
– Mark Denom
Nov 15 '18 at 1:55