网络编程
TCP/IP:网络通信协议,由网络层的IP协议和传输层的TCP协议组成。
IP地址:用于标识每台计算机。
PORT端口号:对应计算机上的应用
C/S结构(客户端/服务器) 如:QQ
B/S结构(浏览器/服务器) 如:百度、火狐
TCP:传输控制协议,采用三方握手的方式。保证准确的连接操作。
UDP:数据报协议,发送数据。 例如:手机短信和 QQ消息。不安全,不可靠的,只负责把数据发出,不关注对方是否能收到。
ServerSocket:此类实现服务器套接字。
Socket:此类实现客户端套接字。
Socket是网络驱动层提供给应用程序的接口和一种机制
具体实现的Demo:
public class ServerSocket { public static void main(String [] args){ try { //创建服务器端的socket ServerSocket serverSocket = new ServerSocket(6666); //等待客户端连接 Socket s = serverSocket.accept(); System.out.println("客户端连接成功!"); BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); //通过输入流读取网络数据,如果没有消息阻塞 String info = br.readLine(); System.out.println(info); //获取输出流,向客户端返回信息 PrintStream ps = new PrintStream(new BufferedOutputStream(s.getOutputStream())); ps.println("服务器响应的消息!"); ps.flush(); //关闭 br.close(); ps.close(); } catch (IOException e) { e.printStackTrace(); } } } public class ClientSocket { public static void main(String [] args){ try { Socket socket = new Socket("127.0.0.1",6666); PrintStream ps = new PrintStream(new BufferedOutputStream(socket.getOutputStream())); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); ps.println("客户端发送的消息!"); ps.flush(); //读取服务器返回的数据 String info = br.readLine(); System.out.println(info); ps.close(); br.close(); } catch (IOException e) { e.printStackTrace(); } } }