一点体会。

  我觉得学VB等等的概念和知识。
首先要在总体上把握:

                原来一直以为API是非常神秘的东东,非高手才能搞的。

                今天突然看见关于API的介绍,实际上就是VB外的函数或者过程。
应用的时候就跟最普通的过程或者函数是一样的。
 
                 `所以,以后学东西,先要从整体上把握,知道每个章节的主要内容,分清楚哪个是难点,哪个是重点。

                 VB里面对数据库的操作应该是重点吧
                 难点应该在类和模型吧。

一点体会

09-08

从大学校园里出来已经快2个月了,现在在一家信息公司里搞vb开发,公司的业务我不是很清楚,从我进来到现在,在我的印象中公司好象是没什么事情做来可以赚钱的。老板是个周易迷,听说从小就开始研究,现在还是什么协会的成员之类的人物,当初招我和我的一个同学进来,要我们开发一套关于预测(说白了就是算命)的小软件,说实话我也不太懂,反正是有事干就好了,那时候是这个心情,同学差不多都找到工作了,我还没落实,听说有班上我还管它是什么,先干着再说,我想人在那种极度的压力下都会这样想而且这样做的。到现在差不多也有1个多月了,其中的一个软件也基本上做得差不多了,但是工资却少得可怜,试用期只有500块钱,正式工资我也不知道有多少。反正我想不会超过1000,忘了说,我是在杭州,这样的钱我连养活自己都很困难。目前我的确处在一个很困惑的境况,想不干从新找一份工作,家里人又反对,我也不敢贸然的就辞职不干,因为我都不知道我能干点什么别的去,想搞下去又觉得实在是没前途的事,只是在浪费青春。这种存在的痛苦和两难的选择也许现在不少人都有碰到,朋友说学点东西之后再换个好点的环境,剩下的问题就是要我去考虑学点什么,怎么学,什么时候才是出走的时候。太多太多的情绪和念头在毕业之后困惑着自己。希望过来人和同路人一起谈谈!rn我的e_mail:smallor@sina.comrn 论坛

select函数的一点体会

08-01

select函数返回值rnrnThe select function returns the total number of socket handles that are ready and contained in the fd_set structures, zero if the time limit expired, or SOCKET_ERROR if an error occurred. If the return value is SOCKET_ERROR, WSAGetLastError can be used to retrieve a specific error code.rnrn这是英文rnrnrnrn自己的体会:如有新的连接,和 有数据发送到服务器, select后>=1,rnrnrnrn附一段网上的代码,rnrn这代码很多博客,文章都转载过, rnrn我是菜鸟,觉得有些不对,高手莫笑,望指点rnrnrnrnrnfdSocket是没select前的集合,代码没对fdSocket select,所所以其的套接字数目不变。rnrnfdRead 则可能减少,也可能增多(比如:有新的连接)rnrnrn所以for循环的执行次数,就不该用fdSocket ,而改用fdRead .rnrnrn if(FD_ISSET(fdSocket.fd_array[i], &fdRead)) 这一句改成: if(FD_ISSET(fdRead.fd_array[i], &fdSocket))rnrn if(fdSocket.fd_array[i] == sListen) // (1)监听套节字接收到新连接rnrn这一句改成:rnrn if(fdRead.fd_array[i] == sListen) // (1)监听套节字接收到新连接(fdRead是处理过剩下有连接或者有数据的套接字)rnrnrnrnrn代码(转载的)rnrn[code=C/C++]rnrnwhile(TRUE)rnrn // 2)将fdSocket集合的一个拷贝fdRead传递给select函数,rn // 当有事件发生时,select函数移除fdRead集合中没有未决I/O操作的套节字句柄,然后返回。rn fd_set fdRead = fdSocket;rn int nRet = ::select(0, &fdRead, NULL, NULL, NULL);rn if(nRet > 0)rn rn // 3)通过将原来fdSocket集合与select处理过的fdRead集合比较,rn // 确定都有哪些套节字有未决I/O,并进一步处理这些I/O。rn for(int i=0; i<(int)fdSocket.fd_count; i++)rn rn if(FD_ISSET(fdSocket.fd_array[i], &fdRead))rn rn if(fdSocket.fd_array[i] == sListen) // (1)监听套节字接收到新连接rn rn if(fdSocket.fd_count < FD_SETSIZE)rn rn sockaddr_in addrRemote;rn int nAddrLen = sizeof(addrRemote);rn SOCKET sNew = ::accept(sListen, (SOCKADDR*)&addrRemote, &nAddrLen);rnrn FD_SET(sNew, &fdSocket);rn printf("接收到连接(%s)\n", ::inet_ntoa(addrRemote.sin_addr));rn rn elsern rn printf(" Too much connections! \n");rn continue;rn rn rn elsern rn char szText[256];rn int nRecv = ::recv(fdSocket.fd_array[i], szText, strlen(szText), 0);rn if(nRecv > 0) // (2)可读rn rn szText[nRecv] = '\0';rn printf("接收到数据:%s \n", szText);rn rn else // (3)连接关闭、重启或者中断rn rn ::closesocket(fdSocket.fd_array[i]);rn rn printf("关闭\n");rn FD_CLR(fdSocket.fd_array[i], &fdSocket);rn rn rn rn rn rn elsern rn printf(" Failed select() \n");rn break;rn rnrnrnrnrnrn[/code] 论坛

没有更多推荐了,返回首页