我可以写一个套接字编程来为web客户端提供服务吗?我使用servlet实现了它,但我想使用java.net API。请给我一些程序的示例代码,这样我就可以访问,只需在任何web浏览器的地址栏提到URL。
我建议您查看jetty的源代码。这是我能想到的最简单的web服务器。如果你想要一个超基本的web服务器,你可以用普通的套接字来实现,但是HTTP协议非常复杂,使用web服务器库来处理所有的细节可能是最好的方法。
如果你想接收输入到浏览器中的请求,你需要做几件事。
-设置套接字监听端口80接收/解析/处理HTML请求-通过套接字返回一个HTML响应
这里有一些伪代码,而不是为您编写代码
//setup socket on port 80
socket.lisen();
while(true)
{
newsocket = socket.accept();
new thread(process(newsocket));
}
我认为最复杂的部分是处理HTML、处理请求和生成响应。之后,只需通过套接字将其发送回。
考虑到有这么多的库用于这类事情,我不建议从头开始编写一个。
问题是"web客户端"只是一个浏览器,所以你不能直接访问TCP/IP。几个选项:
- HTML5 WebSockets(仅适用于现代浏览器)
- flash helper(有javascript wrapper)
- java applet helper(有javascript包装器) 基于ajax池的一些技巧