在Java中,我们创建一个套接字,用它建立与其他机器的连接。从套接字得到的结果是一个InputStream以及OutputStream(若使用恰当的转换器,则分别是Reader和Writer),以便将连接作为一个IO流对象对待。有两个基于数据流的套接字类:ServerSocket,服务器用它“侦听”进入的连接;以及Socket,客户用它初始一次连接。一旦客户(程序)申请建立一个套接字连接,ServerSocket就会返回(通过accept()方法)一个对应的服务器端套接字,以便进行直接通信。从此时起,我们就得到了真正的“套接字-套接字”连接,可以用同样的方式对待连接的两端,因为它们本来就是相同的!此时可以利用getInputStream()以及getOutputStream()从每个套接字产生对应的InputStream和OutputStream对象。这些数据流必须封装到缓冲区内。可按第10章介绍的方法对类进行格式化,就象对待其他任何流对象那样。
ServerSocket的主要任务是在那里耐心地等候其他机器同它连接,再返回一个实际的Socket。
---------------------------------
ServerSocket需要的只是一个端口编号,不需要IP地址(因为它就在这台机器上运行)。调用accept()时,方法会暂时陷入停顿状态(堵塞),直到某个客户尝试同它建立连接。换言之,尽管它在那里等候连接,但其他进程仍能正常运行(参考第14章)。建好一个连接以后,accept()就会返回一个Socket对象,它是那个连接的代表。
分享到:
相关推荐
《Think In Java 学习笔记》 在Java编程语言中,对象是核心概念,它们代表着程序中的实体和行为。对象具有状态、行为和标识,是现实世界概念在软件中的映射。对象的状态由其内部的属性(或称数据成员)表示,行为则...
通过阅读《王者归来之Thinking in Java读书笔记》,你可以系统地掌握Java编程的核心知识,理解编程思想,提高解决问题的能力。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。这本书不仅提供了理论知识,还有...
### Think in Java 学习笔记知识点总结 #### 第1章:对象导论 - **一切皆为对象**:Java 中的几乎所有事物都是对象,对象通过发送消息的方式进行交互。 - **对象模型**:每个对象都有自己的存储空间,该空间由其他...
《Think in Java》读书笔记深度解析 一、构建器(Constructor) 构建器是Java中用于初始化新对象的一种特殊方法,其显著特征是没有返回值类型,包括`void`。这一点与普通方法形成鲜明对比,普通方法即便没有实际...
《原版Think in Java 4》是一本深受程序员喜爱的经典Java编程教材,由 Bruce Eckel 撰写。这本书以其深入浅出的讲解方式和全面的内容覆盖,成为了学习Java语言的重要参考书籍。中文版的出现使得更多的中国读者能够无...
Java编程中的打印功能是应用程序与打印机交互的重要环节。在给定的代码中,我们看到一个名为`PrintDemo`的类,这个类展示了如何在Java中使用`Graphics`对象进行文本和图形的打印。以下是该代码涉及到的主要知识点: ...
通过深入研究这个"learn-think-in-java"压缩包,我们可以将理论知识与实践结合,进一步提升自己的Java编程技能,这对于任何想要成为专业Java开发者的人来说都是极其宝贵的学习资料。同时,这也是一个开源项目,意味...
最后,"Think In Java.chm"同样源于《Thinking in Java》,这本电子版可能包含完整的书本内容,包括类与对象、泛型、并发、IO流等主题,是提高Java编程思维的重要教材。 总的来说,这个压缩包为Java初学者和进阶者...
2. **Think In Java.chm**:这是经典的《深入思考Java》电子版,作者Bruce Eckel深入浅出地讲解了Java语言的核心概念,包括面向对象编程、集合框架、多线程、异常处理等内容,是Java初学者必读的书籍之一。...
Java》学习笔记 [TOC] 阅读计划 章节列表 对象导论 一切都是对象 操作符 控制执行流程 初始化与清理 访问权限控制 复用类 多态 接口 内部类 持有对象 通过异常处理错误 字符串 类型信息 泛型 数组 容器深入研究 Java...
《编程思想源码及答案笔记》是一份深入探讨Java编程技术的宝贵资源,它基于《Think in Java》这本书,该书由Bruce Eckel撰写,是许多程序员学习Java的首选教材。这份笔记结合了书中的理论知识与实际源码,旨在帮助...
SpringMVC是一种流行的基于Java的轻量级Web框架,它实现了MVC设计模式,即Model(模型)、View(视图)和Controller(控制器)分离的架构。该框架是作为Spring框架生态系统中的重要组成部分而存在的,是Spring ...
解题者通常会用不同的编程语言(如Java、Python、C++等)来实现这些解决方案,并且为了提高代码可读性和他人学习,通常会添加详细的注释。 通过对这个压缩包的学习,你可以提升对数据结构的理解,掌握各种算法的...