随笔分类 -  Network Programming

摘要:Wonderful explaination about SO_REUSEADDR and SO_REUSEPORT. http://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-h 阅读全文
posted @ 2016-08-02 17:56 tanghuimin0713 阅读(182) 评论(0) 推荐(0)
摘要:多线程对同一块区域进行操作时,需要定义如下两种类型的变量:pthread_mutex_t xxx;pthread_cond_t yyy;pthread_mutex_t类型的变量,即锁,对公共区域的操作进行同步;pthread_cond_t类型的变量,用来对事件状态进行检测。举例:读线程从队列中读取数... 阅读全文
posted @ 2014-10-16 19:39 tanghuimin0713 阅读(842) 评论(0) 推荐(0)
摘要:上一篇博客《sqlite:多线程操作数据库“database is locked”解决方法》通过注册延时函数的方法来处理数据库被锁的问题。此方法固然能解决问题,但是在多个线程向数据库写入大量数据的情况下,延时会拖慢进度。想出方法二:1. 创建一个链表,链接如下格式的结构体,线程1,线程2,线程3..... 阅读全文
posted @ 2014-10-16 19:10 tanghuimin0713 阅读(1070) 评论(0) 推荐(0)
摘要:1. 使sqlite支持多线程(不确定是否非加不可,暂且加上,以备后患)可以在编译时/启动时/运行时选择线程模式,参考:http://www.cnblogs.com/liaj/p/4015219.html我的修改:1)添加编译选项:-DSQLITE_THREADSAFE=22)打开数据库文件使用sq... 阅读全文
posted @ 2014-10-14 19:59 tanghuimin0713 阅读(4502) 评论(0) 推荐(0)
摘要:创建ipv4和ipv6的socket,同时监听某个端口的ipv4和ipv6报文,运行时bind函数执行失败,提示“bind: Address already in use”。原因:ipv6的socket默认情况下也会接收ipv4地址的报文,不同的socket不能监听同样的ip同样的端口。方法:设置i... 阅读全文
posted @ 2014-09-29 15:16 tanghuimin0713 阅读(5981) 评论(0) 推荐(1)
摘要:1. IPv4: struct sockaddr_in, 16个字节 1 struct sockaddr_in { 2 sa_family_t sin_family; /* AF_INET */ 3 in_port_t sin_port; /* Port number. */ 4 struct in_addr sin_addr; /* Internet address. */ 5 6 /* Pad to size of `struct sockaddr'. */ 7 ... 阅读全文
posted @ 2013-11-15 18:38 tanghuimin0713 阅读(15119) 评论(3) 推荐(4)