现在要开发一个网络通讯客户端程序,用的是TCP/IP协议,具体的协议已经拟订好了。简单的描述及时每隔30秒客户端自动向服务器端传输一组数据。因为我的客户端机器要一天24小时不停的运行,而且是无人值守的,那万一网络中断或是服务器端关机等异常情况发生,导致连接中断时,我的客户端程序必须保证在服务器端启动后,客户端能自动连接上服务器。我现在不清楚该怎么设置connect函数,才能做到这一点。
还有,对于这种程序,我该采用多线程阻塞模式好呢,还是采用非阻塞模式好些?对于我这一点,我始终都确定不了别人都是采取哪种方法实现的?
如果我要在程序中发送心跳包的话,该怎么做呢?
对网络编程了解得不多,还请高手给指点一下。多谢。
还有,对于这种程序,我该采用多线程阻塞模式好呢,还是采用非阻塞模式好些?对于我这一点,我始终都确定不了别人都是采取哪种方法实现的?
如果我要在程序中发送心跳包的话,该怎么做呢?
对网络编程了解得不多,还请高手给指点一下。多谢。
客户端每30秒就向服务器发送数据
其实这个跟心跳包的能达到的作用差不多了这样在tcp连接出错时能够通过发送数据发现与主机断开连接
接下来在上面重新调用连接函数就可以了
我现在不清楚该怎么设置connect函数,才能做到这一点。我建议不要把自动重连的功能加到connect函数里。
///UDP协议是非可靠的传输,我的这个程序必须保证数据能准确地传输到服务器端,必须用TCP
发送心跳包有固定的规范吗?
Tcp建立连接后,虽然断开连接会有响应
但是如果是异常,比如服务器突然停电关机,网络故障等
有可能不会响应断开连接,或不能及时响应
但是,如果网络确实断了,发送数据就可以(即刻)检测出来
所以要发送心跳包