JAVA基础(27)-网络编程基础

目录

Java网络编程

常用的通信协议:

InetAddress

套接字编程

Socket

ServerSocket


Java网络编程

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

    Java网络编程主要是运用IO流进行数据传输的,客户端将数据写到服务器,服务器读到数据后,在将数据返回或发送给其他客户端。IO流基础参考:https://blog.csdn.net/woainiqazwsx123/article/details/82052201

常用的通信协议:

      TCP:是Tranfer Control Protocol的 简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送 或接收操作。

               1.面向连接的协议,在socket之间进行数据传输之前必然要建立连接,所以在TCP中需要连接时间。

               2.TCP传输数据大小限制,一旦连接建立起来,双方的socket就可以按统一的格式传输大的数据。

               3.TCP是一个可靠的协议,它确保接收方完全正确地获取发送方所发送的全部数据。

      UDP:是User Datagram Protocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。

               1.每个数据报中都给出了完整的地址信息,因此无需要建立发送方和接收方的连接。

               2.UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内。

               3.UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方

InetAddress

      类型:java.net.InetAddress,提供了用于获取和描述主机和IP的信息功能
      常用方法:
             static InetAddress getByName(String host)     返回一个指定字符串主机的地址对象
             主机名:可以使用IP来描述,还可以使用域名来描述(通常域名会绑定一个IP地址)   
             String getHostName()    返回用于描述主机的字符串名称
             String getHostAddress()    返回用于描述主机的IP地址
             static InetAddress getLocalHost()    返回本地主机地址对象 


套接字编程

      编程步骤:
             (1)服务器对象
             (2)服务器等待被连接
             (3)客户端连接服务器(成功与否)
             (4)客户端与服务器进行通信
             (5)断开连接
       注意:通信时使用各自获取的Socket对象来通信的。             
              
      端口号:是一个16位的无符号二进制整数,范围0~65535。和IP一起是用来指定一个运行中程序的位置。所以这么说:端口号是运行中程序的唯一标识符,即程序运行时,端口号不能碰撞。通常0~1023是操作系统预定义的端口号,所以我们在自定义时,应该尽可能的使用1024~65535这个范围内的数。

Socket

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

ServerSocket

      在服务器端使用创建服务器端套接字对象,当被连接成功后,会获取一个Socket对象。

      构造器:
       ServerSocket(int port)    创建一个指定端口号的ServerSocket对象
      常用方法:
       Socket accept()    等待客户端连接,返回客户端的Socket对象 
       void close()    关闭此套接字    
       InetAddress getInetAddress()    获取服务器端的本地地址
       int getLocalPort()    获取服务器端的端口号
       SocketAddress getLocalSocketAddress()    返回此套接字绑定到的端点的地址。 
            

Java网络编程(聊天器)程序练习代码地址:https://download.csdn.net/download/woainiqazwsx123/10640175

猜你喜欢

转载自blog.csdn.net/woainiqazwsx123/article/details/82255317