zoukankan      html  css  js  c++  java
  • JAVA与网络开发(TCP:Socket、ServerSocket;UDP:DatagramSocket、DatagramPacket;多线程的C/S通讯、RMI开发概述)

    • 通过TCP建立可靠通讯信道

    1)为了对应TCP协议里的客户端和服务器端,Socket包提供了Socket类和ServerSocket类。

    2)Socket类构造函数及相关方法

    Public Socket();

    public Socket(InetAddress address,int port);//本机IP和端口

    public Socket(Striing host,int port);//本机IP和端口

    public void connect(SocketAddress endpoint);//将本socket连接到endpoint指定的主机上

    public void bind(SocketAddress bindpoint);//将本socket绑定到bindpoint指定的主机

    public InputStream getInputStream();、public OutputStream getOutputStream();//获取通信输入流和输出流

    public void close();//4次握手FIN的封装

    public InetAddress getLocalAddress();、public int getPort();//获取本socket对应主机(即本机)的IP和端口

    3)ServerSocket类构造函数及相关方法

    public ServerSocket();

    public Socket(int port);//本服务器socket,端口有参数指定,ip即本地

    public Socket accept();//返回描述客户端链接句柄的socket类对象

    public void bind(SocketAddress bindpoint);//将本ServerSocket绑定到bindpoint指定的主机

    public void close();

    public InetAddress getInetAddress()、public int getLocalPort();//获取本机ip和端口

    • 通过UDP高效的发送数据报文

    1)DatagramSocket类封装了发送和接受数据报文的方法,DatagramPacket类封装了“数据报文”的属性。

    2)DatagramSocket类构造函数及相关方法

    Public DatagramSocket();

    public DatagramSocket(int port);//本机端口

    public DatagramSocket(int port,InetAddress address,);//本机IP和端口

    void connect(InetAddress address,int port);//

    void send(DatagramPacket p);//

    void receive(DatagramPacket p);//

    void close();//

    InetAddress getLocalAddress();、public int getPort();//

    void setSoTimeout(int timeout);//

    int getSoTimeout();//

    3)DatagramPacket类构造函数及相关方法

    DatagramPacket(byte[] buf,int length);//

    DatagramPacket(byte[] buf,int length,InetAddress address,int port);//报文长度与报文目的地址

    byte[] getData();、int getLength();//配合使用    void setData(byte[] buf);void setLength(int length);//配合使用

    InetAddress getAddress();//获取目的主机地址        void setAddress(InetAddress iaddr);//

    int getPort();//获取目的主机端口          void setPort(int port);//

    • 面向套接字编程

    1)使用套接字实现基于TCP协议的服务器和客户端程序

    服务器主要操作:

    用一个端口实例化ServerSocket,从而监听该端口的链接请求;

    调用accetp方法,接受客户端的连接请求;

    利用accept方法返回的客户端socket对象,进行读写IO的操作;

    通讯完成,关闭打开的流和socket对象。

    客户端主要操作:

    用服务器ip和端口初始化socket对象;

    调用connect方法,向服务器发起连接请求;

    将要发送给服务器的内容填充到IO对象中,如BufferedReader、PrintWriter;

    利用getInputStream和getOutputStream方法,向服务器发送和接受数据;

    通讯完成,关闭打开的IO对象和socket。

    2)使用套接字连接多个客户机————基于多线程的C/S通讯

    3)UDP协议与传输数据报文

    • Java远程方法调用(RMI)开发概述————透明的调用远端方法

    1)RMI,远程方法调用,可以用来构建Java应用程序间的分布式模型,它允许网络主机之间可以相互地无障碍地调用对方的类和方法,这是实现分布式的基础。把服务的调用者称为RMI客户端,把服务的提供者称为RMI服务器。

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 阮小二买彩票
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 企业奖金发放
    Java实现 蓝桥杯VIP 算法提高 企业奖金发放
    让程序后台隐藏运行
    只要你喜欢,并且可以养家糊口,就是好的
  • 原文地址:https://www.cnblogs.com/mmcmmc/p/3898651.html
Copyright © 2011-2022 走看看