上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 23 下一页
  2013年7月21日
摘要: 今天又查了一下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 阅读(33942) 评论(0) 推荐(11) 编辑
  2013年7月19日
摘要: 127.0.0.1是一个循环IP地址。如果你往这个地址发信息,信息就会重新输送回你这里,这个地址没有被分配给任何人、组织。他只是一个试验地址。这个回送地址,翻译成汉语,就是“你自己”。 阅读全文
posted @ 2013-07-19 11:04 hrbust_09zhangyabin 阅读(230) 评论(0) 推荐(0) 编辑
  2013年7月18日
摘要: 以后看http://hi.baidu.com/bimufo/item/139700e4d880cba1c00d755c 阅读全文
posted @ 2013-07-18 22:20 hrbust_09zhangyabin 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 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 阅读(1445) 评论(0) 推荐(0) 编辑
  2013年7月17日
摘要: 将socket设为非阻塞模式,然后用select进行I/O复用,如果有数据可读,那么就调用recv进行读取,但是因为是非阻塞的,所以我们要用循环 进行不断读取,那么如何知道数据读取完成了呢?我认为当recv返回的字节数小于0,errno==EAGAIN的时候数据读取完成,不知道对不对?? 阅读全文
posted @ 2013-07-17 23:50 hrbust_09zhangyabin 阅读(122) 评论(0) 推荐(0) 编辑
摘要: http://blog.sina.com.cn/s/blog_5d0990c7010115ib.html 阅读全文
posted @ 2013-07-17 23:08 hrbust_09zhangyabin 阅读(134) 评论(0) 推荐(0) 编辑
  2013年7月14日
摘要: 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 阅读(171) 评论(0) 推荐(0) 编辑
  2013年7月13日
摘要: 在c/c++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。堆:就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由存储区:就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。全局存储区(静态存储区):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 阅读全文
posted @ 2013-07-13 16:05 hrbust_09zhangyabin 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 三个函数的申明分别是: 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 阅读(9111) 评论(1) 推荐(0) 编辑
  2013年7月8日
摘要: 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 阅读(1584) 评论(0) 推荐(1) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 23 下一页