如何使用socket 实现一个断开重连功能的客户端

2024-10-12 18:19:31

1、设计总纲:创建一个线程用于循环读写socket,如果读写错误或无法建立连接,继续下一个循环。伪代码为:CSimpleSocket * client;bool success=false;while(1){ Sleep(1000); if (!success) { success=client->connect(); if(!success) delete success; }else { success=client->readSometh(); if(!success) delete client; }}

2、先设计一个简单的socket 类,我这里命名为CS坡纠课柩impleSocket,此类的成员函数有 创建连接和读写数据,分别为connect 和GetSN (CString& sn)。两个成员函数返回值都是bool值,在出错时返回false。注意在创建连接时要设置连接属性,设置超时连接,不然recv函数会阻塞,导致GetSN函数挂起。设置连接属性的函数为setsocktopt。

如何使用socket 实现一个断开重连功能的客户端

4、这个线程函数的原型很简单,具体功能都在InitInstance中实现。

如何使用socket 实现一个断开重连功能的客户端
猜你喜欢