代码改变世界

随笔分类 -  网络与Web开发

Tomcat 配置和spring-framework MVC配置简介

2013-01-18 13:15 by zhenjing, 27110 阅读, 收藏, 编辑
摘要: Tomcat启动时,先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME。然后找这个变量所指的目录下的conf文件夹,从中读取配置文件。最重要的配置文件:server.xml 。要配置tomcat,基本上了解server.xml,context.xml和web.xml。    Server.xml -- tomcat主配置文件。 Web.xml -- servlet与其他适用于整个Web应用程序设置的配置文件,必须符合servlet规范的标准格式。 Context.xml -- 默认的context配置,应用于安装了Tomcat的所有主机的所有部署内容。该文件的格式和标准的context XML片段文件的格式完全相同。它应包含在context元素中,而且暗含元素应嵌套与Context中。即该文件中的配置是所有web.xml的全局配置。 applicationContext.xml -- 默认的spring框架全局配置信息。 {servlet-name}-servlet.xml -- Spring MVC 的Servlet的核心配置文件。 阅读全文

异步服务器框架设计

2012-07-17 12:53 by zhenjing, 7371 阅读, 收藏, 编辑
摘要: 在网络编程中,经常出现如下场景:编写特定逻辑服务器,该逻辑服务器依赖于后端的N种服务器。比如需要获取N种服务数据,或者需要N个步骤。对于这样的应用,同步调用将导致逻辑服务器的性能极低,异步调用是首选。问题:如何抽象通用的异步服务器网络框架,降低编写特定逻辑服务器的工作量? 阅读全文

过载保护

2012-06-26 13:04 by zhenjing, 3897 阅读, 收藏, 编辑
摘要: 什么情况会导致系统过载?系统处理能力 请求量 = 系统过载。设计系统时都需要系统的处理能力,比如每秒的处理能力、请求峰值、平均处理时延等。这3个指标可很好地估计系统最大处理能力、需要多少机器提供服务、是否需要扩容等。但评估容易只关注 请求量峰值,而忽略系统处理能力的变化。从公式上看,系统处理能力降低同样会造成过载。 阅读全文

工具脚本(网络编码)

2012-05-18 19:56 by zhenjing, 649 阅读, 收藏, 编辑
摘要: 自用的工具脚本:1) 生成结构体网络编码(Ntoh(), Hton() )的perl脚本; 2) 正则表达式测试脚本。 阅读全文

thrift安装脚本

2012-05-12 13:07 by zhenjing, 1868 阅读, 收藏, 编辑
摘要: Apache Thrift 是 Facebook 实现的一种高效的、支持多种编程语言的远程服务调用的框架。Thrift安装依赖性太强,首次安装的人容易碰上各种问题。本文基于自身经历给出Thrift 需要注意的事项和shell安装脚本。 阅读全文

TCP状态图和常见问题

2011-04-20 09:30 by zhenjing, 17711 阅读, 收藏, 编辑
摘要: TCP共有9个网路状态,其中涉及到关闭的状态有5个。 在我们编写网络相关程序的时候,这5个状态经常出现。因为这5个状态相互关联,相互纠缠,而且状态变化触发都是由应用触发,但是又涉及操作系统和网络,所以正确的理解TCP 在关闭时网络状态变化情况,为我们诊断网络中各种问题,快速定位故障有着非常重要的作用和意义。 为此,我根据W.Richard Stevens的《TCP/IP详解》一书,将这5个状态制成一个时序图(其实原书也有这个图,但不是很好理解),其中黑色字体来表示应用程序行为,红色字体是操作系统行为。=============================================== 阅读全文

3个学习Socket编程的简单例子:TCP Server/Client, Select

2011-04-20 09:29 by zhenjing, 4470 阅读, 收藏, 编辑
摘要: 以前都是采用ACE的编写网络应用,最近由于工作需要,需要直接只用socket接口编写CS的代码,重新学习这方面的知识,给出自己所用到的3个简单例子,都是拷贝别人的程序。如果你能完全理解这3个例子,估计socket编程就已经基本入门了。 建议:1) 多多查查所用到的网络接口; 2) 最好有一本书,如UNIX环境高级编程,UNIX网络编程,可查询;3) 可以直接使用书上的例子更好。 TCP Client代码:#include <sys/stat.h> #include <sys/types.h> #include <sys/socket.h> #include 阅读全文

socket基础知识

2011-04-20 09:28 by zhenjing, 2578 阅读, 收藏, 编辑
摘要: socket基础知识 概述 socket 是TCP/IP协议的最流行的一种网络编程接口。它与TCP/IP一起最早实现于4.1BSD UNIX 系统中,主要用于传送级(TCP,UDP)编程。 socket往往称为套接口,套接口用于网络中两个通信实体间的通信,两个实体可以存在于同一机器的不同进程中或不同机器的进程中。 套接口就好像UNIX中pipe (管道),通信双方进程通过它来与对方发送或接受数据。如同pipe 用文件描述字表示一样,socket 也用文件描述字表示,也称为套接口描述字,或简称套接字。在网络编程时要用套接字表示通信的对方。但两者不同的是,pipe的通信双方在一台机器上,共用一个p 阅读全文

使用Select的3个注意事项

2011-04-20 09:26 by zhenjing, 556 阅读, 收藏, 编辑
摘要: #include <sys/select.h> int select(int n, fd_set *readfds, fd_set*writefds, fd_set *exceptfds, struct timeval *timeout);int pselect(int n, fd_set *readfds, fd_set*writefds, fd_set *exceptfds, const struct timespec *timeout, const sigset_t*sigmask);FD_CLR(int fd, fd_set *set);FD_ISSET(int fd, f 阅读全文

RSH的网络通信细节

2011-04-20 09:25 by zhenjing, 1109 阅读, 收藏, 编辑
摘要: Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 rsh服务侦听514/TCP口,client建立到server的514/TCP的连接。服务端会先检查TCP连接的源端口是否位于[512,1023]区间,否则服务端进程终止。*nix最早要求范围是[1,1023],后来为消除一些安全隐患,改成[512,1023]。但这是实现相关的,并且各个系统的man手册可能与其当前实现不同步,某些版本Solaris的man手册就有问题,应实测。 为什么rshd有这个限制?一般rsh、rcp、rlogin被设置成setuid-to-. 阅读全文