- 博客(11)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
转载 C++基础--完善Socket C/S ,实现客户端,服务器端断开重连
// WindowsSocketServer.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include #pragma comment(lib,"Ws2_32.lib")using namespace std;#define PORT 8080
2014-04-30 14:02:34 10728
转载 socket 10038错误
最近编写服务器程序,游戏服经常与登录服莫名其妙的断开,错误码10038(无效的套接字),而这个套接字是在程序启动的时候创建并连接的,并没有关闭掉。网上搜索看了这篇文章,顿时明白。http://hi.baidu.com/gensoft/item/716dc9cd59dd817aced4f81b原因是windows套接字不能被关闭多次。而游戏服在客户端连接的套接字上关闭多次,导致与登录服务器连
2014-04-30 13:59:57 24192
转载 c++编程IOCP中的socket错误和资源释放处理方法
前言: 错误处理和socket释放, 是IOCP编程中的一大难点. 本文试图就IOCP设计中经常遇到的这个难题展开论述并寻找其解决方案, 事实上, 文中所述的解决方式不仅仅适用于IOCP, 它同样适用于EPOLL等多种服务器编程的网络模型中, 前提是: 领会这种处理方式的实质.正文:在使用IOCP开发时, 大家经常遇到的一个难题是与socket相关的缓冲区释放不当带来的错误, 这种错误
2014-04-30 09:58:43 2295
转载 判断SOCKET连接状态
1. 用read函数来判断读到长度0不能断定是已经断开.除非是-1,才代表输入流已经被关闭,说名socket已经close,而且关键在于你怎么读,实际上应该是一个单独的线程一直在读,因为你无法预先知道能不能一次将发过来的包读完,也无法知道一次是不是读完整了包,所以线称一直循环在读并且一直在解包.这样即能知道什么时候server断,也完成了消息的解读,我的方案是这样的,在大数据量高速率网络上运行
2014-04-29 17:25:20 1837
转载 TCP连接探测中的Keepalive 和心跳包
采用TCP连接的C/S模式软件,连接的双方在连接空闲状态时,如果任意一方意外崩溃、当机、网线断开或路由器故障,另一方无法得知TCP连接已经失效,除非继续在此连接上发送数据导致错误返回。很多时候,这不是我们需要的。我们希望服务器端和客户端都能及时有效地检测到连接失效,然后优雅地完成一些清理工作并把错误报告给用户。如何及时有效地检测到一方的非正常断开,一直有两种技术可以运用。一种是由TCP协议层实
2014-04-22 17:18:31 530
转载 回调函数多次调用就出错
解决了,原来是代理需要定义成static的C# code?123456private static MyDllCall callbackfun; private void Btn_SetCallBack_Click(object sender, EventArgs e) {
2014-04-22 17:16:54 5977
转载 在C#中利用Keep-Alive处理Socket网络异常断开的方法
最近我负责一个IM项目的开发,服务端和客户端采用TCP协议连接。服务端采用C#开发,客户端采用Delphi开发。在服务端开发中我碰到了各种各样的网络异常断开现象。在处理这些异常的时候有了一些心得,现在写出来和大家分享一下。那网络异常断开原因主要有那些呢?归纳起来主要有以下两种:1、客户端程序异常。 对于这种情况,我们很好处理,因为客户端程序异常退出会在服务端引发ConnectionR
2014-04-22 16:06:54 704
转载 Socket与拔掉网线
Socket与拔掉网线 当客户端与服务端通过Tcp Socket进行通信时,如果客户端应用正常退出或异常退出,服务端都会在对应的连接上获取感知(如返回0、或抛出异常)。但是,如果客户端的网线被拔掉,那么,默认情况下,服务端需要在2个小时后才会感知客户端掉线。对于很多服务端应用程序来说,这么长的反应时间是不能忍受的。 我们通常在应用层使用“心跳机制”来解决类似的问题,这是可行
2014-04-21 17:00:23 1791
转载 tinyxml使用笔记和总结(2)
二,删除节点,属性值RemoveChild( TiXmlNode* removeThis )方法删除父节点的子节点,RemoveAttribute( const char * name )方法删除属性值.例如删除BROADCAST_VERSION节点TiXmlHandle docHandle( &doc ); TiXmlElement* Broadc
2014-04-02 15:23:19 543
转载 VS2010编译错误:是否忘记了向源中添加“#include "stdafx.h(转)
错误描述:fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”?错误分析: 此错误发生的原因是编译器在寻找预编译指示头文件(默认#include "stdafx.h")时,文件未预期结束。没有找到预编译指示信息的头文件"stdafx.h"。 (因为工程中的每个cpp文件属性默认都是使用预编译头(
2014-04-02 11:44:35 22173 1
MFC 源码 VC++ sqlserver数据库访问 insert update
2011-10-13
C# 做一个http接口,要能够主动发消息给调用者
2021-12-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人