• java-Socket


    1.java.net.Socket;套接字、封装了TCP通讯协议,使用它可以基于TCP与远端计算机上的服务端应用程序链接并进行通讯。
    实例化Socket就是与服务器端建立连接的过程。这里需要传入两个参数来指定服务端地址信息:
    参数1:服务器端计算机地址
    参数2:运行在服务器计算机上的服务端应用程序打开的服务端口
    通过IP可以找到服务端计算机,在通过端口可以连接到运行在服务端极端及上的服务端应用程序。由于实例化就是连接过程,若服务端咩有响应,这里实例化Socket会抛出异常。
    Socket提供方法:
    OutputStream getOutputStream()
    通过Socket获取的输入流写出的字节都会通过网络发送给远端计算机。这里就等于发送给服务端。
    2. 运行在服务端的java.net.ServerSocket;
    主要有两个作用:
    1.向系统申请对外的服务端口,客户端Socket就是通过这个端口与服务器程序建立连接的。
    2.监听该服务端口,一旦一个客户端Socket通过该端口尝试建立连接,serverSocket就会感知并实例化一个Socket与该客户端进行通讯。
    ServerSocket提供方法:
    Socket accept()
    该方法时一个阻塞方法,用于监听服务端口,直到一个客户端连接上为止。这里会返回一个Socket,通过这个Socket就可以与客户端进行通讯了。
    通过Socket获取输入流,读取的数据就是来自远端计算机发送过来的数据。这里相当于读取的时客户端发送过来的数据;
    InputStream in = socket.getInputStream();
    当使用缓冲流读取一行来自客户端发送过来的字符串过程中,br.readLine方法会一直阻塞直到客户端断开连接,那么客户端的系统不同这里的反应也不同。当Windows的客户端断开时,方法会抛出异常当Linux的客户端断开时方法会返回null

    我是初学者,如有更新不好的,欢迎这位大神指出,谢谢大家!

    更多精彩以后更新,转载注明!

  • 相关阅读:
    [转]TOP 1比不加TOP慢的疑惑
    .ETL构建数据仓库五步法
    MySQL与Oracle的语法区别
    MySQL的表分区
    ORACLE分区表的使用和管理
    Oracle与MySQL的几点区别
    数据仓库超级大表分区方式改变
    Windows平台下MySQL常用操作与命令
    PowerDesigner使用教程 —— 概念数据模型
    MYSQL千万级数据量的优化方法积累
  • 原文地址:https://www.cnblogs.com/CaiNiao-TuFei/p/7482275.html
Copyright © 2020-2023  润新知