客户端与服务器的交互
web程序客户端和服务器的交互主要依赖于Http协议的。先来了解一下什么是个HTTP协议吧!
A、HTTP是一种超文本传送协议(Hyper Text Transport Protocol)是一套计算机在网络中通信的一种规则。在TCP/IP体系结构中,HTTP属于应用层协议,位于TCP/IP协议的顶层。
B、HTTP是一种无状态的协议,意思是指在Web 浏览器(客户端)和 Web 服务器之间不需要建立持久的连接。整个过程就是当一个客户端向服务器端发送一个请求(request),然后Web服务器返回一个响应 (response),之后连接就关闭了,在服务端此时是没有保留连接的信息。
C、HTTP 遵循 请求/响应(request/response) 模型的,所有的通信交互都被构造在一套请求和响应模型中。
D、浏览WEB时,浏览器通过HTTP协议与WEB服务器交换信息,Web服务器向Web浏览器返回的文件都有与之相关的类型,这些信息类型的格式由MIME定义。
1.服务器端的代码。
package day04url;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class serverDemo{
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(8014);//建立以个服务器端ServerSocket,设定一个端口
Socket s = ss.accept();
if (s!=null) { //检测是否有客户端连入服务器。
System.out.println("客户端已连接");
InputStream is = s.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String a ;
while ((a=br.readLine())!=null) {
System.out.println("客户端对我说: "+a);
}
br.close();
is.close();
OutputStream os = s.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
bw.write("客户端你好 : ");
bw.flush();
bw.close();
os.close();
}
}
}
2.客户端的代码。
package day04url;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class kehuduan {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Socket s= new Socket("127.0.0.1",8015);//建立客户端sockt
OutputStream os = s.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
bw.write("服务器端你好 : ");
bw.flush();
bw.close();
os.close();
InputStream is = s.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String a ;
while ((a=br.readLine())!=null) {
System.out.println("服务器端对我说 :"+a);
}
br.close();
is.close();
}
}