- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java-第2章了解Socket编程课案
* Java分布式程序设计 信息工程学院 * 第二章 了解Socket编程 授课教师:杨杰明 * 目 录 内部通信方式 什么是Socket TCP/IP和UPD/IP通信 客户服务器通信 使用Java进行Socket编程 Greetings服务器实例 解析Internet地址 * 1. 内部通信方式 IO操作的执行顺序 打开:指明并获取要访问的文件或设备的许可 读写:从对象中读取数据、将数据传递给对象 关闭:提示系统已经使用完了对象 Unix系统中相关进程间通信 管道(Pipe):将两个进程连接在一起的一个虚拟文件 例:cat myClass.java|lpr * 2. 什么是Socket? 2.1 用户和网络间的接口(Socket) * 2. 什么是Socket? 2.1.1 通信基于Socket对 套接字 每个Socket属于一个通信进程 进程间的通信就是一个进程的Socket和另个进程的Socket间传输信息 Socket地址 由一个Internet地址和一个端口号组成 端口号:用于区别与运行在同一台机器的不同服务。(1024 --- 65535) * 2. 什么是Socket? 2.1.2 Socket类型 SOCK_STREAM 提供字节(Byte-to-Byte)流通信 SOCK_DGRAM 用于数据报传输 SOCK_RAW 提供给那些对信息传输进行高级控制的用户 * 3. TCP/IP和UDP/IP通信 3.1 数据报通信协议(User Datagram Protocol,UDP) 无连接协议 可以在任何时刻发送数据 需要附加发送方Socket和接收方Socket信息 数据报不能超过64K UDP协议无法保证所发送的数据报以同样地顺序被对方接收。 UDP协议是不可靠的协议 UDP的复杂程度较低,需要的系统开销较小 * 3. TCP/IP和UDP/IP通信 3.2 流通信协议(Transmission Control Protocol,TCP) 面向连接的协议 在通信之前必须在两个Socket之间建立连接 发送数据时,不需要附加发送方和接收方信息 对数据的大小没有限制 TCP能够保证发送的数据被接收方以相同的顺序被接收 TCP是可靠的传输协议 建立TCP连接需要消耗系统时间 * 4. 客户/服务器通信 客户/服务器通信的一般步骤 * 5. 使用Java进行Socket编程 Java的网络编程支持 Java.net包 Socket类(TCP) DatagramSocket类(UDP) * 5. 使用Java进行Socket编程 2. 数据流 OutputStream类 提供write方法 可以通过Socket类的getOutputStream()方法得到 InputStream类 提供read方法 可以通过Socket类的getInputStream()方法得到 其他流 BufferedReader、BufferedWriter FileInputStream、FileOutputStream DataInputStream、DataOutputStream 这些类型的流都可以从InputStream类和OutputStream类转化 * 5. 使用Java进行Socket编程 3. TCP Socket 使用Socket编写客户或服务器程序的步骤 打开一个Socket 创建一个数据输入流 创建一个数据输出流 关闭Socket * 5. 使用Java进行Socket编程 3.1 打开一个Socket ---客户端 Socket c1=null; try { cl = new Socket(machine name,REMOTE_PORT); } catch(UnknownHostException e1) { System.out.println(Unknown Host: +e1); } catch (IOException e2) { System.out.println(Error io: +e2); } * 5. 使用Java进行Socket编程 3.1 打开一个Socket---服务器 ServerSocket checkServer = null; public static final int TESTPORT=4000; try { checkServer = new ServerSocket(TESTPORT); System.out.println(SimpleServer started.....); }catch(IOException e) { System.out.println(e); } * 5. 使用Java进行Socket编程 3.1
文档评论(0)