




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章Socket编程 本章内容1 客户套接字类 Socket 2 服务器套接字类 ServerSocket 3 基于TCP的Java网络编程 第1节Socket和ServerSocket类 客户套接字类 Socket 服务器套接字类 ServerSocket 套接字类Socket 1 Socket的四种构造方法 1 Socket Stringhost intport thowsUnknownHostException IOException创建一个面向连接的套接字对象 并将其连接至特定的主机 host 的特定端口 port 2 Socket Stringhost intport booleanstream 创建一个套接字对象 并将其连接至特定的主机的特定端口上 此套接字对象是面向连接的还是数据报的 则由最后的一个参数决定 套接字类Socket 3 Socket InetAddressaddress intport 创建一个面向连接的套接字对象 并将其连接至特定IP的主机的特定端口 port 4 Socket InetAddressaddress intport booleanstream 创建一个套接字对象 并将其连接至特定ip主机的特定端口上 此套接字对象是面向连接的还是数据报的 则由最后的一个参数决定 套接字类Socket 2 Socket提供的主要方法 1 InetAddressgetInetAddress 返回该套接字所连接的IP地址 2 IntgetPort 返回该套接字所连接的远程端口 3 sychronizedvoidclose throwsIOException关闭套接字 套接字类Socket 4 InputStreamgetInputStream throwsIOException获得套接字绑定的数据的输入流 5 PrintStreamgetOutputStream throwsIOException获得向套接字绑定的数据输出流 服务器套接字 ServerSocket 1 ServerSocket类的构造方法 1 ServerSocket intport throwsIOException构造一个ServerSocket对象 其绑定的端口号为port 2 ServerSocket intport intcount 构造一个ServerSocket对象 其绑定的端口号为port 如port为0 则该对象与缺省的端口号绑定 其中count为该对象端口上等待的连接的客户最大数 服务器套接字 ServerSocket 2 ServerSocket类的主要方法 1 Socketaccept throwsIOException等待客户连接 该方法将阻塞当前系统服务线程 直到连接成功 该方法返回一个套接字类对象 通过该套接字 新的服务子线程与连接的客户进行通信 2 Voidclose throwsIOException关闭套接字 客户与服务器之间的socket通信 Socket 是两个实体之间进行通信的有效端点 通过socket可以获得源IP地址和源端口 终点IP地址和终点端口 用户可以将多个socket连入同一个端口 以便对于单个端口可以有多个连接 Socket客户 服务器编程模型 通过该模型可以创建一个能被许多人使用的分布式程序 并且所有客户均可以用统一的前端进行工作 并与服务器进行通信 与服务器通信必须具备三个条件 服务器程序客户程序连接它们的socket程序 ServerSocket类 它的实例使服务器能够检测到指定端口的信息accept 方法可以使服务器检测到指定端口的活动服务器还负责检测要求与它连接的客户 Socket类 getInputStream 和getOutStream 方法来发送和捕捉数据 try 传递给它一个整数作为服务器指定可以使用的给定端口ServerSocketmyServerSocket newServerSocket 100 Socketmy100Socket myServerSocket accept 检测端口的活动 catch Exceptione 中断 Accept 方法直到接收到用户的连接请求 才继续执行中断的执行程序 一旦客户的连接成功 my100Socket就代表该连接 并且可以发送和接收数据 请求连接 try SocketmySocket newSocket 100 catch Exceptione Socket类 第2节基于TCP的Java网络编程 一对一的SocketC S通信TCP是面向连接的 可靠的网络传输协议 当两个网络进程准备进行通信时 都必须首先建立各自的一个套接字 服务器建立套接字后 侦听来自网络的客户连接请求 客户通过套接字 指定服务器的IP地址和端口号 便可与服务器进行通信 基于TCP的C S连接方式 基于连接的服务器 客户程序流程 Socket accept 阻塞 等客户连接请求 read 处理服务请求 write 时间 服务器 Socket connet write read 客户 建立连接 服务请求 服务响应 一 TCP协议通信的服务器方实现 1 假设服务器工作在端口8000上 ServerSocketsvrsoc ServerSocket 8000 Socketsoc svrsoc accept 监视端口8000的连接请求 2 打开与soc绑定的输入 输出流 In newBufferedReader newInputStreamRead soc getInputStream 在套接字soc上绑定的输入流基础上构造BufferedReader对象 一 TCP协议通信的服务器方实现 续 out newPrintWrite newbufferedWrite newOutputStreamWrite soc getOutputStream true 在套接字soc上绑定的输出流基础上构造PrintWrite对象服务器使用in和out两个实例从客户接收输入信息和向客户程序发信息 同样 在客户端也应该建立这两个对象 用来与服务器程序进行双向通信 一 TCP协议通信的服务器方实现 续 3 获取客户机的IP地址 并在服务器窗口中显示客户机的地址信息 clientIP soc getInetAddress System out println Client sIPaddress clientIP 一 TCP协议通信的服务器方实现 续 4 读入一行客户的输入 并回显该行Stringstr in readLine while str equals quit System out println Clientsaid str str in readLine 一 TCP协议通信的服务器方实现 续 5 不断循环以上代码 直到客户输入 quit 为止 System out println Clientwanttoleave finall in close out close soc close svrsoc close 二 TCP协议通信的客户方实现 1 创建一个指向固定主机的固定端口的Socket Socketsoc newSocket localhost 8000 2 从Socket对象中获取与其绑定的输入和输出流In newBufferedReader newInputStreamRead soc getInputStream out newPrintWrite newbufferedWrite newOutputStreamWrite soc getOutputStream true 二 TCP协议通信的客户方实现 续 3 建立输入 输出流后 从服务器读取发来的 welcome 信息 显示在窗口 Strin in readLine System out println Serversaid strin 二 TCP协议通信的客户方实现 续 4 客户向服务器发送的数据流从键盘获取bytebmsg newbyte 200 System in read bmsg 从键盘读入bmsgStringmsg newString bmsg 0 byte型转String型Msg msg trim 删除msg两边的空格 二 TCP协议通信的客户方实现 续 5 当键盘输入不是 quit 时 将键盘输入的数据写入输出流中 并发送出去 然后继续从键盘获取输入数据 不断循环 直到输入 quit 时 先将其传送给服务器 然后关闭输入 输出流和Socket out println strout In close out clos
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 林地赔偿协议书
- 枣树转让协议书
- 柴油供给协议书
- 2025年专业特岗测试题及答案
- 2025年污水站运维人员考试题及答案
- 2025年上教资笔试题及答案
- 2025年三焊工考试题及答案解析
- 树木捐赠协议书
- 校企协议书范本
- 校车修理协议书
- 科技政策宣传课件
- 2024西安工程大学辅导员招聘笔试真题
- 辽宁省鞍山市2024-2025学年八年级下学期期末质量检测语文试卷(含答案)
- 慢加急性肝衰竭诊治指南(2025 年版)
- 新闻学概论马工程课件
- 叉车检验检测报告
- 新浙教版七年级下册初中科学全册教案(教学设计)
- 银监会:商业银行授信工作尽职指引
- 预应力混凝土空心板桥施工组织设计
- 浙江省建筑设备安装工程提高质量的若干意见(安装300条)新版
- 古建筑木构件油漆彩绘地仗施工技术分析
评论
0/150
提交评论