TCP模型:应用层(http)/传输层(TCP)/网络层/网络接口
Socket为传输层概念,而JSP是对应用层编程
Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议
WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上
public class Client {
public static voidmain(String args[]) throws Exception {
// 为了简单起见,所有的异常都直接往外抛
String host ="127.0.0.1"; // 要连接的服务端IP地址
int port = 8899;// 要连接的服务端对应的监听端口
// 与服务端建立连接
Socket client =new Socket(host, port);
// 建立连接后就可以往服务端写数据了
Writer writer =new OutputStreamWriter(client.getOutputStream());
writer.write("Hello Server.");
writer.flush();// 写完后要记得flush
writer.close();
client.close();
}
}
public class Server {
public static voidmain(String args[]) throws Exception {
// 为了简单起见,所有的异常信息都往外抛
int port = 8899;
// 定义一个ServerSocket监听在端口8899上
ServerSocketserver = new ServerSocket(port);
// server尝试接收其他Socket的连接请求,server的accept方法是阻塞式的
Socket socket =server.accept();
// 跟客户端建立好连接之后,我们就可以获取socket的InputStream,并从中读取客户端发过来的信息了。
Reader reader =new InputStreamReader(socket.getInputStream());
char chars[] = newchar[64];
int len;
StringBuilder sb =new StringBuilder();
while ((len =reader.read(chars)) != -1) {
sb.append(new String(chars, 0, len));
}
System.out.println("from client: " + sb);
reader.close();
socket.close();
server.close();
}
}