个人工作总结 2014-04-29
1、对语言的基础理解不是太深刻,不能灵活的使用
2、是不是给线程传递数据大多需要动态生成啊,因为必须传递地址给它么,如果传递局部变量肯定不对啊,还有就是accept函数中有个需要地址的参数,传递的就是局部变量,为什么可以呢?
3、线程函数往往是静态的,但是工具为了实现代码的复用,往往把重复代码抽出来形成函数,但是线程函数无法使用这些函数,这该怎么处理呢,是将工具函数定义为静态的呢,还是不用该函数呢?
4、在网络编程中,使用send、recv等函数的参数是char*,而项目的编码往往是Unicode,造成它们之间的转换非常频繁,所以,有没有一种简单的方法呢,例如,MFC中有没有提供以CString为参数的网络编程函数呢?
5、我认为软件编程工作,归根结底就是封装,越好用的东西封装性越高,同时灵活性就会降低。GUI是对Dos的封装,MFC是对,WinAPI的封装,等等
6、定义指针之后要记得赋值NULL,清空指针指向的动态内存后,也要记得将指针设置为NULL
7、UDP服务器监听功能如果使用异步选择模型时,客户端太多且脉冲信号太频繁,则会出现混乱,因为recvfrom函数不再阻塞了,在第一个脉冲还没处理完呢,下一次又来了。此时该怎么处理呢?
8、在给线程函数传值时应该将所在对象的this传过去,这样就可以使用this来访问对象的成员变量了。
接收时需要对指针进行转换
类名 *
pThis = reinterpret_cast<类名 *>( lParam );
ASSERT( pThis != NULL );
9、
VC选项卡 http://www.2cto.com/kf/201205/129969.html
CString
完美讲解http://www.2cto.com/kf/201205/130195.html
VC多线程
http://www.2cto.com/kf/201109/103133.html
多线程
http://www.cppblog.com/suiaiguo/archive/2009/07/24/91045.html
局域网多用户通信
http://www.vckbase.com/index.php/wv/200.html
http://www.webhek.com/
10、所有使用new申请动态内存时都要判断返回指针是否为null。
11、STL中的绑定器有类绑定器和函数绑定器两种
12、网络编程中无论是FTP、HTTP、SMTP等哪种协议,在底层还是使用TCP或者UDP传输数据的,唯一的区别是不同协议发送数据的格式是不一样的,相应的接收方解析数据的格式也是不一样的。软件编程的思想最终都逃不过一个词,封装。函数库是对常用函数的封装,提供更方便、更统一的接口,类库是对基础类的封装,提供更通用的类。
软件开发另一个主要的思想的就是模块化,对单独的功能进行封装已实现多处重用。
今天在楼下看到那个自动贩卖机,发现它的那个识别纸币的小东西是单独成一体的,这样做的好处就是它只实现了识别纸币的功能,这样它就可以用在任何需要识别纸币的机器上,这就达到了重用的思想。
其实我发现,生活中好多东西都是相通的,比如说在软件设计领域很火的设计模式好像最早是使用在建筑设计行业的,偶然被一些聪明发现了软件开发和建筑中的相通点,于是引入了软件行业,致使设计模式这么火。
13、全局变量的定义:
14、到处都是字符的转换,从Ascii到UNICODE,从UNICODE到Ascii。。。烦死了。写好的转换函数吧,在静态的线程函数中还不能使用。
15、异步套接字WSAAsyncSelect函数的使用,有可能会造成10035错误,不知道如何解决,网上说的是缓冲区满返回的错误。