




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 Chapter17网络 网络编程的基础知识客户 服务器计算模式网络地址类InetAddress多客户服务发送和接收对象 2 网络编程的基础知识 1 网络协议与TCP IP网络协议 规定了计算机之间的寻址规则 数据发生冲突的解决 长的数据如何分段传送与接收等 TCP IP 是一个很使用的网络协议 是Internet所遵循的协议 网络应用程序 在已经实现了网络互联的不同的计算机上运行的程序 它们之间可以进行数据交换 编写网络程序需先明确它使用的网络协议 2 IP地址和Port 端口号 IP 用于互联网上计算机的标识 由32位 4个字节 四段用点隔开的0 255的十进制数表示 如 172 25 138 49域名 本地回路地址 127 0 0 1端口 用于表示将数据交给哪个网络程序处理 范围0 65535 0 1023已用于知名网络服务 如25用于电子邮件服务器端口 如 sqlserver 1433mysql 3036 3 普通网络程序使用 1024到65535的端口数 TCP TransmissionControlProtocol 面向连接的通信协议 提供两台计算机之间的可靠无差错的数据传输 如 打电话UDP UserDatagramProtocol 无连接的通讯协议 不保证可靠数据的传输 如 传呼台给用户发送信息 TCP UDP数据包 数据帧 的基本格式 网络编程的基础知识 4 Socket Socket 网络驱动层提供给应用程序编程的接口和一种机制 机制 Socket在应用程序中创建 通过一种绑定机制与驱动程序建立关系 告诉自己对应的IP和Port 此后 应用程序送给Socket的数据 由Socket交给驱动程序向网络上发送出去 计算机从网络上收到与给Socket绑定的IP Port相关的数据后 由驱动程序交给Socket 应用程序便可以从Socket中提取接收到的数据 数据发送过程 数据接收过程 5 编写TCP网络程序 有主次之分 一个称为服务器程序 一个称为客户机程序 服务器与客户机交互的过程 1 服务器程序创建一个ServerSocket 然后调用accept方法等待客户来连接 2 客户端程序创建一个Socket并请求与服务器建立连接 3 服务器接收客户的连接请求 并创建一个新的Socket与该用户建立专线连接 4 刚才建立了连接的两个Socket在一个单独的线程 有服务器程序创建 上对话 5 服务器开始等待新的连接请求 ServerSocket 类似114查号台 Socket 类似普通电话 客户 服务器计算模式 编写TCP网络程序 6 ServerSocket ServerSocket用于创建服务器的Socket 构造方法 publicServerSocket throwsIOException没有与任何端口绑定 不能被直接使用 还要继续调用bind 方法 publicServerSocket intport throwsIOException若指定的端口号为0 系统会分配一个还没有被其他网络程序所使用的端口 但作为服务器程序 端口号必须事先指定 其它客户才能根据这个号码进行连接 所以将其设置为0不常见 默认backlog为50 publicServerSocket intport intbacklog throwsIOExceptionbacklog参数指定当服务器忙时 可以与之保持连接请求的等待客户数量 publicServerSocket intport intbacklog InetAddressbindAddr throwsIOException适用于计算机上有多块网卡和多个IP的情况 accept 接收客户端的连接 返回Socket对象 close 关闭ServerSocket 释放与之相关联的资源 7 客户端与服务器建立 必须先创建一个Socket对象 publicSocket 不与任何服务器建立连接 不能被直接使用 需用connect方法指定要连接的服务器 publicSocket Stringhost intport throwsUnkonwnHostException IOExceptionpublicSocket InetAddressaddress intport throwsIOException根据参数连接特定地址和端口上运行的服务器程序 publicSocket InetAddressaddress intport InetAddresslocalAddr intlocalPort throwsIOExceptionpublicSocket Stringhost intport InetAddresslocalAddr intlocalPort throwsIOExceptiongetInputStream 方法getOutputStream 方法 Socket 8 InetAddress 用于表示计算机地址的一个类 表示地址习惯 172 25 138 49 或InetAddress中的静态方法 getByName Stringhost 可以返回一个InetAddress实例 如 InetAddress getByName 172 25 138 49 getHostName 获取客户端主机的名字getHostAddress 获取客户端主机的IP地址getLocalHost 获取本机的IP地址如 ServerSocketss newServerSocket 8001 Sockets ss accept InetAddressi s getInetAddress System out println i getHostName i getHostAddress 9 通过该程序的编写 需明白 1 TCP服务器程序必须先启动运行 TCP客户程序才能连接上TCP服务器 2 使用Windows提供的telnet程序测试TCP服务器程序 3 使用BufferedReader包装类 从网络输入流中一次读取一行文本 4 如何打开telnet程序的本地回显功能 ServerSocketss newServerSocket 8000 Sockets ss accept InputStreaminput s getInputStream OutputStreamoutput s getOutputStream output write welcometojava getBytes byte b newbyte 1024 inti input read b System out println newString b 0 i 注意 关闭流的顺序 简单的TCP服务器程序 10 使用BufferedReader包装类 从网络输入流中一次读取一行文本 InputStreaminput s getInputStream BufferedReaderb newBufferedReader newInputStreamReader input System out println b readLine 打开telnet的本地回显功能 1 telnet2 help3 set 4 setlocalecho 简单的TCP服务器程序 11 完善的TCP服务器模型 编程实例 服务器程序能同时与多个客户端会话 客户端每次向服务器发送一行字符文本 服务器就将这行字符文本中的所有字符反向排列后回送给客户端 当客户端向服务器发送的一行字符文本内容为 quit 时 服务器结束与客户端的会话 主要的两个问题 1 服务器如何与多个客户端进行连接循环调用ServerSocket的accept方法 2 各个客户端之间要实现互不干扰的会话每个客户端采用一个线程与服务器进行会话 例 ReverseServer javaHTTP SMTP POP3 FTP等服务器程序的模型均可采用这种方法 只是会话的方式不同而已 12 TCP客户端程序 创建客户端程序的Socket实例 用户和相应的服务器程序进行通讯 例 1 Sockets newSocket InetAddress getName 172 25 138 41 3005 与相应的主机和端口绑定若Sockets newSocket 需使用bind方法 与本地地址绑定 2 调用Socket实例的getInputStream和getOutputStream创建输入和输出流 和服务器进行通讯 InputStreaminput s getInputStream OutputStreamoutput s getOutputStream 还可以对输入和输出流进行包装 如 DataInputStreamdinput newDataInputStream input DataOutputStreamdinput newDataOutputStream output 13 从Web服务器上读取文件 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辅警岗位知识培训课件
- 交通银行2025连云港市秋招无领导模拟题角色攻略
- 中国银行2025亳州市笔试英文行测高频题含答案
- 建设银行2025金昌市秋招笔试EPI能力测试题专练及答案
- 2025年3D打印的增材制造
- 农业银行2025锡林郭勒盟秋招笔试EPI能力测试题专练及答案
- 2025基因编辑技术的疾病预防研究
- 2025行业细分市场分析报告
- 建设银行2025数据分析师笔试题及答案四川地区
- 交通银行2025亳州市金融科技岗笔试题及答案
- 团建活动申请书
- 2025年度加油站油品储存安全协议范本
- GB/T 29912-2024城市物流配送汽车选型技术要求
- 纺织品产品召回流程指南
- 化验取样工安全操作规程(2篇)
- 2018岭南版美术六年级上册全册教案
- 《基本医疗保险门诊特殊慢性病药品目录(2023 年)》
- 安全保障服务方案及承诺
- 结核病营养支持
- 业务知识演讲稿:“三重一大”事项集体决策制度规范运用的思考
- 起搏器植入围手术期护理
评论
0/150
提交评论