基于Java的基础简单网络编程

网络应用模型

C/S:这里的C是指Client,即客户端。而S是指Server,即服务端。网络上的的应用本质上就是两 台计算机上的软件进行交互。而客户端和服务端就是对应的两个应用程序,即客户端应用程序和服 务端应用程序

B/S:这里的B是Browser,即浏览器,而S是指Server。浏览器是一个通用的客户端,可以与不同 的服务端进行交互。但是本质上B/S还是C/S结构,只不过浏览器是一个通用的客户端而已。

可靠传输与不可靠传输 

TCP协议与UDP协议都是传输协议,客户端程序与服务端程序基于这些协议完成网络间的数据交互。

TCP是可靠传输协议,是面向连接的协议,保证数据传输中的可靠性和完整性。 TCP保证可靠传输,但是传输效率低,占用带宽高。

UDP是不可靠传输协议,不保证数据传输的完整性。

UDP不保证可靠传输,但是传输速度块,占用带宽小。 

Socket与ServerSocket 

java.net.Socket Socket(套接字)

封装了TCP协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过它获取两个流(一个输入一个输出),然后使用这两个流的读写操作完成与服务端的数据交互

java.net.ServerSocket ServerSocket

运行在服务端,作用有两个: 向系统申请服务端口,客户端的Socket就是通过这个端口与服务端建立连接的。 监听服务端口,一旦一个客户端通过该端口建立连接则会自动创建一个Socket,并通过该 Socket与客户端进行数据交互。

客户端

 Socket的实例化时需要传入两个参数:

1:服务器的IP地址

2:服务端应用程序打开的端口

我们通过IP地址可以找到服务器在网络中的位置,通过端口找到运行在 服务器上的服务端应用程序

public class Client {

    private Socket socket;

    public Client() {
        try {
            System.out.println("正在建立链接");

            socket = new Socket("10.61.66.113", 8088);
            System.out.println("链接成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void start() {
    }

    public static void main(String[] args) {
        Client c = new Client();
        c.start();
    }
}

 服务端

java.net.ServerSocket ServerSocket主要有两个作用

1、向系统申请服务端口,客户端就是通过这个端口与服务器建立链接的

2、监听端口等待客户端的连接 一旦一个客户端与服务端建立连接,此时会创建一个Socket与该客户端交互

public class Server {
    private ServerSocket serverSocket;

    public Server() {
        try {
            System.out.println("正在启动服务端");
            serverSocket = new ServerSocket(8088);
            System.out.println("服务端启动完毕");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void start() {
        try {
            System.out.println("等待客户端连接");
            Socket socket = serverSocket.accept();
            System.out.println("客户端连接了");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        Server server = new Server();
        server.start();
    }
}

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值