`

http协议下----简易版的服务器代码

 
阅读更多

 

 

 

/**
 * 简易版的服务器, 仅支持一次请求 
 * 创建服务器,并启动
 * 
 * 请求地址: http://localhost:8888/
 * 
 * 1、请求
 * 2、响应
 * @author Administrator
 *
 */
public class Server3 {
	private ServerSocket server;
	public static final String CRLF="\r\n";
	public static final String BLANK=" ";
	/**
	 * @param args
	 */
	public static void main(String[] args) {
	
		Server3 server = new Server3();
		server.start();
		
		
	}
	/**
	 * 启动方法
	 */
	public void start(){		
		try {
			server = new ServerSocket(8888);
			this.receive();
		} catch (IOException e) {
			e.printStackTrace();
		}
	
	}
	/**
	 * 接收客户端
	 */
	private void receive(){
		try {
			Socket client =server.accept();			
			byte[] data=new byte[20480];
			int len =client.getInputStream().read(data);				
			//接收客户端的请求信息
			String requestInfo=new String(data,0,len).trim();	
			System.out.println(requestInfo);
			
			
			//响应
			StringBuilder responseContext =new StringBuilder();
			responseContext.append("<html><head><title>HTTP响应示例</title>" +
					"</head><body>Hello 中国!</body></html>");
			
			
			StringBuilder response =new StringBuilder();
			//1)  HTTP协议版本、状态代码、描述
			response.append("HTTP/1.1").append(BLANK).append("200").append(BLANK).append("OK").append(CRLF);
			//2)  响应头(Response Head)
			response.append("Server:bjsxt Server/0.0.1").append(CRLF);
			response.append("Date:").append(new Date()).append(CRLF);
			response.append("Content-type:text/html;charset=GBK").append(CRLF);
			//正文长度 :字节长度   一定要是 响应正文内容字节长度,比如长为100字节,那么在浏览器解析时仅解析这100字节
			response.append("Content-Length:").append(responseContext.toString().getBytes().length).append(CRLF);
			//3)正文之前
			response.append(CRLF);
			//4)正文
			response.append(responseContext);
			
			System.out.println(responseContext);
			
			
			//输出流
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
			bw.write(response.toString());
			bw.flush();
			bw.close();
			
		} catch (IOException e) {
		}
	}
	
	/**
	 * 停止服务器
	 */
	public void stop(){
		
	}
	
	
}

 

分享到:
评论

相关推荐

    U-Mail 邮件服务器软件(邮件系统) v9.8.58.zip

    软件,融合强大的功能与简易高效的管理为一体,提供最佳的企业级邮箱服务器系统解决方案。内嵌卡巴斯基的杀毒引擎;基于行为识别和热点等专利技术的反垃圾过滤引擎,支持多语言、多模版、多域名、分布式邮件系统架设...

    JAVA上百实例源码以及开源项目源代码

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    CuteFTP9简易汉化版

    或国内服务器之间传输文件,你的互联网服务提供商,office-any服务器,您可以通过网络访问。 一种上传软件很简单对于新手FTP用户,然而强大的足以让有经验的用户。 友好的用户界面使您可以轻松地更新和维护复杂的网站。 ...

    dd-wrt fantasia

    说明:使用简易QoS功能,应当关闭PPPoE服务器 目前有三个QoS功能,使用时只能开启一个,在不同QoS间切换或改变PPPoE服务器设置后建议重启路由 1.1 - Build 20120303 修正“设置”--“基本设置”中,“定时重新连接...

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    JAVA上百实例源码以及开源项目

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    itop绿色中文版

    - 记录IT基础设施(如服务器、应用程序、网络设备、虚拟机、联系人、位置等)及其各个部件之间的关联关系; - 管理事件、用户请求和计划停机等; - 归档IT服务及与外部供应商的合约,包括SLA(服务级别协议); - ...

    java开源包1

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    WinRAR3.9破解版

    不管是 RAR 的二进制代码,WinRAR 的二进制代码,UnRAR 源程序或和 UnRAR 的二进制代码都不可以在没有作者的书面许可的情况下被使用或进行反向工程来重建专有的 RAR 压缩算法,该压缩法为作者所有。 在没有获得版权...

    WinRAR V3.93(集成正版KEY)官方简体中文版

    不管是 RAR 的二进制代码,WinRAR 的二进制代码,UnRAR 源程序或和 UnRAR 的二进制代码都不可以在没有作者的书面许可的情况下被使用或进行反向工程来重建专有的 RAR 压缩算法,该压缩法为作者所有。 在没有获得版权...

    java开源包8

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    WinRAR_3.91_beta_1_SC.exe

    不管是 RAR 的二进制代码,WinRAR 的二进制代码,UnRAR 源程序或和 UnRAR 的二进制代码都不可以在没有作者的书面许可的情况下被使用或进行反向工程来重建专有的 RAR 压缩算法,该压缩法为作者所有。 在没有获得版权...

    java开源包3

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包2

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包6

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包5

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包7

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

Global site tag (gtag.js) - Google Analytics