2016-04-07 24 views
0

ile TCP bağlantısını kalıcı olarak koruyun SMP çerçevesiyle birlikte ESP8266 wifi çipini kullanıyorum.ESP8266 TCP istemcisi

Uzak sunucuya istemci olarak bir TCP bağlantısı kurabiliyorum. Sunucuya istemci bağlantısını başlatmak için kod basittir.

tcpClient.connect(SERVER_HOST, SERVER_PORT); 

Maalesef, bağlantı bir süre rölantiden sonra kapanacak. Bu bağlantıyı daima kalıcı olarak açık tutmak isterim. Bu nasıl yapılabilir?

+0

SMING'e aşina değilim ama aradığınız özellik TCP keepalive olarak adlandırılıyor. –

cevap

1

Aslında bağlantı durumunu izlemeniz ve başarısız olursa yeniden bağlamanız gerekir. Üstünüzdeki protokolünüzün, diğer tarafın gerçekte aldıklarını takip etmesi ve yeniden iletmesi gerekecektir.

Herhangi bir kablosuz ağda bağlantınız bir nedenle veya başka bir nedenle düşebilir ve uzun süreli bir bağlantıyı sürdürmeniz gerekiyorsa, TCP'nin kendisinin üzerinde bir katmana sahip olmanız gerekir.

TCP, her iki tarafın da izin verdiği sürece bağlanmaya devam eder (hiçbiri bağlantısız) ve bağlantıda herhangi bir hata yoktur, bu durumda saklayıcı gönderilmesi, bekletici tek seferde başarısız olabileceğinden, bağlantı kesilmesine neden olabilir ama bağlantı kurtarabilirdi ve eğer sakıncası olmadıysa, bağlantı kalırdı.