网络常识
网络 编程程序的分类:
TCP协议 - OSI网络模型
三次握手 和 四次挥手 熟悉
TCP 协议 的 C/S程序 ***
ServerSocket
常用构造方法:
常用方法:
Socket
构造方法:
常用方法:
例子1
左边服务器右边客户端,先启动服务器,终端显示服务器启动完毕,然后再启动客户端,服务器的客户端显示客户端连接成功,服务端程序执行结束。(accept方法等待客户端连接,如果客户端不连接就不会执行下面的内容
)
例子2
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Demo {
/**
* TCP协议的网络编程
* 服务器
*/
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(55565);
System.out.println("服务器启动完毕");
//等待客户端连接
Socket socket = server.accept();
System.out.println("客户端连接成功");
//给客户端发消息
//获得输入流
OutputStream os = socket.getOutputStream();
//转成打印流
PrintStream ps = new PrintStream(os);
ps.println("欢迎你连接服务器");
//接受来自服务端的消息
InputStream in = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String text = br.readLine();
System.out.println("服务器收到客户端的回复:"+text);
System.out.println("服务端程序执行结束");
}
}
import java.io.*;
import java.net.Socket;
public class ClientDemo {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("127.0.0.1",55565);
//接受来自服务端的消息
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String text = br.readLine();
System.out.println("客户端接到消息:"+text);
//给服务端发消息
OutputStream os = socket.getOutputStream();
PrintStream ps = new PrintStream(os);
ps.print("服务器你好");
}
}
服务器先启动
然后客户端连接服务器
最后服务器响应
客服端和服务器公用了socket,io流完成了服务器和客户端之间交流。
注意如果服务器先输出流,客户端一定要输入流,反之如果客户端先输出流,服务器也要先输入流。