![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux网路编程
申庆胜
这个作者很懒,什么都没留下…
展开
-
ntohs, ntohl, htons,htonl inet_aton等详解
ntohs =net to host short int 16位htons=host to net short int 16位ntohs =net to host long int 32位htonl=host to net long int 32位简述: 将一个无符号短整形数从网络字节顺序转换为主机字节顺序。 #include u_short PASCAL FAR原创 2009-07-14 14:12:00 · 1243 阅读 · 0 评论 -
Open C 套接字: send, sendto, sendmsg 方法
Open C 套接字: send, sendto, sendmsg 方法send,sendto,sendmsg方法用于从套接字发送消息。 ssize_t send (int s, const void *msg, size_t len, int flags); ssize_t sendto (int s, const void *msg, size_t len, int flags原创 2009-07-14 16:01:00 · 1334 阅读 · 0 评论 -
网络字节顺序和机器顺序什么区别
存在两种字节顺序:NBO与HBO网络字节顺序NBO(Network Byte Order):按从高到低的顺序存储,在网络上使用统一的网络字节顺序,可以避免兼容性问题。主机字节顺序(HBO,Host Byte Order):不同的机器HBO不相同,与CPU设计有关计算机数据存储有两种字节优先顺序:高位字节优先和低位字节优先。Internet上数据以高位字节优先顺序在网络上传输,所以对转载 2009-07-01 11:35:00 · 499 阅读 · 0 评论 -
多进程服务器中,epoll的创建应该在创建子进程之后
看我的测试代码,似乎应该是在创建子进程之后创建epoll的fd,否则程序将会有问题,试将代码中两个CreateWorker函数的调用位置分别调用,一个在创建epoll fd之前,一个在之后,在调用在创建之前的代码会出问题,在我的机器上(linux内核2.6.26)表现的症状就是所有进程的epoll_wait函数返回0, 而客户端似乎被阻塞了:服务器端:Code highlighting pro转载 2009-08-26 15:54:00 · 491 阅读 · 0 评论 -
epoll使用方法
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __FD_S转载 2009-08-26 12:57:00 · 1065 阅读 · 0 评论 -
epoll LT VS ET (ZZ)
近日又继续学习了一下EPOLL的工作模式,这会基本上搞清楚了,因而撰写了此篇文档进行描述。先来一段网上的介绍文档:EPOLL事件分发系统可以运转在两种模式下:Edge Triggered (ET)、Level Triggered (LT)。LT是缺省的工作方式,并且同时支持block和no-block socket;在这种做法中,内核告诉你一个文件描述符是否就绪了,然后你可以对这个就绪的fd进行I原创 2009-08-26 14:07:00 · 572 阅读 · 0 评论 -
关于alarm函数
alarm(设置信号传送闹钟) 相关函数 signal,sleep表头文件 #include定义函数 unsigned int alarm(unsigned int seconds);函数说明 alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数seconds 为0,则之前设置的闹钟会被取消,并将剩下的时间返回。返回值 返回之前闹钟的剩余秒数,如果原创 2009-07-19 11:19:00 · 895 阅读 · 0 评论 -
网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
inet_aton,inet_addr和inet_ntoa在点分十进制数串(如,“192.168.1.10")与他的32位网络字节二进制值之前转 换IPV4地址,有2个比较新的函数inet_pton和inet_ntop,这2个对IPV4和IPV6地址都能处理 #include #include #include int inet_aton(co原创 2009-07-16 16:41:00 · 1458 阅读 · 0 评论 -
inet_aton和inet_network和inet_addr三者比较
三者定义:int inet_aton(const char *cp, struct in_addr *inp);in_addr_t inet_addr(const char *cp);in_addr_t inet_network(const char *cp);三者区别:先说出区别吧,不卖关子。但其实这样不好,因为我怕你因为知道了结论而不去动手实践了。(你不会的,是吧? ^_^原创 2009-07-16 16:45:00 · 1170 阅读 · 1 评论 -
gethostbyname() -- 用域名或主机名获取IP地址
#include #include struct hostent *gethostbyname(const char *name); 这个函数的传入值是域名或者主机名,例如"www.google.cn"等等。传出值,是一个hostent的结构。如果函数调用失败,将返回NULL。 struct hostent { char *h_name原创 2009-07-15 17:39:00 · 1642 阅读 · 0 评论 -
关于AF_INET和PF_INET
[root@lanhai-linux innet]# cat innet_pton.c#include #include #include char IPdotdec[20]; //存放点分十进制IP地址struct in_addr s; // IPv4地址结构体int main (void){ // 输入IP地址 printf("Please input IP原创 2009-07-15 12:35:00 · 2822 阅读 · 0 评论