客户端与服务器的交互

155 阅读2分钟

                                                                                    客户端与服务器的交互\

\

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();
}

}\

\