• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






平生不缺金

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

[置顶] socket网络编程快速上手(二)——细节问题(5)(完结篇)
摘要: 6.Connect的使用方式 前面提到,connect发生EINTR错误时,是不能重新启动的。那怎么办呢,是关闭套接字还是直接退出进程呢?如果EINTR前,三次握手已经发起,我们当然希望链路就此已经建立完成,不要再重新走流程了。这个时候我们就需要为connect量身定做一个使用方案。代码如下: 1 STATUS connectWithTimeout(int sock, struct sockaddr*addrs, int adrsLen,struct timeval* tm) 2 { 3 int err = 0; 4 int len = sizeof(int); 5 i... 阅读全文
posted @ 2013-09-18 16:25 平生不缺金 阅读(1901) 评论(1) 推荐(1)
 

[置顶] 替换__thread的一种方式,实现TLS功能
摘要: TLS是由于多线程编程带来的产物,主要是为了解决线程资源局部化,具体内容网上有很多介绍。有很多地方已经支持了该功能,但有些地方没有,下面是GCC的一些介绍,反正具体看实际使用情况:5.51 Thread-Local Storage=========================Thread-local storage (TLS) is a mechanism by which variables areallocated such that there is one instance of the variable per extantthread. The run-time model G 阅读全文
posted @ 2013-07-13 15:18 平生不缺金 阅读(1635) 评论(0) 推荐(0)
 

2013年10月9日

如何理解signal函数声明
摘要: Signal函数用起来其实很简单,但是回头看看他的声明,相信会有很多人表示费解。自己也在这个问题中纠结了好几年了,今天终于弄明白,很是兴奋,一起分享一下。 先看函数原型:void (*signal(int signo, void (*func)(int)))(int);对于看惯了类似unsigned int sleep(unsigned int seconds);这种声明的人们来说,signal的声明到底是个啥啊?signal是个函数,后面应该是形参啊,但为什么形参后面又来个形参,我们使用的时候可没有后面的(int)啊? 问题就出在这,难以理解的也是这里。我们又掉进了一个误区,我们往往以为s. 阅读全文
posted @ 2013-10-09 11:41 平生不缺金 阅读(779) 评论(0) 推荐(1)
 

2013年9月24日

TCP为什么是个可靠的协议
摘要: 一直以来,我们都被告知TCP是可靠的。但为什么是可靠的,很多人都会说“三次握手、四次挥手”。然后我们就进入一个误区:TCP可靠是因为它在建立链路时进行了“多次”地确认。然后又有人问,“多次确认就可靠了吗?”专家想了一会,说:“这只是相对的……” 回顾一下,网络书籍里面有一个很著名的问题,“红军和蓝军通信联合进攻山下的敌军的例子,第一天红军发了条信息要蓝军第二天一起进攻,蓝军收到之后,发一条确认信息,但是蓝军担心的是‘确认信息’如果也不可靠而没有成功到达红军那里,那自己不是很危险?于是红军再发一条‘对确认的确认信息’,但同样的问题还是不能解决,红军仍然不敢贸然行动。”这个问题简直就是故意在讽刺. 阅读全文
posted @ 2013-09-24 17:23 平生不缺金 阅读(4203) 评论(17) 推荐(6)
 

2013年9月11日

socket网络编程快速上手(二)——细节问题(4)
摘要: 5.慢系统调用及EINTR 还记得前面readn和writen函数么?里面有个EINTR,现在就来谈谈这个,这个很重要。 Linux世界有个叫信号的东西,感觉他就像一位隐士,很少遇到他,而他又无处不在。当你船到桥头时,他从天而降,将你领入另一片天地。(唉,博客再写下去我都可以改行了)前面已经初步窥探了信号的神奇,一个“小小”的SIGPIPE能让我们不知道怎么回事就惨遭“灭门”。那还有其他千千万万的信号呢,是不是也会对我们写的网络程序表现出神奇的现象。答案:有!还有很多! 写到这,才发现自己还没涉及网络编程涉及的那些函数,这也是一项基础知识的学习。在前面知识的基础上,相信很快能掌握那些套接字函数 阅读全文
posted @ 2013-09-11 12:38 平生不缺金 阅读(1286) 评论(2) 推荐(1)
 

2013年9月9日

socket网络编程快速上手(二)——细节问题(3)
摘要: 3.SIGPIPE问题 人怕牺牲,我们写的程序也一样,人有死不瞑目,程序又何尝不是?程序跑着跑着,突然就崩掉了。好一点的牺牲前告诉你些打印,差点的也能用core文件等一些手段查出死在哪了,最惨不忍睹的就是程序没了,core也没了,这真是死得莫名其妙。我们在写socket程序时,也会有这种困扰。 下面我又要开始极尽构造之能事了,客户端代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 10 #define PORT 12341... 阅读全文
posted @ 2013-09-09 23:20 平生不缺金 阅读(1597) 评论(2) 推荐(3)
 
socket网络编程快速上手(二)——细节问题(2)
摘要: 2.TCP数据包接收问题 对初学者来说,很多都会认为:客户端与服务器最终的打印数据接收或者发送条数都该是一致的,1000条发送打印,1000条接收打印,长度都为1000。但是,事实上并不是这样,发送打印基本不会有什么问题(只是一般情况,如果发生调度或者其他情况,有可能导致差别,因此也要注意封装),接收打印却不是固定的,下面是测试代码:测试客户端程序: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 10 #define PORT 1... 阅读全文
posted @ 2013-09-09 17:18 平生不缺金 阅读(1290) 评论(0) 推荐(4)
 
socket网络编程快速上手(二)——细节问题(1)
摘要: 三、细节问题一个也不能少 Socket编程说简单也简单,程序很容易就能跑起来,说麻烦还真是麻烦,程序动不动就出问题。记得刚开始写网络代码的时候,那真是令人抓狂的经历,问题一个套一个,一会服务器起不来了,一会数据接收异常了,到最后自己都对那些系统调用都不放心了,怎么会要考虑那么多东西?起初,我是一万个怀疑,是不是自己人品出问题了,怎么别人没遇到,全给自己赶上了。后来,拿着《UNIX网络编程》随便看看,那书怎么会这么了解我的?细节!细节!细节!那些问题都被别人明明写出来了,自己又SX了。没办法,细节不注意,有苦说不出啊。 不过也不能怪自己不爱学习啊,说实话那书实在太厚了,下面只记录一些自己遇到的、 阅读全文
posted @ 2013-09-09 07:42 平生不缺金 阅读(1948) 评论(1) 推荐(3)
 

2013年9月8日

socket网络编程快速上手(一)
摘要: 工作以来,写了很多socket相关的代码。磕磕碰碰,走了很多弯路,也积累了一些东西,今天正好整理一下。为了证明不是从书上抄来的,逻辑会有点乱(借口,呵呵)!知识点的介绍也不会像书上说的那么详细和精准,毕竟个人水平也就这样了。当然,主要还是以上手为主,不过分剖析原理性内容。一些陌生的函数要用到的头文件,使用man查看一下就能解决了。既然该文的名称为“快速上手”,那个人认为下述内容都不存在水分,都是必须要掌握的,一点都不能急躁!一、socket连接流程: 对于程序员来说,开始的时候只会把socket编程当成一个工具,尽快上手,尽快解决战斗。于是乎最关心的就是socket那些函数的调用顺序,那就先给 阅读全文
posted @ 2013-09-08 20:43 平生不缺金 阅读(2766) 评论(9) 推荐(8)
 

2013年7月15日

多线程编程中使用pthread_create内存泄露问题
摘要: //tls5源代码:#include #include #include #include "pthread.h"#include "TLS/Tlsconf.h"#include "TLS/tls_api.h"#define ERROR -1#define OK 0void test_fn2(int a){ char *psz = (char*)get_buf(ENUM_1, 32); printf("thread(%u) psz: %s\n", pthread_self(), psz); memset(psz, 阅读全文
posted @ 2013-07-15 20:02 平生不缺金 阅读(1941) 评论(0) 推荐(0)
 
下一页