服务器编程

acl 网络通信与服务器框架库示例列表

假装没事ソ 提交于 2020-05-05 18:06:00
跨平台网络通信及服务器框架库 --- " acl " 项目里有大量的测试及应用示例,主要有三个示例集合,如下: 1、acl/samples:该目录下的例子主要是基于 lib_acl 及 lib_protocol 两个库的例子 - 1.1 acl: 打印当前 acl 库版本号程序 - 1.2 aio/client: 非阻塞 io 客户端 - 1.3 aio/server: 非阻塞 io 服务器 - 1.4 base64: base64 编/解码程序 - 1.5 btree: 二叉树程序 - 1.6 cache: 对象缓存程序 - 1.7 cache2: 对象缓存程序 - 1.8 cgi_env: CGI 程序用来获得 CGI 环境变量 - 1.9 chunk_chain: 二分块数据程序 - 1.10 configure: 配置文件处理程序 - 1.11 connect: 网络客户端连接程序 - 1.12 dbpool: 数据库连接池程序 - 1.13 dlink: 二分块查找算法程序 - 1.14 dns: 域名查询程序 - 1.15 dns_req: 域名查询程序 - 1.16 event: 事件引擎程序 - 1.17 fifo: 先进先出算法程序 - 1.18 file: 文件流处理程序 - 1.19 file_fmt: 将 UNIX 下的 \n 转为 WIN32 下的 \r

Asp.net服务器控件编程(1) 开篇、基础

流过昼夜 提交于 2020-03-29 19:09:58
在园子里也大概搜了下,thinhunan写过一个系列《今天你写控件了吗》,写的也很不错。但是我还是下定决心写这个系列的文章,以完成Component和Control的一个完整的系列。 有朋友给我说:Asp.net之所以方便和强大,关键是它有一组强大的Asp.net服务器控件,在Asp.net中我们经常会遇到Html标注,Html服务器控件、Web控件和Asp.net服务器控件等等,你能区分出它们之间的关系吗?那我们首先来区分下Asp.net开发中经常用到的几个概念,Html标注、Html服务器控件、Web控件和Asp.net服务器控件, Html标注:就是我们传统所说的Html 超文本标记语言,这些Html标注在以往的静态网页或网页里即可满足我们的需求,Html标注并没有办法利用程序直接来控制它们的属性、使用方法和接收事件,我们必须另外学习其它如JavaScript 等程序语言才得以控制。如:<input id="Button1" type="button" value="button" />。 Html服务器控件:就是上面我们讲的Html标注的属性里加上runat="server"所构成的控件,至于Html标注和Html服务器控件之间的区别很明显,Html服务器控件是运行于服务器端,Html标注是运行于客户端。具体来说:当ASP.NET 网页执行时,会检查标注有无runat 属性

php socket 编程

做~自己de王妃 提交于 2020-03-25 15:02:30
文章目录 1.实验预习:tcp协议 2.SOCKET 编程 3.多进程编程 4 I/O复用 5. 信号通信以及守护进程 1.实验预习:tcp协议 TCP协议的创建: 创建流程:1.客户端主动调用connect发送SYN分节;2.服务器端必须回复一个ACK分节来确认客户端的SYN分节,并发送一个SYN分节给客户端;3.客户端对服务器端发送SYN分节进行ACK分节的确认 TCP协议的拆除(TCP为全双工的传输协议,所以需要4次分节的交换): 拆除流程:1.首先申请拆除的一端调用close发送一个FIN分节;2.另一端接收到FIN分节时,发送一个ACK分节进行确认;3.另一端要申请拆除连接时,也要发送一个FIN分节;4.接收端发送一个ACK分节进行确认 TCP的状态转换图 连接: 1.SYN_SENT主动打开,SYN分节已发送; 2.SYN_RCVD被动打开,SYN分节已接收; 3.ESTABLISHED已经建立连接 关闭: 1.FIN_WAIT_1发起主动关闭,FIN分节已发送; 2.CLOSE_WAIT被动关闭,FIN分节已接收,ACK分节已发送; 3.FIN_WAIT_2成功实现半关闭,ACK分节已接收; 4.LAST_ACK最终的ACK,FIN分节已发送; 5.TIME_WAIT FIN分节已接收,ACK分节已发送; 6.CLOSE ACK分节已接收,成功拆除连接] 2

socket编程简单思路

