用浏览器来接收C# 的程序返回的时间

程序|浏览器

今天早上 我写了一篇 用socket 做的 时间服务器,当时我说准备用一段时间作个不需要客户端接收数据
而是用 浏览器 接收数据的程序,很顺利,一天的时间 我就做好了:)
闲话不说,先看程序。。。

using System;
using System.Collections;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Threading;

class HttpProcessor {

private Socket s;
private BufferedStream bs;
private StreamReader sr;
private StreamWriter sw;
private String method;
private String url;
private String protocol;
private Hashtable hashTable;

public HttpProcessor(Socket s) {
this.s = s;
hashTable = new Hashtable();
}

public void process() {
NetworkStream ns = new NetworkStream(s, FileAccess.ReadWrite);
bs = new BufferedStream(ns);
sr = new StreamReader(bs);
sw = new StreamWriter(bs);
writeURL();
s.Shutdown(SocketShutdown.SdBoth);
ns.Close();
}
public void writeURL() {
try {
writeSuccess();
} catch(FileNotFoundException) {
writeFailure();
sw.WriteLine("File not found: " + url);
}
sw.Flush();
}

public void writeSuccess() {
sw.WriteLine("HTTP/1.1 200 OK");
sw.WriteLine("Server: Microsoft-IIS/5.0");
sw.WriteLine("Date: Mon, 27 Nov 2000 08:19:43 GMT");
sw.WriteLine("Content-Length: 6");
sw.WriteLine("Content-Type: text/html");
sw.WriteLine("");

String strDateLine;
DateTime now;
now = DateTime.Now;
strDateLine = now.ToShortDateString() + " " + now.ToLongTimeString();
sw.WriteLine(strDateLine);
}

public void writeFailure() {
sw.WriteLine("HTTP/1.0 404 File not found");
sw.WriteLine("Connection: close");
sw.WriteLine();
}
}

public class HttpServer {
public HttpServer() : this(81) {
}

public HttpServer(int port) {
this.port = port;
}
public void listen() {
Socket listener = new Socket(0, SocketType.SockStream, ProtocolType.ProtTCP);
IPAddress ipaddress = new IPAddress("169.254.0.244");
IPEndPoint endpoint = new IPEndPoint(ipaddress, port);
listener.Bind(endpoint);
listener.Blocking = true;
listener.Listen(-1);
Console.WriteLine("Press Ctrl+c to Quit...");
while(true) {
Socket s = listener.Accept();
HttpProcessor processor = new HttpProcessor(s);
Thread thread = new Thread(new ThreadStart(processor.process));
thread.Start();
}
}
public static int Main(String[] args) {
HttpServer httpServer;
if(args.GetLength(0) > 0) {
httpServer = new HttpServer(args[0].ToUInt16());
} else {
httpServer = new HttpServer();
}
Thread thread = new Thread(new ThreadStart(httpServer.listen));
thread.Start();
return 0;
}
}

时间: 2025-01-27 05:21:09

用浏览器来接收C# 的程序返回的时间的相关文章

c#上位机与单片机通信,上位机接收不到单片机返回的数据

问题描述 c#上位机与单片机通信,上位机接收不到单片机返回的数据 我遇到的问题是: 1上位机给单片机发送数据,单片机能接收到,但是单片机返回的数据上位机收不到 2我不用单片机,直接把数据线上的TX.RX短接,再用上位机发送数据,这时 上位机显示区就能显示上位机发送的数据: 3我用串口调试助手调试单片机程序,调试助手能正常接收单片机返回的数据: 以上3个问题,很是矛盾,不知道哪里出问题了,请高手帮助一下! 解决方案 asc码接收,十六进制接收不行,上位机编码 解决方案二: 曾经写过的一个,接收函数

开发保留标准浏览器功能的AJAX应用程序(3)

ajax|标准|程序|浏览器 使用碎片标识符,我们可以创建一个"Ajax-URI",其中的客户端部分和服务器端部分使用"#"隔开. JavaScript提供了window.location()函数,以便通过URI更新浏览器的历史记录和地址.此外,我们可以使用window.location.hash()直接访问碎片标识符. 在下面的代码片断中,您可以看到如何通过对选择框使用onchange事件处理程序来扩展我们的代码,该处理程序使用一个"Ajax-URI&q

