1. Socket相关概念编程
1)网络通讯模型:C/S:client/server,客户端/服务器端;B/S:browser/server,浏览器端/服务器端;C/S结构的优势:应用的针对性强,画面绚丽,应用功能复杂。缺点:不易维护。B/S结构的优势:易于维护。缺点:效果差,交互性不强。浏览器
2)Socket:封装着本地的地址,服务端口等信息。ServerSocket:服务端的套接字。服务器
服务器:使用ServerSocket监听指定的端口,端口能够随意指定(因为1024如下的端口一般属于保留端口,在一些操做系统中不能够随意使用,因此建议使用大于1024的端口),等待客户链接请求,客户链接后,会话产生;在完成会话后,关闭链接。网络
客户端:使用Socket对网络上某一个服务器的某一个端口发出链接请求,一旦链接成功,打开会话;会话完成后,关闭Socket。客户端不须要指定打开的端口,一般临时的、动态的分配一个1024以上的端口。ide
3)永远都是Socket去主动链接ServerSocket。一个ServerSocket能够接收若干个Socket的链接。网络通讯的前提:必定要捕获异常。spa
4)Socket链接基于TCP/IP协议,是一种长链接(长时间连着)。操作系统
5)读取服务器信息会阻塞,写操做不会。3d
6)创建链接并向服务器发送信息步骤:①经过服务器的地址及端口与服务器链接,而建立Socket时须要以上两个数据。②链接成功后能够经过Socket获取输入流和输出流,使用输入流接收服务端发送过来的信息。③关闭链接。orm
7)链接服务器:一旦Socket被实例化,那么它就开始经过给定的地址和端口号去尝试与服务器进行链接(自动的)。这里的地址"localhost"是服务器的地址,8088端口是服务器对外的端口。咱们自身的端口是系统分配的,咱们无需知道。server
8)和服务器通讯(读写数据):使用Socket中的getInputStream()获取输入流,使用getOutputStream()获取输出流。
9)ServerSocket构造方法要求咱们传入打开的端口号,ServerSocket对象在建立的时候就向操做系统申请打开这个端口。
10)经过调用ServerSocket的accept方法,使服务器端开始等待接收客户端的链接。该方法是一个阻塞方法,监听指定的端口是否有客户端链接。直到有客户端与其链接并接收客户端套接字,不然该方法不会结束。
2. 基本Socket网络编程--服务端和客户端简单实现
案例37: