关闭

win7下用c#开发windows服务

今天跟大家介绍一下如何在win7系统下使用C#开发windows服务。主要的内容是参考了网上的一些资料及自己的研究所得。 1、首选我们需要打开VS2008,然后点击文件--》新建--》项目,选择Visual C#--》windows--》windows服务。如下图所示: 2、然后修改Service1.cs类。 我们需要重写OnStart和OnStop方法。代码如下所示...
阅读(1011) 评论(0)

在delphi线程中实现消息循环

Delphi的TThread类使用很方便,但是有时候我们需要在线程类中使用消息循环,delphi没有提供.花了两天的事件研究了一下win32的消息系统,写了一个线程内消息循环的测试.但是没有具体应用过,贴出来给有这方面需求的DFW参考一下. 希望大家和我讨论. {--------------------------------------------------------------...
阅读(2343) 评论(0)

setsockopt 设置socket 详细用法

1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL)); 2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经...
阅读(20477) 评论(0)

如何成功的面试到一位好的技术人员?

1、工作经验:非常重要 是否有大公司的工作经验?判断是否能很好的适应大公司的一些制度及工作方式; 是否稳定?看在一家公司的最长的工作时间,至少有两年以上的经历 2、技术能力:是否有和公司目前用到的技术相匹配的技术水平,是否有实践经验。 3、业务知识:是否有和公司相匹配的业务知识,是否有实践经验。(尤其是一些业务比较复尽可能的公司,这点很重要,重新培养一个人需要多少资源?) 4、工作年限:...
阅读(499) 评论(0)

程序员职业发展:项目经理、技术经理还是产品经理(转)

程序工作二三年后,基本上都会考虑自己以后怎么发展。发展的路径不外乎程序员-系统分析员-架构师-技术经理-CTO,程序员-项目组长-项目经理-项目总监-CTO,程序员-产品设计师-产品经理-CTO.哪一条发展的路线更加适合你?        程序员职业生涯发展到一定程度都会面临一个选择,是走业务+技术方向,还是选择纯钻研技术。程序员职业生涯 发展的问题,这是所有程序员都在关心的问题,未来究竟要...
阅读(731) 评论(0)

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 ...
阅读(8469) 评论(0)

socket 10038错误

最近编写服务器程序,游戏服经常与登录服莫名其妙的断开,错误码10038(无效的套接字),而这个套接字是在程序启动的时候创建并连接的,并没有关闭掉。 网上搜索看了这篇文章,顿时明白。http://hi.baidu.com/gensoft/item/716dc9cd59dd817aced4f81b 原因是windows套接字不能被关闭多次。而游戏服在客户端连接的套接字上关闭多次,导致与登录服务器连...
阅读(11064) 评论(0)

c++编程IOCP中的socket错误和资源释放处理方法

前言: 错误处理和socket释放, 是IOCP编程中的一大难点. 本文试图就IOCP设计中经常遇到的这个难题展开论述并寻找其解决方案, 事实上, 文中所述的解决方式不仅仅适用于IOCP, 它同样适用于EPOLL等多种服务器编程的网络模型中, 前提是: 领会这种处理方式的实质. 正文: 在使用IOCP开发时, 大家经常遇到的一个难题是与socket相关的缓冲区释放不当带来的错误, 这种错误...
阅读(1295) 评论(0)

判断SOCKET连接状态

1. 用read函数来判断 读到长度0不能断定是已经断开.除非是-1,才代表输入流已经被关闭,说名socket已经close,而且关键在于你怎么读,实际上应该是一个单独的线程一直在读,因为你无法预先知道能不能一次将发过来的包读完,也无法知道一次是不是读完整了包,所以线称一直循环在读并且一直在解包.这样即能知道什么时候server断,也完成了消息的解读,我的方案是这样的,在大数据量高速率网络上运行...
阅读(507) 评论(0)

TCP连接探测中的Keepalive 和心跳包

