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

2016-01-29 14:00 6 1 收藏

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

【 tulaoshi.com - ASP.NET 】

/*
豆腐制作 都是精品
http://www.asp888.net 豆腐技术站
如转载 请保留版权信息
*/
今天早上 我写了一篇 用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();
}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

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();
}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

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;
}
}
呵呵,一头雾水??我也累了,明天再回答大家的问题吧!

来源:http://www.tulaoshi.com/n/20160129/1492241.html

延伸阅读
所谓托盘程序顾名思义就是象托起的盘子一样的程序。而所谓的托起的盘子就是程序运行中显示出的图标,而托起的位置就是视窗系统的的工具栏了。托盘程序具有直观、占用屏幕空间较小并且可以为它定义多个功能菜单,这就给操作者带来了方便,所以越来越多的程序设计者都把程序设计成托盘这种方式。我们已经看过了用其他语言设计托盘程序的例子...
终于有时间可以学点新东西了,今天大略看了一下有关asp+的资料,并且写了个域名查询的页面,感觉很不错,asp+比起 asp来进步实在是太大了,尽管用asp+组件也能实现域名查询的功能,并且前几天我用vc写过这么个组件,但用asp+简单方 便多了。好了,废话少提,看源码吧。 <% @Page Language="C#" % <% @Assembly Name="System.Net" % <...
给大家介绍一些外贸常用收款方式的简单用法。对一些刚做外贸用什么方式来接收外汇给点参考。 刚做外贸用什么方式来接收外汇 贝宝 pp有2种用法,一种是直接把账号给买家,另外一种是开账单给买家付款 信用卡通道 信用卡通道一般是做独立网站的商户集成到自己的网站上面做成在线付款 西联 西联收汇的话...
!--StartFragment--ADSL自动拨号类,前提是在系统中已经有了一个宽带拨号连接 调用代码: RASDisplay ras = new RASDisplay(); ras.Disconnect();//断线 ras.Connect("adsl");//拨号  代码如下: using System;  using System.Runtime.InteropServices;  public struct RASCONN...
标签: 浏览器
蓝光浏览器返回键有哪些作用   蓝光浏览器中的返回键位于网址栏左侧 右击返回键,则会出现下拉菜单,菜单中包括:最近打开的网页、清空最近访问列表功能、打开历史记录功能 在蓝光浏览器中,在使用多个标签(两个以上的网页)浏览器状态下,若是误关网页,点击返回键,就会打开刚才关闭的网页 若是我们想打开刚才...

经验教程

448

收藏

91
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部