本章主干知识点:
1、自己用Socket写Http浏览器;
2、自己用Socket写Http服务器;
3、实现登录和查询功能;
步骤:
1.Socket是进行网络编程的类,通过Socket可以在两台计算机之间进行网络通讯,QQ软件和QQ服务器之间、浏览器和网站服务器之间都是Socket网络通讯。Socket不是咱们学习的重点,能运行、理解即可。开发网站不会这样写,这里所有涉及Socket都是“原理性代码”。
2.向服务器发出指令:
3.GET/index.html HTTP/1.1
4.Host:127.0.0.1:8080
5.(回车)
然后从服务器获取返回。代码见备注。改一下获取其他页面、js、css,改一下域名获取别的网站内容。
【MyHttpBrowser1.java】
package javawebtest1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class MyHttpBrowser1
{
public static void main(String[] args)
{
try
{
Socket socket = new Socket("www.rupeng.com", 80);
// 浏览器向服务器发送请求
//连接服务器。http协议默认的端口号是80。每个服务器软件监听一个端口(别的软件就不//能监听这个端口了),发送给这个端口的数据只会被这个服务器软件接收到。
OutputStream os = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
osw.append("GET /index.shtml HTTP/1.1\n");
osw.append("HOST: www.rupeng.com:80\n");
osw.append("\n");
osw.flush();// 强制OutputStreamWriter把缓冲的数据写入OutputStream
// 接收服务返回的请求
InputStream inStream = socket.getInputStream();
InputStreamReader inReader = new InputStreamReader(inStream);
BufferedReader buffReader = new BufferedReader(inReader);
String line;
while ((line = buffReader.readLine()) != null)
{
System.out.println(line);
}
buffReader.close();
inReader.close();
inStream.close();
osw.close();
os.close();
socket.close();
} catch (IOException ioex)
{
ioex.printStackTrace();
}
}
}<strong>
</strong>
编写“网站服务器”
步骤:
1.首先使用ServerSocket启动监听:
2.ServerSocketsocket =new ServerSocket(8080);//如果报错&#