采用TCP连接的C/S模式软件,连接的双方在连接空闲状态时,如果任意一方意外崩溃、当机、网线断开或路由器故障,另一方无法得知TCP连接已经失效,除非继续在此连接上发送数据导致错误返回。很多时候,这不是我们需要的。我们希望服务器端和客户端都能及时有效地检测到连接失效,然后优雅地完成一些清理工作并把错误报告给用户。 如何及时有效地检测到一方的非正常断开,一直有两种技术可以运用。一种是由TCP协议层实...
阅读(343) 评论(0)

回调函数多次调用就出错

解决了,原来是代理需要定义成static的 C# code ? 1 2 3 4 5 6 private static MyDllCall callbackfun;           private void Btn_SetCallBack_Click(object sender, EventArgs e)         { ...
阅读(2204) 评论(0)

在C#中利用Keep-Alive处理Socket网络异常断开的方法

最近我负责一个IM项目的开发,服务端和客户端采用TCP协议连接。服务端采用C#开发,客户端采用Delphi开发。在服务端开发中我碰到了各种各样的网络异常断开现象。在处理这些异常的时候有了一些心得,现在写出来和大家分享一下。 那网络异常断开原因主要有那些呢?归纳起来主要有以下两种: 1、客户端程序异常。   对于这种情况,我们很好处理,因为客户端程序异常退出会在服务端引发ConnectionR...
阅读(406) 评论(0)

Socket与拔掉网线

Socket与拔掉网线    当客户端与服务端通过Tcp Socket进行通信时,如果客户端应用正常退出或异常退出,服务端都会在对应的连接上获取感知(如返回0、或抛出异常)。但是,如果客户端的网线被拔掉,那么,默认情况下,服务端需要在2个小时后才会感知客户端掉线。对于很多服务端应用程序来说,这么长的反应时间是不能忍受的。    我们通常在应用层使用“心跳机制”来解决类似的问题,这是可行...
阅读(1023) 评论(0)

VS 2010 C++中调试DLL

...
阅读(270) 评论(0)

tinyxml使用笔记和总结(2)

二,删除节点,属性值 RemoveChild( TiXmlNode* removeThis )方法删除父节点的子节点, RemoveAttribute( const char * name )方法删除属性值. 例如删除BROADCAST_VERSION节点 TiXmlHandle docHandle( &doc );      TiXmlElement* Broadc...
阅读(344) 评论(0)

VS2010编译错误:是否忘记了向源中添加“#include "stdafx.h(转)

错误描述:fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”? 错误分析:    此错误发生的原因是编译器在寻找预编译指示头文件(默认#include "stdafx.h")时,文件未预期结束。没有找到预编译指示信息的头文件"stdafx.h"。    (因为工程中的每个cpp文件属性默认都是使用预编译头(...
阅读(11910) 评论(0)

PInvoke调用导致堆栈不对称 c#调用C++win32非托管dll的问题深度分析

问题描述:对 PInvoke 函数“xxFunction()”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配 问题解决:1、在c#中函数声明处改一个参数,[DllImport("xx.dll", EntryPoint=“xxFunction”, CallingConvention = C...
阅读(3471) 评论(0)

C#调用c++的dll 回调使用方法

C#调用 代码 //声明 public delegate void MyDllCall(string buf,int size);   //设置回调函数  [DllImport("MatrixCtrl.dll", EntryPoint = "MatrixSetCallback")]  static extern bool MatrixSetCallback(MyDllCall fa);...
阅读(352) 评论(0)

VS2010中 C++创建DLL图解

. 一、DLL的创建  创建项目: Win32->Win32项目,名称:MyDLL 选择DLL (D) ->完成. 1、新建头文件testdll.h testdll.h代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 #ifndef TestDll_H_ #define...
阅读(744) 评论(0)

面向接口的编程(WCF)

我经常比较Web Service,.NET Remoting,以及WCF这些技术的异同。我觉得WCF更好地体现了面向接口编程的思路。下面我用一个例子来讲解,大家一看应该就理解了   1. 创建解决方案 2. 创建服务接口 添加一个接口类型 添加引用 编写该接口。很简单。就定义了一个OperationContract 3. 创建服务类型 添加对...
阅读(356) 评论(0)
108条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:226651次
    • 积分:2436
    • 等级:
    • 排名:第16655名
    • 原创:6篇
    • 转载:102篇
    • 译文:0篇
    • 评论:8条
    文章分类
    最新评论