接地气讲解TCP协议和网络程序( 四 )

套接字(Socket)这个一听就不知道是什么鬼东西 , 教材解释是用于将应用程序与端口连接起来 。 还不懂是吧?那就正常啦 。 其实我们可以这样想 , 把网络比喻成电路或者电网 , 把端口比喻成插座 , 那套接字毫无疑问就是插头了 , 它跟端口一连接网络就通了 , 就像插头一插就通电了 , 其实就是在程序和网络之间起到桥梁的作用 , 这比喻够形象了吧 , 还不够的话上图 。

知道有这个东西存在之后 , 那怎么用呢?在用之前我们要懂得一个原理(如下图1) , 两台计算机之间通信是要有一端是服务器 , 一端是客户端(用户) , 所以呢套接字也会分服务器套接字(ServerSocket)和客户端套接字(Socket) , 来看一下各自都有哪些方法可以用:

ServerSocket的用法:

参数只有一个 , 就是指定那一个端口 , 以下是它的方法 , 调用accept()方法待客户端连接成功后会返回一个Socket对象 , 这个Socket对象就可以跟客户端的Socket进行通信 , 具体是通过输入流和输出流来完成通信 。 比如 , 服务器的Socket对象使用getOutputStream()方法获取输出流 , 然后客户端的Socket对象使用getInputStream()获得输入流 , 这样就完成了服务器向客户端发送消息的功能 , 反之亦然 。

推荐阅读