时间秒杀一切 提交于 2020-03-17 07:15:15
示例程序是同步套接字程序,功能很简单,只是客户端发给服务器一条信息,服务器向客户端返回一条信息;这里只是一个简单的示例,是一个最基本的 socket 编程流程,在接下来的文章中,会依次记录套接字的同步和异步,以及它们的区别。 下面是示例程序的简单步骤说明 服务器端: 第一步:用指定的端口号和服务器的 ip 建立一个 EndPoint 对像; 第二步:建立一个 Socket 对像; 第三步:用 socket 对像的 Bind() 方法绑定 EndPoint ; 第四步:用 socket 对像的 Listen() 方法开始监听; 第五步:接受到客户端的连接,用 socket 对像的 Accept() 方法创建新的 socket 对像用于和请求的客户端进行通信 ; 第六步:通信结束后一定记得关闭 socket; 代码: using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; namespace server { class Program { static void Main(string[] args) { int port = 2000; string host = "127.0.0.1"; /**////创建终结点

(1)基于tcp协议的编程模型 (2)tcp协议和udp协议的比较 (3)基于udp协议的编程模型 (4)反射机制

耗尽温柔 提交于 2020-03-15 16:09:15
1.基于tcp协议的编程模型(重中之重) 1.1 编程模型 服务器: (1)创建ServerSocket类型的对象,并提供端口号; (2)等待客户端的连接请求,调用accept()方法; (3)使用输入输出流进行通信; (4)关闭Socket并释放有关的资源; 客户端: (1)创建Socket类型的对象,并提供服务器的IP地址和端口号; (2)使用输入输出流进行通信; (3)关闭Socket并释放有关的资源; 1.2 相关类和方法的解析 (1)ServerSocket类 java.net.ServerSocket类主要用于描述服务器的套接字(大插排)。 ServerSocket(int port) - 根据参数指定的端口号来构造对象。 Socket accept() - 侦听并接受到此套接字的连接请求。 void close() - 关闭套接字。 (2)Socket类 java.net.Socket类用于描述客户端的套接字,该套接字是两台机器间通信的端点。 Socket(String host, int port) - 根据参数指定的主机名和端口号来构造对象。 InputStream getInputStream() - 用于获取当前Socket的输入流。 OutputStream getOutputStream() - 用于获取当前Socket的输出流。 void close()

网络socket多进程编程之服务器

ぃ、小莉子 提交于 2020-03-10 18:40:12
文章目录 fork系统调用 网络socket多进程编程之服务器代码示例 在写多进程编程之前,我们先了解一下fork系统调用。 fork系统调用 ①Linux内核在启动的最后阶段会创建init进程来执行序/sbin/init,该进程是系统运行的第一个进程,进程号为 1,称为Linux 系统的初始化进程,该进程会创建其他子进程来启动不同写系统服务,而每个服务又可能创建不同的子进程来执行不同的程序。Linux 中维护着一个数据结构叫做 进程表,保存当前加载在内存中的所有进程的有关信息,其中包括进程的 PID(Process ID)、进程的状态、命令字符串等,操作系统通过进程的 PID 对它们进行管理,这些 PID 是进程表的索引。 ②Linux下有两个基本的系统调用可以用于创建子进程:fork()和vfork()。在我们编程的过程中,一个函数调用只有一次返回(return),但由于fork()系统调用会创建一个新的进程,这时会有两次返回。一次返回是给父进程,其返回值是子进程的PID(Process ID),第二次返回是给子进程,其返回值为0。所以我们在调用fork()后,需要通过其返回值来判断当前的代码是在父进程还是子进程运行,如果返回值是0说明现在是子进程在运行,如果返回值>0说明是父进程在运行,而如果返回值<0的话,说明fork()系统调用出错。fork 函数调用失败的原因主要有两个

最基本的Socket编程 C#版

耗尽温柔 提交于 2020-03-07 08:22:13
说明:此示例在 .net2005\xp 下运行通过 示例程序是同步套接字程序,功能很简单,只是客户端发给服务器一条信息,服务器向客户端返回一条信息;这里只是一个简单的示例,是一个最基本的 socket 编程流程,在接下来的文章中,会依次记录套接字的同步和异步,以及它们的区别。 下面是示例程序的简单步骤说明 服务器端: 第一步:用指定的端口号和服务器的 ip 建立一个 EndPoint 对像; 第二步:建立一个 Socket 对像; 第三步:用 socket 对像的 Bind() 方法绑定 EndPoint ; 第四步:用 socket 对像的 Listen() 方法开始监听; 第五步:接受到客户端的连接,用 socket 对像的 Accept() 方法创建新的 socket 对像用于和请求的客户端进行通信 ; 第六步:通信结束后一定记得关闭 socket; Client端结果: (reprinted from http://www.cnblogs.com/sopper/ ) 代码: using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; namespace server { class Program { static

GitHub上整理的一些工具

我与影子孤独终老i 提交于 2020-02-29 09:19:37
技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 OSChina:开源技术社区,开源方面做的不错哦 cnblogs,51cto,csdn:常见的技术社区,各有专长 stackoverflow:IT技术问答网站 GitHub:全球最大的源代码管理平台,很多知名开源项目都在上面,如Linux内核, OpenStack等免费的it电子书: http://it-ebooks.info/ DevStore:开发者服务商店 不错的书籍 人件 人月神话 代码大全2 计算机程序设计艺术 程序员的自我修养 程序员修炼之道 高效能程序员的修炼(成为一名杰出的程序员其实跟写代码没有太大关系) 深入理解计算机系统 软件随想录 算法导论(麻省理工学院出版社) 离线数学及其应用 设计模式 编程之美 黑客与画家 编程珠玑 C++ Prime Effective C++ TCP/IP详解 Unix 编程艺术 《精神分析引论》弗洛伊德 搞定:无压力工作的艺术 平台工具(都是开源的好东东哦) Redmine/Trac:项目管理平台 Jenkins/Jira(非开源):持续集成系统(Apache Continuum,这个是Apache下的CI系统,还没来得及研究)

从Socket编程到Http协议,了解Tomcat底层,实现自己的HTTP服务器。

吃可爱长大的小学妹 提交于 2020-02-27 14:28:24
上节我们知道Tomcat里面的server里的service里的connector的endpoint部分作用在传输层,processor部分作用在应用层。 Web服务器 本文将介绍 Java Web 服务器是如何运行的, Web 服务器也称为超文本传输协议( HyperText Transfer Protocol, HTTP)服务器, 因为它使用 Http 协议与其客户端(通常是 Web 浏览器)进行通信, 基于 Java 的 Web 服务器会使用两个重要的类: java.net.Socket 类和 java.net.ServerSocket 类, 并通过发送 Http 消息进行通信. 我们先花一些篇幅介绍 Http 协议(如果同学们熟悉HTTP协议可直接跳过)和这两个类, 然后写一个简单的 Web 服务器。 Http协议 Http : Http 允许 Web 服务器和浏览器通过因特网发送并接受数据, 是一种基于”请求-响应”的协议, 客户端请求一个文件, 服务器端对该请求进行响应.。Http 使用可靠的 tcp 连接, 服务端默认端口为80, http协议的第一个版本是 http/0.9, 后来被 http/1.0取代, 随后 http/1.0又被http/1.1取代, http/1.1 定义域 RFC2616中。 在 Http 中, 总是由客户端通过建立连接并发送 http

C# 网络编程 - TCP编程

被刻印的时光 ゝ 提交于 2020-02-22 03:30:05
一、TCP的工作过程 首先TCP是一种面向连接的,可靠的,基于字节流的传输层通信协议。TCP的工作过程可以分为三个阶段:一、连接的建立; 二、传输数据; 三、断开连接,下面就对这三个过程分别介绍下: 1.1 连接的建立 TCP的连接建立就像打电话一样, 我们打电话时,拨一个号码的号码并不是立即就可以接通的,期间会有一个“嘟 嘟”的呼叫过程, 这就好比是TCP协议的连接的建立阶段。当我们用TCP编写的程序,必须先建立TCP连接。TCP协议的连接建立通过三次握手来完成的,下面是在网上找的一张TCP三次握手的图片: 下面就对这三次握手简单的介绍: 第一次握手:建立连接时,客户端发送SYN包(seq=x)到服务器,并进入SYN_Send状态,等待服务器确认 第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也发送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_Recv状态 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器进入Established(建立)状态,完成三次握手。 简单理解三次握手就是发送一个检验包给对方然后互相确认,双方都接到确认的一个信号时,这时候双方就建立了连接(就像我们打电话时,如果没人说话时就会说下 “喂”,说这句“喂”