tabIndex
摘要:vb的tabIndex属性可以设置键盘中的TAB键在控件中的移动顺序,即焦点的顺序。 把控件的tabIndex属性设成1到32767的一个值,就可以把这个控件加入到TAB键的序列中。 这样,当浏览者使用TAB键在网页控件中移动时,将首先移动到具有最小tabIndex属性值的控件上,最后在具有最大tabIndex属性值的控件上结束移动
阅读全文
posted @
2013-08-23 15:06
hrbust_09zhangyabin
阅读(271)
推荐(0)
数据库中rs("ABC")与rs.Fields("ABC").value的差别(Rs是RecordSet对象)
摘要:透过RecordSet取得数据的时候我们要将数据显示出来时,假设字段名称是ABCABCX = rs("ABC")对于RecordSet来说....是把ABC这个【Fileds对象】指定给ABCXrs("ABC")是省略了rs.Fields("ABC")显示的时候,预设会用Fields中的value属性显示数据由于是指定了【对象】给变量所以如果rs.close的时候也就断了联系了如果改成ABCX = rs.Fields("ABC").value那么就是把【属性value的内容】指定给ABCX此时的ABCX是【值】因此
阅读全文
posted @
2013-08-22 17:40
hrbust_09zhangyabin
阅读(4189)
推荐(0)
vb常用命名空间
摘要:摘自:http://www.2cto.com/kf/201211/170837.html感谢(一)如下是系统中分离出来Imports MicrosoftImports Microsoft.CSharpImports Microsoft.SqlServerImports Microsoft.VisualBasicImports Microsoft.Win32Imports SystemImports System.CodeDomImports System.CollectionsImports System.ComponentModelImports System.DataImports Sys
阅读全文
posted @
2013-08-22 14:43
hrbust_09zhangyabin
阅读(2196)
推荐(0)
SO_REUSEADDR的分析
摘要:今天协议个socket程序时碰到了这个问题,选自博客http://www.cppblog.com/ace/archive/2006/04/29/6446.html敲完代码,等下看它。
阅读全文
posted @
2013-08-15 23:21
hrbust_09zhangyabin
阅读(304)
推荐(0)
stderr和stdout详细解说
摘要:今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣。int fprintf(FILE *stream,char *format,[argument]);在此之前先区分一下:printf,sprintf,fprintf。1,printf就是标准输出,在屏幕上打印出一段字符串来。2,sprintf就是把格式化的数据写入到某个字符串中。返回值字符串的长度。3,fprintf是用于文件操作。 原型:int fprintf(FILE *stream,char *format,[argument]); 功能:fprintf()函数根据指定的format(格式)发送信息(参数)到由stre
阅读全文
posted @
2013-07-21 14:46
hrbust_09zhangyabin
阅读(34672)
推荐(11)
127.0.0.1
摘要:127.0.0.1是一个循环IP地址。如果你往这个地址发信息,信息就会重新输送回你这里,这个地址没有被分配给任何人、组织。他只是一个试验地址。这个回送地址,翻译成汉语,就是“你自己”。
阅读全文
posted @
2013-07-19 11:04
hrbust_09zhangyabin
阅读(242)
推荐(0)
详解select()函数---
摘要:以后看http://hi.baidu.com/bimufo/item/139700e4d880cba1c00d755c
阅读全文
posted @
2013-07-18 22:20
hrbust_09zhangyabin
阅读(161)
推荐(0)
socket函数的使用方法(参数详解)
摘要:socket函数的使用方法如下:int socket(int domain, int type, int protocol); 在参数表中,domain指定使用何种的地址类型,比较常用的有: PF_INET, AF_INET: Ipv4网络协议; PF_INET6, AF_INET6: Ipv6网络协议。 type参数的作用是设置通信的协议类型,可能的取值如下所示: SOCK_STREAM: 提供面向连接的稳定数据传输,即TCP协议。 OOB: 在所有数据传送前必须使用connect()来建立连接状态。 SOCK_DGRAM: 使用不连续不可靠的数据包连接。 SOCK_SEQP...
阅读全文
posted @
2013-07-18 15:43
hrbust_09zhangyabin
阅读(1502)
推荐(0)
问与答1
摘要:将socket设为非阻塞模式,然后用select进行I/O复用,如果有数据可读,那么就调用recv进行读取,但是因为是非阻塞的,所以我们要用循环 进行不断读取,那么如何知道数据读取完成了呢?我认为当recv返回的字节数小于0,errno==EAGAIN的时候数据读取完成,不知道对不对??
阅读全文
posted @
2013-07-17 23:50
hrbust_09zhangyabin
阅读(128)
推荐(0)
Socket 阻塞与非阻塞模式
摘要:http://blog.sina.com.cn/s/blog_5d0990c7010115ib.html
阅读全文
posted @
2013-07-17 23:08
hrbust_09zhangyabin
阅读(138)
推荐(0)
TCP和UDP
摘要:TCP编程的服务器端一般步骤是:1、创建一个socket,用函数socket();2、绑定IP地址、端口等信息到socket上,用函数bind();3、开启监听,用函数listen();4、接收客户端上来的连接,用函数accept();5、收发数据,用函数send()和recv(),或者read()和write();6、关闭网络连接;7、关闭监听; TCP编程的客户端一般步骤是:1、创建一个socket,用函数socket();2、设置要连接的对方的IP地址和端口等属性;3、连接服务器,用函数connect();4、收发数据,用函数send()和recv(),或者read()和write();
阅读全文
posted @
2013-07-14 22:09
hrbust_09zhangyabin
阅读(179)
推荐(0)
琐碎知识
摘要:在c/c++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。堆:就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由存储区:就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。全局存储区(静态存储区):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,
阅读全文
posted @
2013-07-13 16:05
hrbust_09zhangyabin
阅读(236)
推荐(0)
malloc,alloc,realloc之间的相似与区别
摘要:三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t numElements, size_t sizeOfElement); 都在stdlib.h函数库内。它们的返回值都是请求系统分配的地址,如果请求失败就返回NULL。malloc与calloc的区别为1块与n块的区别: malloc调用形式为(类型*)malloc(size):在内存的动态存储区中分配一块长度为“size”字节的连续区域,返回该区域的首地址。 calloc调用形式为(类型
阅读全文
posted @
2013-07-13 15:27
hrbust_09zhangyabin
阅读(9132)
推荐(0)
linux多线程加解锁
摘要:1、动态方式使用互斥量,该类型的互斥量在定义时不进行初始化,需要在使用之前初始化,使用结束销毁 1.1、定义一个锁变量: pthread_mutex_t g_mutex_Msg; 1.2、初始化锁变量: pthread_mutex_init (&g_mutex_Msg,NULL); 1.3、销毁锁变量: pthread_mutex_destroy(&g_mutex_Msg); 1.4、加解锁: pthread_mutex_lock (&g_mutex_Msg); //需要被锁保护的对象的使用; pthread_mutex_unlock(&g_mutex_Msg)
阅读全文
posted @
2013-07-08 20:58
hrbust_09zhangyabin
阅读(1588)
推荐(1)
pthread_create()
摘要:#include int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void *restrict arg);返回值若成功则返回0,否则返回出错编参数第一个参数为指向线程标识符的指针。第二个参数用来设置线程属性。 一般NULL第三个参数是线程运行函数的起始地址。最后一个参数是运行函数的参数 。一般NULL
阅读全文
posted @
2013-07-08 13:28
hrbust_09zhangyabin
阅读(341)
推荐(0)
最简单的线程
摘要:#include#includevoid *print_thread_id(void *arg){ /* 打印当前线程的线程号*/ printf("Current thread id is %u\n", (unsigned)pthread_self());}int main(int argc, char *argv[]){ pthread_t thread; /*保存线程号*/ /*创建一个线程 */ pthread_create(&thread, NULL, print_thread_id, NULL); sleep(1); /*休眠1s*/ /*打印进程号 */
阅读全文
posted @
2013-07-08 13:13
hrbust_09zhangyabin
阅读(204)
推荐(0)
线程锁
摘要:pthread_mutex_init是对锁进行初始化,一个参数是锁结构体,一个是属性,属性基本为NULL就行。pthread_mutex_lock用来加锁,加锁后,别的线程运行到这个地方就不能继续运行了,等待解锁。pthread_mutex_unlock用来解锁。pthread_mutex_destroy用来销毁锁。
阅读全文
posted @
2013-07-08 11:18
hrbust_09zhangyabin
阅读(213)
推荐(0)
多进程小例子--fork+pipe
摘要:1 #include 2 #include 3 4 #define m 6 5 int main() 6 { 7 int pipefd[2]; 8 int pid; 9 int m1;10 11 if(pipe(pipefd)0) //parent18 {19 m1=m;20 close(pipefd[0]); //close read end21 write(pipefd[1],&m1,sizeof(int)); //read m122 wait(NULL); // wait for child complete23 close(pipefd[1]);24 }25 else if(p
阅读全文
posted @
2013-07-06 23:21
hrbust_09zhangyabin
阅读(271)
推荐(0)
vim解决中文的保存(时间不多,等下研究)
摘要:http://blog.csdn.net/feiniao1221/article/details/7000868这篇很好,感谢博主。仅做学习。
阅读全文
posted @
2013-06-04 19:46
hrbust_09zhangyabin
阅读(186)
推荐(0)
include
摘要:#include"stdio.h"当要调用某个函数时先在用户自已编写的文件中查找,如果找不到再到库文件里去找,而#include<stdio.h> 是直接到库文件里去找所以如果是调用自己写的函数的话就用#include"stdio.h",这种形式而调用标准库函数的话就用#include<stdio.h>这种形式,可以提高速度
阅读全文
posted @
2013-06-03 10:43
hrbust_09zhangyabin
阅读(105)
推荐(0)