Qual è la dimensione del buffer del socket predefinita di linux? C'è qualche comando per vederlo?Come trovare la dimensione del buffer del socket di linux
risposta
Se volete vedere la vostra dimensione del buffer nel terminale, è possibile dare un'occhiata a:
/proc/sys/net/ipv4/tcp_rmem
(per la lettura)/proc/sys/net/ipv4/tcp_wmem
(per la scrittura)
Contengono tre numeri , che sono i valori minimi, predefiniti e massimi della memoria (in byte), rispettivamente.
Per ottenere la dimensione del buffer in C/C++ programma che segue è il flusso
int n;
unsigned int m = sizeof(n);
int fdsocket;
fdsocket = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); // example
getsockopt(fdsocket,SOL_SOCKET,SO_RCVBUF,(void *)&n, &m);
// now the variable n will have the socket size
È sicuro chiamare invece 'socket (AF_INET, SOCK_STREAM, IPPROTO_TCP) '? Sto usando questa chiamata C nel mio framework Swift TCP per ottenere la dimensione del buffer per ridurre le chiamate 'recv'. – DevAndArtist
Nota: questa è anche solo la dimensione del buffer di lettura, utilizzare SO_SNDBUF per ottenere la dimensione del buffer di scrittura. Sotto almeno linux, puoi usare ioctl SIOCINQ e SIOCOUTQ, per ottenere rispettosamente lo stato corrente usato del buffer. – Rahly
dimensione atomica è 4096 byte, formato massimo è 65536 byte. Sendfile utilizza 16 pipe ciascuna di 4096 byte di dimensione. cmd: ioctl (fd, FIONREAD, & buff_size).
Che cosa significa "dimensione atomica"? cosa c'entra "sendfile()" con esso; e dove hai risposto alla domanda sulla dimensione del buffer del socket di default? – EJP
@ EJP Dimensione atomica - Assi interni Linux per trasferimento socket 4096b - MT-safe, mutex, pipe interne 1/16. il sandfile ha molto a che fare con questo. Penso di avere. La dimensione del buffer predefinita è 16 * 4096b. –
Nessuno di questi risponde alla domanda. Riguarda il socket invia e riceve le dimensioni del buffer. Non riguardo 'sendfile()', che quindi non ha * niente * a che fare con esso, né nemmeno le dimensioni di trasferimento atomico, idem. – EJP
- 1. Modifica la dimensione del buffer di socket predefinita in Windows
- 2. Dimensione buffer client socket asincrono
- 3. Dimensione massima UDP Linux del buffer di ricezione
- 4. Come funziona un buffer di socket Linux in overflow?
- 5. Dimensione ottimale del buffer Android
- 6. Come espandere la dimensione del buffer di input di pyserial
- 7. Come ottenere l'output completo previsto quando la dimensione del buffer interno di dimensione expect_out (buffer) supera?
- 8. Come impostare la dimensione del buffer dell'encoder creata da MediaCodec
- 9. Golang - Qual è la dimensione del buffer del canale?
- 10. Dimensioni del buffer raccomandate per socket e file
- 11. Qual è la dimensione massima del messaggio del datagramma AF_UNIX che può essere inviata in linux?
- 12. I buffer del kernel del socket linux sono scambiati su disco?
- 13. Come determinare la dimensione del buffer per vswprintf sotto Linux gcc
- 14. Come aumentare la dimensione del buffer scrollback nella schermata GNU
- 15. boost :: asio :: buffer: recupero della dimensione del buffer e prevenzione dell'overflow del buffer?
- 16. Dimensione del buffer ottimale per il file buffer?
- 17. Come trovare la dimensione della memoria virtuale e la dimensione della cache di un sistema Linux?
- 18. Qual è la dimensione del buffer in BufferedReader?
- 19. Qual è la dimensione del buffer predefinita per StreamWriter
- 20. passaggio del buffer di caricamento alle funzioni e acquisizione della dimensione del buffer
- 21. Come vengono scelte le dimensioni del buffer?
- 22. Come mmap un buffer del kernel Linux nello spazio utente?
- 23. C'è una dimensione del buffer collegata allo stdout?
- 24. Java DatagramPacket (UDP) dimensione massima del buffer di invio/ricezione
- 25. qual è la dimensione del buffer corretta per la funzione 'scrivi'?
- 26. AVURLAsveglia la dimensione del video
- 27. ASP.NET MVC 4 WebAPI (beta) - come modificare la dimensione massima del buffer di risposta
- 28. Overflow del buffer come homeowrk
- 29. Stomp oltre websocket: La dimensione del buffer di invio superato il limite consentito
- 30. Come viene determinata la dimensione del processo?
C'è anche '/ proc/sys/net/core/rmem_default' per recv e'/proc/sys/net/core/wmem_default' per l'invio, come indicato http://man7.org/linux/man- pages/man7/socket.7.html –