Я создал небольшой сервер C++/c http socket на малине pi. В прошлом я только отправлял/получал 1460 байтов данных за раз. Хотя недавно я понял, что могу отправить больше, чем это. Я бы хотел как можно быстрее отправить данные от сервера к клиенту. Coulda Я получаю размер окна (максимальный размер сегмента), который клиент может обрабатывать, чтобы я мог отправить этот объем данных. Скажем, если это было 8192, я бы хотел передать эту сумму на каждую отправку сокета сервера. Может ли кто-нибудь дать мне несколько указаний о том, как это сделать?TCP socket server C++/c размер окна
0
A
ответ
0
Использование getsockopt с TCP_MAXSEG:
int mss;
socklen_t len = sizeof mss;
getsockopt(fd, IPPROTO_TCP, TCP_MAXSEG, &mss, &len);
От man tcp
:
TCP_MAXSEG The maximum segment size for outgoing TCP packets. In Linux 2.2 and earlier, and in Linux 2.6.28 and later, if this option is set before connection establishment, it also changes the MSS value announced to the other end in the initial packet. Values greater than the (eventual) interface MTU have no effect. TCP will also impose its minimum and maximum bounds over the value provided.
Согласно this question, это должно быть сделано после соединение установлено, в противном случае родовым по умолчанию значение будет возвращено.
Смежные вопросы
- 1. Конструкция TCP Socket (Server)
- 2. tcp socket server не отправляет
- 3. TCP/IP Socket-Server Concurrent
- 4. TCP-сервер Socket Server Response
- 5. Размер окна переполнения TCP
- 6. C# tcp socket server client connection
- 7. TCP размер Медленный запуск окна
- 8. [Solved] python socket tcp server отказывает подключение
- 9. Python icmp socket server (not tcp \ udp)
- 10. C# TCP Server-Socket Security с PLC
- 11. iPhone TCP/IP Socket Server/Client Program
- 12. TCP Socket Connection Server Side Type
- 13. nodejs tcp socket write
- 14. Tcp Socket Closed
- 15. Perl TCP socket communication
- 16. Netty WebSockets & tcp socket
- 17. TCP размер заторов размер ..?
- 18. Objective C TCP Socket
- 19. TCP socket communication
- 20. Преобразование java-потокового сервера tcp socket в javascript async tcp socket server
- 21. Как увеличить размер окна TCP в android для FTP?
- 22. tcp socket data header confusion
- 23. windows tcp ip socket программирование?
- 24. Размер окна приема TCP выше, чем net.core.rmem_max
- 25. TCP получает размер окна всегда полный
- 26. Размер окна восстановления TCP на трехстороннем рукопожатии
- 27. Размер окна перегрузки TCP: странное поведение
- 28. TCP NTP Java Socket Program
- 29. TCP Socket Client - Ошибки Redefinition
- 30. TCP Socket Server генерирует CLOSE_WAITs Время от времени до неоперабельного
Просто отправьте столько, сколько сможете на каждом 'send()'. Для этого вам не нужно знать размер окна. TCP позаботится о деталях. Используйте большой буфер приложения, скажем, 32 кбайта или более. – EJP
Согласитесь с @EJP - клиент запрашивает размер буфера, который они хотят получить, - связь сокетов решает, что проходит, и когда – dbmitch