网络编程

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();
        }
    }
}
原文地址:https://www.cnblogs.com/wenbiquan/p/11091028.html