JAVA---网络编程

版权声明:转载请标明出处~~谢谢! https://blog.csdn.net/zoe_ranxiaosu/article/details/82709646

网络编程 

        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 (使用TCP协议)
                在客户端使用,连接成功后会获取一个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/zoe_ranxiaosu/article/details/82709646