- 博客(19)
- 资源 (3)
- 收藏
- 关注
原创 同一时刻只允许一个客户端连接的例子
最近做一个关于服务器和客户端互相通信的程序,题目有两个要求:1.服务器只能接收一个客户端的连接,当有第二个客户端连接时就会失败;2.当已经连接的客户端断开后,其他的客户端就可以去连接服务器了。这样的要求看似很简单,但做的过程中我才发现,客户端程序很好写,可服务器端有点麻烦了。首先只能接收一个客户端连接的服务器程序,这个很另类,网上找了大多都是研究怎么让服务器可以同时与多个客户端打交道,于是只能自己慢慢搞了。实践过程中,我发现,只要服务器端在调用了accept函数之后把用于listen用的socket给关闭掉
2010-07-08 21:39:00
2570
原创 生平第一次面试经历
今天我迎来了人生的第一次找工作面试,面试的单位是中兴。人生没有多少个第一次,因此我觉得有必要把这些东西记录下来,不论结果怎么样,对于我来说都是一件有意义的事情。废话不多说,入正题。由于中兴今天招聘的比较早,多少让我有些措手不及,之前一直都没准备关于面试的东西,于是当收到短信通知第二天去面试的时候我的心情十分复杂,可以说是又喜悦又紧张。当天晚上花了个把小时的时间把数据结构和网络的书草草过
2010-05-29 15:51:00
998
5
原创 CDilaogSK类的问题
无意中在网上看到一个对话框类CDialogSK---一个支持皮肤化的对话框类,颇感兴趣先看下CDialogSK是干什么的:(以下内容来自网上)CDialogSK---一个支持皮肤化的对话框类一、介绍该类从MFC的CDialog继承而来,支持如下特征:1、运行于win2000或者winxp平台上,可以使用任何透明色以透视对话框的区域。2、运行于win2000或者winxp平台上,可以
2010-01-23 15:48:00
2946
原创 VS2005把我弄晕了
今天头一回在vs2005上写UDP通讯程序,没想到遇到这么多麻烦。那么多类型转换出错:LPCSTR,wchar,这之类的,把我搞糊涂了,以前没接触过这种东西,不了解这些该怎么转换。VC6里面都可以直接换,2005里却搞那么麻烦,真是苦了我这样的新手. 作个记号 1.首先是CString转成char*的问题: 在VC6里面都是CString str;char
2009-08-28 22:45:00
802
原创 改朝换代了
今天开始我开始告别VC6.0编程了,从大一开始接触他到现在也有好几年了。还有点舍不得。 时代在进步,咱不能还在原地踏步。 其实最主要的原因还是我电脑上的VC6.0出问题了,弄了好半天都没解决,郁闷之下终于决定换掉它。 刚开始我想用VS2008的,从网上下载了个3.7G的后安装居然出错,这更增加了我的愤怒,怎么人衰了 就霉运连连,一气之下我又换成VS2005了。这下好
2009-08-27 16:28:00
638
1
原创 Rebuilt All的重要性
今天下午为了一个东西把头搞爆了,浪费了我好几个小时的时间。于是在这里把它记录下来。 事情是这样的,我在网上下载了一个让对话框控件随比例缩放的类CControlPos 把这个类添加到自己的对话框工程里后就可以用它里面的函数了,使用起来非常方便。 我按照它的步骤一步一步完成了,代码几乎一模一样但是最后并没有达到效果,试了好多次还是不行,最后我试着Rebuilt All,结果
2009-08-19 15:50:00
675
原创 自定义托盘菜单
首先给个程序最小化为托盘的例子: void CMyDlg::ToTray(){ NOTIFYICONDATA nid; nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA); nid.hWnd=this->m_hWnd; nid.uID=IDR_MAINFRAME; nid.uFlags=NIF_ICON|NIF
2009-08-18 20:43:00
1314
原创 VC6.0中友元函数访问类的私有成员的bug
最近写程序时候遇到了一个问题,上网查了之后发现这是vc6.0的bug。 继上次发现getline有bug以来,这是第二次了。顿时让我想起某人说的“珍惜生命,远离VC6”,这句话太对了 废话不多说,问题如下代码所示: #include using namespace std;class A{public: A():m(2) { }fri
2009-08-16 15:16:00
1728
原创 类对象的复制和拷贝问题
最近看到很多人讨论一个问题,颇感兴趣,于是在此作个记录问题是这样的:有类A的定义如下: class A{public: A() { } A(const A &a) { cout<<"拷贝"<<endl; } A operator=(const A&) { cout<<"赋值"<<endl; return *th
2009-08-12 15:03:00
620
原创 字符串处理的一些常用函数
1.strrchr函数 / strchr函数 /strstr函数 strrchr()函数的作用是:查找一个字符在另一个字符串中末次出现的位置,并返回字符串中的这个位置的指针,可以输出从这个位置起一直到字符串结束的所有字符。如果未能找到指定字符,那么函数将返回NULL。 函数原型是: char *strrchr(char *str, char c); 举个例子:
2009-07-30 16:01:00
1640
原创 虚拟析构函数和虚拟普通函数
通过基类的指针来删除派生类的对象时,基类的析构函数应该是虚的。否则其删除效果将无法实现。一般情况下,这样的删除只能够删除基类对象,而不能删除子类对象,形成了删除一半形象,从而千万内存泄漏。请看以下代码:#include "iostream.h"class A{public: A() { cout<<" A类的构造函数被调用"<<endl; }virtua
2009-07-24 12:25:00
955
原创 套接字之重叠I/O模型
刚刚把重叠I/O套接字理解了一点,于是在此做个笔记,给出一个重叠I/O处理单个套接字的程序。 这个程序是TCP的服务器端程序。该程序只能接收一个客户端的连接,循环发送信息,以及该客户端退出时服务器端得到响应。 套接字库初始化等代码省略了,只包含一个监听部分和一个处理I/O部分的代码。如下: void COVERLAPPEDDlg::OnButton1() //开启服务器按钮
2009-07-03 22:40:00
2751
原创 UDP的传输功能
最近看了几个聊天室和发送文件的代码,觉得比较有意思。于是我就想自己也试着弄一个这样的程序出来,下面开始介绍我乱搞的这个程序。界面是模仿飞鸽的界面,但功能比那个菜多了,比山寨还山寨。只有传消息和传文件的功能。首先定义两个结构体://这个是用户信息结构体,有主机名和IP地址。呆会要添加到列表狂里typedef struct userInfo{ char myhost[256]; char
2009-07-02 20:21:00
2211
1
原创 套接字I/O模型之WSAEventSelect
今天我又学习了一种新的套接字I/O模型------WSAEventSelect,他与WSAAsyncSelect一样也是一种异步事件通知模型,不同的是WSAAsyncSelect是与窗口句柄关联在一起的,必须要要窗口才行,而WSAEventSelect是与事件对象关联的。这个模型的基本思路是为感兴趣的一组网络事件创建一个事件对象,再调用WSAEventSelect函数将网络事件和事件对象关联起来。
2009-06-29 12:54:00
30167
7
原创 设置阻塞或非阻塞套接字
最近写这方面的程序遇到许多麻烦,都是阻塞和非阻塞套接字混淆导致的。这里做个记号,以后不准错了。 这是非阻塞编程阻塞的:SOCKET s=socket(AF_INET,SOCK_XXX,0);u_long ul=0; ioctlsocket(s,FIONBIO,(u_long*)&ul); 阻塞变成非阻塞就把u_long ul=1;就行了
2009-06-28 16:21:00
1966
原创 终于发现博客的好处了
以前从来都是懒得写博客,什么QQ空间、校内网之类的都已经长草了。终于在今天我发现写博客的好处,我要把我在学习程序设计过程中的一些经历给记录下来就当是学习笔记吧,而且还能督促我好好学习,多多尝试新的知识。希望能坚持下去,呵呵
2009-06-27 21:27:00
676
原创 聊天室用户列表功能
实现类似聊天室的那种用户列表的功能,其基本原理是每次用户登陆到聊天室就给服务器发送一个消息,该消息可以是用户的IP地址、主机名或登陆昵称(这里为方便起见用的是主机名),然后服务器收到消息后就将该消息广播到连接到服务器的所有客户端,这样所有的用户就都有了一个包含其他用户消息的列表了。下面是简单的代码,仅测试这个功能。 服务器端代码:BOOL CCWINDlg::OnInitDialo
2009-06-27 21:01:00
2370
转载 堆与栈的区别
【http://www.chinaitpower.com/2005September/2005-09-13/206685.html】一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放
2009-06-27 13:40:00
578
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人