我写了一个使用CSocket的程序,客户端往服务端发送一些消息,服务端是这么写的
CSocket soc
if(!soc.Create())
{
MessageBox("创建socket失败!");
return;
}
if(!soc.Connect(m_ip,m_port))
{
MessageBox("连接socket失败!");
return;
}
要发送消息的时候是
msg_type msg;
msgsize = soc.Send(&msg,sizeof(msg_type),0);
然后判断msgsize是否是SOCKET_ERROR。
一般情况下这样没问题,但有时候服务器因为某种意外down掉了,但是我这里的send仍然返回正常的值,显示发送成功,这是怎么回事,应该怎么处理。
CSocket soc
if(!soc.Create())
{
MessageBox("创建socket失败!");
return;
}
if(!soc.Connect(m_ip,m_port))
{
MessageBox("连接socket失败!");
return;
}
要发送消息的时候是
msg_type msg;
msgsize = soc.Send(&msg,sizeof(msg_type),0);
然后判断msgsize是否是SOCKET_ERROR。
一般情况下这样没问题,但有时候服务器因为某种意外down掉了,但是我这里的send仍然返回正常的值,显示发送成功,这是怎么回事,应该怎么处理。
解决方案 »
- 按钮和编辑框
- VC++6.0下,使用ADO方式对ACCESS2000数据库进行条件查询遇到的问题。出现异常中断。
- WebBrowser控件问题
- 通过VC实现Excel获取权限对象后,保存Excel文档出错,请高手们指点,已经郁闷很久了~~~~
- 请教,今天去腾讯面试遇到的难题
- 16进制数的100多次方的算法,请高手指教
- 请问如何较高效率地从MDB数据库,一次读取将近十万条记录??
- 拖动滑动条的时候怎样收到消息?
- 所谓的ADO支持多线程是什么意思?
- 急!!!!!
- 为什么这段代码不能输出文字呢?
- 怎样做以达到:在3个不同的CPropretyPage页里按F2键,都执行各页的查询按钮IDC_BUTTON,已在ACCELERATOR中设置...
心跳包是否会严重占用系统资源,另外,如果普通send会出现那种问题,那么心跳包不也是会出现那种问题吗,就是明明断开了,但是心跳包还是会显示成功,假如这个时候我再发消息,仍然会出现那种问题。还有,在MFC里还有什么比较方便的可以替代CSocket这种偏上层的类,可以避免此类问题?