开发保留标准浏览器功能的AJAX应用程序(1)

ajax|标准|程序|浏览器 作者:Mark Schiefelbein出处:bea责任编辑: 方舟 [ 2006-03-15 08:32 ]Ajax应用程序由于其丰富的功能.交互性以及快速的响应能力而得到人们的普遍赞许   Ajax应用程序由于其丰富的功能.交互性以及快速的响应能力而得到人们的普遍赞许.它可以使用XMLHttpRequest对象动态地加载数据,而不是加载新的页面.在它大肆进行宣传以及许多人兴奋的同时,有评论指出,Ajax应用程序丢失了浏览器的一些重要功能,包括对后退前进按钮的支持

开发保留标准浏览器功能的AJAX应用程序(2)

ajax|标准|程序|浏览器 在Ajax中支持后退按钮的基本设计思想 在这一节中,我们将讨论在Ajax应用程序中支持后退按钮所需的基本步骤,并给出说明所需步骤的简单示例代码. 简单示例程序如图1所示,在界面中将有一个选择框,它有两个值:"Year 1"和"Year 2".对于这个程序,我们将在选择框值发生改变时跟踪历史记录.这意味着用户可以首先选择"Year 2"然后单击后退按钮后退到先前的选择. 开发保留标准浏览器功能的AJAX应用程序(2)-

开发保留标准浏览器功能的AJAX应用程序

ajax|标准|程序|浏览器 Ajax应用程序由于其丰富的功能.交互性以及快速的响应能力而得到人们的普遍赞许.它可以使用XMLHttpRequest对象动态地加载数据,而不是加载新的页面. 在它大肆进行宣传以及许多人兴奋的同时,有评论指出,Ajax应用程序丢失了浏览器的一些重要功能,包括对后退前进按钮的支持. 本文将首先阐明为什么在Ajax应用程序中除非显式地构建后退/前进按钮以及其它浏览器功能,否则它们将无法运行的原因.然后,我们将简要介绍开发人员如何解决这些问题.最后,我们将看到有关Back

汇编基础:程序返回操作系统

上一篇聊了下汇编的伪指令,本人也是学汇编没多长时间,所以难免有些不对的地方,如果你在阅读过程中发现了错误,还希望不辞吝教呀,这一篇我们一起来看看汇编语言的程序返回操作系统这部分是怎么实现的. 我们都知道,汇编语言源程序要进过汇编和连接两个步骤才能生成一个可以在DOS下直接执行的.exe文件,在DOS下执行这个文件时,DOS像调用子程序一样,把控制权交给它,而这个exe文件执行完成后也要像子程序返回调用程序一样返回DOS, 一.用4CH系统功能调用实现返回 4CH系统调用功能是结束程序执行返回DO

Win7屏蔽IE浏览器弹出的阻止程序窗口和IE隐私权限

我们在用Windows 7系统访问网站时,IE8窗口总是弹出阻止程序,其实这是IE浏览器的一项防护功能,可以屏蔽大量的弹出式窗口.当然,屏蔽的级别可以根据个人的需要来设置. Windows 7系统下屏蔽IE浏览器弹出的阻止程序窗口和IE隐私权限的设置方法与步骤如下: 1.打开win菜单,在"开始菜单"中选择"控制面板"选项. 2.如果是按"网络和Internet"里选择"Internet "选项. 3.选择"Inte

通过浏览器直接打开Android应用程序

需求 通过手机浏览器直接打开Android应用程序.如果本地已经安装了指定Android应用,就直接打开它:如果没有安装,则直接下载该应用的安装文件(也可以跳转到下载页面). 实现效果 如果手机上已经安装了App,则直接打开,如果没有安装,则开始下载. 实现方式 1.为Android应用的启动Activity设置一个Schema,如下: <data android:host="splash" android:scheme="huiyy" /> 2.用户点

微信公众平台推送信息接收,无法获取返回的xml信息

问题描述 微信公众平台推送信息接收,无法获取返回的xml信息 微信公众平台测试时,出现以下问题明文模式兼容模式求助大神解决下问题 解决方案 微信公众平台获取用户信息 解决方案二: 你发的数据需要是对应要求的xml格式,你直接发null肯定错误的