通过java的socket编程实现,本地电脑的9098端口作为服务器,让网页访问该端口,网页能够正常展示页面。除了要使用基本的socket流进行字符的传递之外。还要实现网页的http通信协议。也就是发送请求头和响应头。具体代码如下:
package com.zijin.socketdemo.demo1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;
public class HttpServerDemo1 {
public static void main(String[] args) throws IOException {
//创建服务器socket
ServerSocket ss = new ServerSocket(9098);
//监听并建立连接
Socket s1 = ss.accept();
System.out.println("有应用程序连接");
//接受浏览器的请求消息
BufferedReader br = new BufferedReader(new InputStreamReader(s1.getInputStream()));
String input = "";
while((input = br.readLine()) != null && !input.equals("")) {
System.out.println(input);
}
//输出网页内容到浏览器
PrintWriter pw = new PrintWriter(s1.getOutputStream(),true);
pw.print("http/1.1 200 ok\n" + "\n\n"
+ "<!DOCTYPE html><html><head><meta charset=\"UTF-8\"></head><style>.classA{\n"
+ " margin: auto;\n" + " font-size: 80px;\n" + " width: 830px;\n"
+ " height: 200px;\n" + " background-color: #"+new Random().nextInt(10)+ "9DD55;\n" + " \n"
+ " }</style><body><div class=\"classA\">web服务器发来的页面</div></body></html>");
//关闭资源
pw.close();
br.close();
s1.close();
ss.close();
}
}