|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
没有那个大公司会傻了吧唧用.net网页编程开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net网页编程不行,限制在window系统,又是捆绑,鄙视微软之!
利用ServerSocket类的implAccept办法可使用accept办法前往一个Socket子类对象。但implAccept是protected办法,因而,必需在ServerSocket类的子类中掩盖accept办法,然后在accept办法中利用implAccept办法从头设置Socket对象。implAccept办法的界说以下:
protected final void implAccept(Socket s) throws IOException
只需经由过程implAccept办法设置一个未毗连的Socket子类对象,accept办法就会前往一个已毗连的Socket子类对象(accept前往的是Socket对象,要想失掉Socket子类对象,必需举行范例转换)。在年夜多半时分不必要改动accept办法的举动,但偶然必要一个有更多特征的Socket类。经由过程implAccept办法就能够到达这个目标。上面的代码界说了一个从Socket承继的HttpSocket类,这个类除具有Socket类的统统特征外,还增添了一个办法getRequestHeaders,用于前往HTTP哀求的头信息。
package server;
import java.net.*;
import java.io.*;
class HttpSocket extends Socket
{
public String getRequestHeaders() throws Exception
{
InputStreamReader isr = new InputStreamReader(getInputStream());
BufferedReader br = new BufferedReader(isr);
String s = "", result = "";
while (!(s = br.readLine()).equals(""))
result = result + s + "
";
return result;
}
}
class HttpServerSocket extends ServerSocket
{
public HttpServerSocket(int port) throws IOException
{
super(port);
}
public Socket accept() throws IOException // 掩盖accept办法
{
Socket s = new HttpSocket();
implAccept(s); // 将accept办法前往的对象范例设为HttpSocket
return s;
}
}
public class CustomAccept
{
public static void main(String[] args) throws Exception
{
HttpServerSocket httpServerSocket = new HttpServerSocket(1234);
HttpSocket httpSocket = (HttpSocket) httpServerSocket.accept();
System.out.println(httpSocket.getRequestHeaders()); // 向把持台输入HTTP哀求头
httpServerSocket.close();
}
}
测试
实行以下命令:
javaserver.CustomAccept
在IE的地点栏中输出以下Url:
http://localhost:1234
CustomAccept在把持台中的运转了局:
GET / HTTP/1.1
Accept: */*
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; InfoPath.2)
Host: localhost:1234
Connection: Keep-Alive
下面的运转了局就是IE向服务端收回的HTTP哀求头的内容。这个运转了局会依据客户机设置的分歧而有所差别。
还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是C,C++,java,.net网页编程,ruby,asp或是其他语言都可以学,编程的关键不是语言,而是思想。 |
|