J'ai un problème avec le socket TCP lors de l'utilisation du tunnel HTTP via proxy. Le client (C++) ouvre un socket TCP à un serveur (JAVA).Le socket TCP sur le proxy HTTP se déconnecte après un délai d'inactivité
J'ai ajouté le support pour le proxy HTTP. Tout marchait bien, le client envoie « connexion HTTP » telle demande et continue de connexion TCP simple après:
CONNECT servername:5555 HTTP/1.1
Host: servername:5555
Proxy-Connection: Keep-Alive
HTTP/1.1 200
Toutefois, si le délai d'inactivité est configuré en proxy et il n'y a pas de données réelles envoyées, la connexion est interrompue si le client envoie TCP garder les paquets vivants toutes les 60 secondes. Le délai d'inactivité est configuré sur 10 minutes.
TCP garder en vie est configuré comme suit: WSAIoctl (prise, SIO_KEEPALIVE_VALS, & vivant, sizeof (vivant), NULL, 0, & dwBytesRet, NULL, NULL)
client IP - 192.168.91.xxx
Proxy IP - 192.168.92.yyy
244 47.133017000 192.168.91.xxx 192.168.92.yyy TCP 55 [TCP Keep-Alive] 64351 > 808 [ACK] Seq=4336 Ack=13084 Win=65700 Len=1
245 47.133336000 192.168.92.yyy 192.168.91.xxx TCP 66 [TCP Keep-Alive ACK] 808 > 64351 [ACK] Seq=13084 Ack=4337 Win=65536 Len=0 SLE=4336 SRE=4337
Toute idée comment garder en vie la connexion?
J'ai essayé d'ajouter l'en-tête "Connection: Keep-Alive" bien que HTTP1.1 le fasse automatiquement. Cela n'a pas aidé de toute façon.