java-se-网络编程

网络编程:
    java语言中,提供了一套统一的编程接口,其中很多细节都已经底层化,可以进行无痛的网络通信编程,提供了Socket套接字技术。


常用的通信协议:
    (1)TCP/IP:在通信之前,需要建立连接,通信之后需要断开连接, 一般会有一个做为服务器端,有一个做为客户端
        主要将通信模式分成四层:         
            应用层    
            传输层    
            IP层  
            编程接口层                           
    (2)UDP:不需要建立链接,相对来说,开销比较小,效率高。
        类型:java.net.InetAddress提供了用于获取和描述主机和IP的信息功能
        常用方法:
            static    InetAddress getByName(String    host)  
                返回一个指定字符串主机的地址对象
                主机名:可以使用IP来描述,还可以使用域名来描述(通常域名会绑定一个IP地址)   
            String    getHostName():
                返回用于描述主机的字符串名称
            String    getHostAddress():
                返回用于描述主机的IP地址
            static    InetAddress getLocalHost():
                返回本地主机地址对象 


套接字编程:
    (1)Socket:
        在客户端使用,连接成功后会获取一个Socket对象
    (2)ServerSocket:
        在服务器端使用创建服务器端套接字对象,当被连接成功后,会获取一个Socket对象。
        注意:通信时使用各自获取的Socket对象来通信的。    


编程步骤:
    (1)服务器对象
    (2)服务器等待被连接
    (3)客户端连接服务器(成功与否)
    (4)客户端与服务器进行通信
    (5)断开连接
              

端口号:
    是一个16位的无符号二进制整数,范围0~65535。和IP一起是用来指定一个运行中程序的位置。端口号是运行中程序的唯一标识符,程序运行时,端口号不能碰撞。通常0~1023是操作系统预定义的端口号,所以在自定义时,应该尽可能的使用1024~65535范围内的数。
 

ServerSocket类的使用:
    构造器:
        ServerSocket(int    port);
            创建一个指定端口号的ServerSocket对象
    常用方法:
        Socket    accept():
            等待客户端连接,返回客户端的Socket对象 
        void    close()        
            关闭此套接字    
        InetAddress    getInetAddress()
            获取服务器端的本地地址
        int    getLocalPort()
            获取服务器端的端口号
        SocketAddress    getLocalSocketAddress()
            返回此套接字绑定到的端点的地址。 
             
Socket类的使用:
    构造器:
        Socket(String    host,int    port)
            向指定主机名和指定端口号的服务发送请求连接,连接成功,会获取Socket对象。
    常用方法:
        void    close()
            关闭套接字        
        InetAddress    getInetAddress() 
            返回套接字所连接服务器的地址。
        int     getPort()
            返回套接字所连接远程机器的端口号
        int     getLocalPort()
            返回本地的端口
        InputStream    getInputStream()
            获取输入流对象,接收远程机器发送的信息
        OutputStream    getOutputStream()
            获取输出流对象,向远程机器发送信息   

猜你喜欢

转载自blog.csdn.net/qq_38741415/article/details/82830689