linux socket使用经验总结】的更多相关文章

1.  scoket函数中PF_INET AF_INET区别 在UNIX系列中,PF_INET表示poxis, BSD系列用AF_INET 2.  in_addr_t inet_addr(const char *cp); 入参是字符型ip,in_addr_t 为uint32_t 3.  if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) == -1) { return -1; } 用于绑定bind之前,soc…
这个博客很多东西 http://blog.csdn.net/luozhonghua2014/article/details/37041765   思考一种高性能的服务器处理框架 1.首先需要一个内存池,目的在于:·减少频繁的分配和释放,提高性能的同时,还能避免内存碎片的问题:·能够存储变长的数据,不要很傻瓜地只能预分配一个最大长度:·基于SLAB算法实现内存池是一个好的思路:分配不同大小的多个块,请求时返回大于请求长度的最小块即可,对于容器而言,处理固定块的分配和回收,相当 容易实现.当然,还要…
本来是一次计算机网络的实验,但是还没有完全写好,DNS的响应请求报文的冗余信息太多了,不只有IP地址.所以这次的实验主要就是解析DNS报文.同时也需要正确的填充请求报文.如果代码有什么bug,欢迎指正啊.代码排版有点乱... 本文有以下内容 DNS报文的填充和解析 利用socket API传输信息 一.填充DNS请求报文 随便百度一下,就可以知道DNS报文的格式.所以这里只介绍如何填充DNS报文. 首先是填充报文首部: /* 填充首部的格式大致相同,下面的填充值是参考他人抓包分析的结果 */ b…
/* * socketfactory.h * * Created on: 2014-7-19 * Author: root */ #ifndef SOCKETFACTORY_H_ #define SOCKETFACTORY_H_ #include<sys/types.h> /* * 在网路编程中, 一般分为服务端和客户端,两者的行为有相似之处,也有非常多的不同.在linux中对socket程序设计 * 仅提供了socket(), bind(), connection(), accept() l…
在 TCP/IP 协议中,"IP地址 + TCP或UDP端口号" 可以唯一标识网络通讯中的一个进程,"IP地址+端口号" 就称为 socket.本文以一个简单的 TCP 协议为例,介绍如何创建基于 TCP 协议的网络程序. TCP 协议通讯流程 下图描述了 TCP 协议的通讯流程(此图来自互联网): 下图则描述 TCP 建立连接的过程(此图来自互联网): 服务器调用 socket().bind().listen() 函数完成初始化后,调用 accept() 阻塞等待…
lwIP - A Lightweight TCP/IP stack 在上一篇中,我们了解到在OpenFastPath上如何移植原生态的Linux Socket应用程序,那么,对于另外一个老牌的小型TCPIP协议栈------LWIP,又是如何处理这个问题的. 1.lwip重新定义了函数符号 #define listen(s,backlog) lwip_listen(s,backlog) /** @ingroup socket */ #define recv(s,mem,len,flags) lw…
版本信息: ODP(Open Data Plane): 1.19.0.2 OFP(Open Fast Path): 3.0.0 1.存在的问题 OpenFastPath作为一个开源的用户态TCP/IP协议栈,其对用户提供的Socket API,无论是宏定义.数据结构还是函数,均以OFP_开头.如下图所示: int ofp_socket(int, int, int); int ofp_socket_vrf(int, int, int, int); int ofp_accept(int, struc…
0x0000 Linux Socket 函数 bind listen connect accept send recv read write 0x0001 Server绑不上ip 报错位置在bind函数 [root@localhost 01]# ./server 191.168.80.151 1588 191.168.80.151 : 1588 Bind: Cannot assign requested address port已被占用 报错位置在bind函数 [root@localhost 0…
1 linux socket编程的固定模式 server端,bind.listen.accept client端,connect client端和server端之间的一次通信: client端,write然后read server端,read然后write 比如服务器端write之后,把要发送的数据写入缓冲区,下面的tcp负责发送数据,发送后,要对方应答收到才算成功.如果超时没有收到应答会重新发送,一般会重新发送9分钟,如果9分钟内还没有收到应答,则传输失败.所以说,tcp是一个可靠的传输协议.…
前言:         Socket API 是网络应用程序开发中实际应用的标准 API.尽管该 API 简单,但是   开发新手可能会经历一些常见的问题.本文识别一些最常见的隐患并向您显示如何避免它们. 相关文档:<linux socket 编程> 在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性.事实上,很难找到一种不支持 Sockets API 的现代语言.该 API 相当简单,但新的开发人员仍然会遇到一些常见的隐患. 本文识别那些…