- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
清华大学张思民Java课件第11章.ppt
哈尔滨工业大学计算机系代亚非 Java 语言程序设计 主要内容 1、网络编程基础 2 、基于 TCP 网络程序设计 3 、基于 UDP 网络程序设计 4 、 * 基于 C/S 模式的分布计算 一、 Java 与网络 IP 协议、 TCP 协议和 UDP 协议。 传输层数据报文结构: TCP 传输层数据报结构: UDP 报文 2、端口号 端口号 :TCP/IP 协议为每种服务定义了一个端口。 3、 套接字 Socket Socket 是网络程序中最常用的方式,用于建立两个不同程序之间通过网络进行通信的信道。 2、 套接字 Socket 什么是 socket ? 进程与进程之间建立起连接 建立套接字 Socket 在客户端使用 socket 类,指定服务器 IP 和端口号,以便连到服务器上 : Socket(host_IP, prot); 在服务器端使用 ServerSocket 类,以等待客户端的连接 : ServerSocket(port); Socket 主要方法: 在客户端:建立 socket 连接后,还应该建立输入输出数据流。 getInputStream( ) 获得输入流 getOutputStream( ) 获得输出流 在服务器端: ServerSocket 类的 accept( ) 方法使服务器处于阻塞状态,等待用户请求。 二、 TCP 协议 Socket 编程 例1:演示服务器与客户之间的交互,服务器等待,客户访问,相互通一次信息。 客户端向服务器发出信息:“你好”,服务器接收到信息后,给出回应:“你好,我是服务器。 ” 21.5 Socket 客户机端 import java.io.*; import .*; class C { public static void main(String[] args) { try{ Socket socket=new Socket(.1,6565); DataOutputStream out=new DataOutputStream(socket.getOutputStream()); out.writeUTF( 我是客户机 ); DataInputStream in=new DataInputStream(socket.getInputStream()); String s=in.readUTF(); Sytln( 客户机收到: +s); }catch(Exception e){} } } 服务器端 import java.io.*; import .*; class S { public static void main(String[] args) { try{ ServerSocket s_socket=new ServerSocket(6565); Socket socket=s_socket.accept(); DataInputStream in=new DataInputStream(socket.getInputStream()); String s=in.readUTF(); Sytln( 服务器收到: +s); DataOutputStream out=new DataOutputStream(socket.getOutputStream()); out.writeUTF( 我是服务器 ); }catch(Exception e){} } } 21.5 Socket 显示服务器与客户机间的通信(服务器端 ) 考虑多用户 第一种解决方案 : 一台计算机上一次启动多个服务器程序,只是端口号不同。 myserver --------myclient----f21.bat myserver2--------myclient2----f9.bat 多用户的第二种方案 (支持多客户 ) 服务器端 . 服务器端 在 Java 中,网络类都在 类库中。 用来存储 internet 地址的类 InetAddress. 其主要方法: getHostName( ) 获取 InetAddress 对象的主机名或域名 getHostAddress( ) 获取 InetAddress 对象的 IP 地址 getLocalHost( ) 获取本机的 IP 地址 例:获取本机的 IP 地址 import .*; public class getLocalHostTest { public static void main(String args[]) { InetAddress myIP=null; try {myIP=InetAddress.getLocalHost();} catch(Unkno
文档评论(0)