Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

121
Views
getsockopt SO_RECVBUF after doing a set shows double the value in linux?

When calling setsockopt with SO_RECVBUF, then turning around and calling getsockopt with SO_RECVBUF, it appears to be telling me that it sets the buffer size to twice what I requested it to be set to. Anybody know why that may be?

code in question:

https://gist.github.com/rdp/8443238

output:

setting it as 2222
[udp @ 0x1a72ec0] end receive buffer size reported is 4444

Only in linux, on other OS's seem to report it as the value I set it to. Thank you.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Excerpt from Linux man page for socket

SO_SNDBUF

Sets or gets the maximum socket send buffer in bytes. The kernel doubles this value (to allow space for bookkeeping overhead) when it is set using setsockopt(2), and this doubled value is returned by getsockopt(2). The default value is set by the /proc/sys/net/core/wmem_default file and the maximum allowed value is set by the /proc/sys/net/core/wmem_max file. The minimum (doubled) value for this option is 2048.

So, kernel doubles the value you set for it's internal purpose.

over 4 years ago · Santiago Trujillo Report

0

The platform can adjust the value you supply up or down. See the man page. You were below the platform minimum.

2222 is far too low. It should be more like 32k.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!