WebServer服务器原理(例子)

import java.io.*;
import java.net.*;

public class WebServer{
    public static void main(String[] args) throws Exception{
        ServerSocket ss=new ServerSocket(6666);
        Socket s=ss.accept();

        OutputStream os=s.getOutputStream();
        BufferedReader br=new BufferedReader(new FileReader("D:\\index.html"));
        String buf="";
        while((buf=br.readLine())!=null){
            os.write(buf.getBytes());
        }
        //关闭流
        br.close();
        os.close();
        s.close();
    }
}

编译并运行
访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web服务完整实例构建Web通道(Web服务端) 简单、规范、易学、易用 曾经,对于上世纪八十年代就从事软件开发的笔者而言,写出自己的Web服务器Web服务端、Web数据通道)及BS软件,是那么的遥不可及!是个难以实现的梦! 而今,看到在电脑及手机浏览器上运行的自己写出的网页程序,感慨万千。高兴之余,写成此文,与网友共享、共勉,抛砖引玉。 开发工具,HTML+JS+FlashSocket插件构成前台网页开发,中间数据通道采用笔者开发的Web服务端(利用Socket tcp/ip协议数据通讯,数据流符合规范即可),后台数据解析程序(示例)采用vfp9开发。 Socket直译为“插座、插口”,计算机书籍中多译为“套接字”,笔者认为应该理解为“电话总机及电话线路”可能更接近实际情况,socket长连接 相当于电话接通后一直保持连通状态(不论是否有语音通话),socket短连接 相当于电话接通后即语言通话(连接),否则随即断线,以便让出线路供他人使用。更多不做解释,网友可网上百度。 思路比较简单,前台通过HTML录入界面获取数据,然后组合成符合Web服务端要求的字符串(操作指令串),存入JS本地变量(各网页间的公用变量)中,FlashSocket网页采用JS定时器获取操作指令串,通过上述web服务端传输至后台,再将指令串传送给后台解析程序执行操作指令,完成操作后结果回送到前台,前台其他程序即可使用该变量。即: 1.前台页面录入数据==> 2.确认(或提交)后形成操作指令串存入本地变量供FlashSocket调用==> 3.FlashSocket将指令串传送给指定IP地址的指定端口(Web服务端的IP地址及端口)==> 4.Web服务端获取指令串==> 5.Web服务端调用后台解析程序==> 6.解析程序依据指令串进行操作、结果(字符串)回送给Web服务端==> 7.Web服务端获取结果串==> 8.Web服务端将结果字符串回送给前台FlashSocket所在的IP地址及端口==> 9.FlashSocket将结果串存入本地变量==> 10.前台页面程序调用本地变量(结果串)…… 读者可能注意到,上述各步骤除了4、7二步骤外,其余各步骤都在软件开发者的开发范围内,也就是说,只要传输的指令串及结果串符合Web服务端的收发规则,开发者再也不必操心前后台的数据传输问题了(前后台环境及开发工具完全由开发者自己说了算,可用自己熟悉的环境及语言,学习压力小),从而扫平了很多人进入BS世界的一大障碍。 实际上,上述过程类似于网上购物,消费者不需要关心商品货物的配送,只需要网上下单及等待收货即可,而Web服务端则相当于物流公司。 由于笔者接触HTML+JS时间不长,水平、经验有限,所写的示例浅白易懂,只要是搞过软件设计的人,肯定都能看懂。示例只是一个示范,还存有很多缺陷,如:口令没有加密、输入页面没有美化、网页之间调用没有安全机制……等等,正如前文所言,笔者抛砖,网友引玉,有待大家完善! 笔者目前取得的小小成绩,得益于很多前辈的书籍、资料或授课,其中有: 张洪举老师,他的多本书籍使笔者受益匪浅、获感良多; 加菲猫老师(抱歉!只知道网名,但如雷贯耳!),他在网上的BS开发授课中,为笔者打开了HTML+JS开发之门,看到了另一个世界; FlashSocket的提供者enjoy_lhl,为示例中FlashSocket网页的形成提供了基础资料; getUTF8StrLeng函数的提供者junjie,为该函数的形成提供了基础资料; formatData2函数的提供者jontyy,为该函数的形成提供了基础资料; 还有网上随时查找的一些资料,不能一一说出出处,还望作者(或提供者)海涵…… 为此,笔者对上述老师、网友们致以衷心的感谢! 本文所提供的资料中,有详细的安装、使用方法(其中也有Web服务端的收发规则),可参考、试用、交流。 由于笔者水平有限,疏漏之处难免,望网友指正,以便大家共同提高! QQ:527800911、微信:13947680916 2019.6.27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值