Я думаю, что Windows может не позволить вам настроить MSS для каждого сокета.
Вот тестовый образец:
Просто позвоните setsockopt
с TCP_MAXSEG
.
#include <ws2tcpip.h>
`int mss = 512;`
`setsockopt(sock, IPPROTO_TCP, TCP_MAXSEG, (char*)&mss, sizeof(mss);`
Установите его раньше connect
или listen
.
Я проверил это с vs2015 на windows10. Этот код может пройти компиляцию в VS2015, но не может работать. Windows выдаст ошибку WSAENOPROTOOPT
при запуске.