相信开发socket的初学者肯定会遇到以下一些常见的问题:
1.客户端接收数据超时导致客户端无响应,一段时间后,弹出进程错误?
问题分析:造成改问题主要有两个方面,一个是服务器繁忙,没有及时的返回数据;二是服务器有返回数据,但是由于网络繁忙,客户端没能及时接收到数据。开始,程序在等待数据接收,从用户的视觉则是卡机状态,当长时间没有响应后,在系统保护机制下,系统会自动发送一个singal3信号杀掉该进程,此时会弹出一个询问是否关闭程序的进程错误对话框。
问题解决:自设超时时间,避免延时过长造成卡机的假现象,同时逃避系统的查杀。
使用异常处理方法,Catch到超时错误,并通知用户访问超时。
2.服务器接收数据超时导致服务器崩溃:
问题分析:
造
成该
问
题主
要
是由
于
网络繁忙,和网络信号不
好,导致服务器一直处在
数据接收的状态,超出服
务器的超时时间后,服务
器会崩溃。
考
虑到
该
问题
的
出现
对
用户是隐形的,即出现该
问题时,用户不会察觉到
是服务器出现崩溃,而只
会看到网络繁忙的提醒。
造
成该
问
题主
要
是由
于
网络繁忙,和网络信号不
好,导致服务器一直处在
数据接收的状态,超出服
务器的超时时间后,服务
器会崩溃。
考
虑到
该
问题
的
出现
对
用户是隐形的,即出现该
问题时,用户不会察觉到
是服务器出现崩溃,而只
会看到网络繁忙的提醒。
造成该问题主要是由于网络繁忙和网络信号不好,导致服务器一直处在数据接收的状态,超出服务器的超时时间后,服务器会崩溃;考虑到这问题的出现对用户是隐形的,即出现该问题时,用户不会察觉到是服务器出现崩溃,而只会看到网络繁忙的提醒。
解决办法:使用子线程
3.IP服用是服务器崩溃:
解决办法:服务器采用多线程机制;
尽量避免特殊的网路环境;
造
成该
问
题主
要
是由
于
网络繁忙,和网络信号不
好,导致服务器一直处在
数据接收的状态,超出服
务器的超时时间后,服务
器会崩溃。
考
虑到
该
问题
的
出现
对
用户是隐形的,即出现该
问题时,用户不会察觉到
是服务器出现崩溃,而只
会看到网络繁忙的提醒。