网络编程
文章平均质量分 52
jiangzhuzhu
这个作者很懒,什么都没留下…
展开
-
HTTP协议的C语言编程实现实例
<br />大家都很熟悉HTTP协议的应用,因为每天都在网络上浏览着不少东西,也都知道是HTTP协议是相当简单的。每次用到FlashGet之类的下载软件下载网页,当用到那个“用FlashGet下载全部链接”时总觉得很神奇。<br />后来想想,其实要实现这些下载功能也并不难,只要按照HTTP协议发送request,然后对接收到的数据进行分析,如果页面上还有href之类的链接指向标志就可以进行深一层的下载了。HTTP协议目前用的最多的是1.1版本,要全面透彻地搞懂它就参考RFC2616文档吧。<b转载 2010-09-01 14:01:00 · 449 阅读 · 0 评论 -
linux等一秒的实现方法
while(time(NULL) == t);原创 2011-06-18 17:08:00 · 281 阅读 · 0 评论 -
关于SO_LINGER的使用说明
SO_LINGER 此选项指定函数close对面向连接的协议如何操作(如TCP)。缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据发送给对方。 SO_LINGER选项用来改变此缺省设置。使用如下结构: struct linger { int l_onoff; /* 0 = off, nozero = on */ int l_linger; /* ling原创 2011-06-17 14:54:00 · 474 阅读 · 0 评论 -
零拷贝实例(zerocopy)转
代码实例是,客户端发送给服务端所需要的文件路径名,然后服务端将文件内容零拷贝发送给客户端,然后,客户端将内容写入到本地文件。 客户端代码:zerocopyclient.cpp #include "network.h" using namespace std; int main(int argc,char *argv[]) { sockaddr_in servadd原创 2011-06-16 15:32:00 · 288 阅读 · 0 评论 -
TCP关闭连接四次握手图
原创 2011-06-16 13:07:00 · 233 阅读 · 0 评论 -
select和所线程设计并发服务器的问题(转自China Linux Fans )
<br />各位好,我使用select和多线程设计一个并发服务器,实现对客户端请求的并发处理,这样设想:每当select到一个socket有数据可以读写的时候就创建一个线程进行数据处理,代码如下:<br /> <br />/ *------------------------------------------------------------------------------------------------------- * server.c *转载 2011-05-30 22:57:00 · 932 阅读 · 0 评论 -
关于SO_REUSEADDR的使用说明
<br /> 1. 可以对一个端口进行多次绑定,一般这个是不支持使用的; <br /> 2. 对于监听套接字,比较特殊。如果你定义了SO_REUSEADDR,并且让两个套接字在同一个端口上进行接听,那么对于由谁来ACCEPT,就会出现歧义。如果你定义个SO_REUSEADDR,只定义一个套接字在一个端口上进行监听,如果服务器出现意外而导致没有将这个端口释放,那么服务器重新启动后,你还可以用这个端口,因为你已经规定可以重用了,如果你没定义的话,你就会得到提示,ADDR已在使用中。原创 2011-01-19 10:58:00 · 249 阅读 · 0 评论 -
Linux网络编程一步一步学-UDP编程介绍
UDP通讯服务器端源代码如下:#include #include #include #include #include #include #include #include /**********************************************************************filename: simple-udpserver.c*purpose: 基本编程步骤说明,演示了UDP编程的服务器端编程步骤*tidied by:转载 2010-09-01 10:17:00 · 234 阅读 · 0 评论 -
Linux网络编程一步一步学-epoll同时处理海量连接的代码(转)
<br />#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#include <sys/wait.h>#include <unistd.h>#include <arpa/inet.h>#include <openssl/ssl.h>转载 2010-09-01 10:02:00 · 302 阅读 · 0 评论 -
Linux网络编程一步一步学-异步通讯聊天程序select
<br />什么是异步通讯?<br />就是通讯任意一方可以任意发送消息,有消息来到时会收到系统提示去接收消息。<br /><br />这里要用到select函数。使用步骤如下:<br />1、设置一个集合变量,用来存放所有要判断的句柄(file descriptors:即我们建立的每个socket、用open打开的每个文件等)<br />2、把需要判断的句柄加入到集合里<br />3、设置判断时间<br />4、开始等待,即select<br />5、如果在设定的时间内有任何句转载 2010-09-01 10:59:00 · 378 阅读 · 0 评论 -
Linux网络编程一步一步学-HTTPS客户端程序示例
<br />源代码如下:<br /> <br />#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <errno.h>#include <unistd.h>#include <netinet/in.h>#include <limits.h>#include <netdb.h>#include <arp转载 2010-09-01 14:06:00 · 1448 阅读 · 1 评论 -
Linux网络编程一步一步学-加密通讯协议SSL研究(转)
服务器端源代码如下: #include #include #include #include string.h>#include #include in.h>#include #include #include #include #include #include #define MAXBUF 1024/************关于本原创 2011-06-19 02:44:00 · 936 阅读 · 1 评论