`
yesjavame
  • 浏览: 678386 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

便于更佳理解Socket编程,引入下面的讲解

阅读更多
1.什么是socket

  所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

  以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。

  重要的Socket API:

  java.net.Socket继承于java.lang.Object,有八个构造器,其方法并不多,下面介绍使用最频繁的三个方法,其它方法大家可以见JDK-1.3文档。

  . Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。"阻塞"是一个术语,它使程序运行暂时"停留"在这个地方,直到一个会话产生,然后程序继续;通常"阻塞"是由循环产生的。

  . getInputStream方法获得网络连接输入,同时返回一个IutputStream对象实例,。

  . getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。

  注意:其中getInputStream和getOutputStream方法均会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。

  2.如何开发一个Server-Client模型的程序

  开发原理:

  服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。

  客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。
分享到:
评论

相关推荐

    《深入理解Java 7 核心技术与最佳实践》PDF版本下载.txt

    - **网络编程**:讲解了Java网络编程的相关知识,包括Socket编程和HTTP编程等内容。 #### 3. **高级特性** - **反射与注解**:介绍了Java反射机制和注解的应用场景及实现方法。 - **泛型与枚举**:详细讲解了...

    JAVA2应用编程150例

    《JAVA2应用编程150例》是一本深入浅出的Java编程教程,它通过150个具体的实例,详细讲解了Java语言的各种特性和应用。这本书旨在帮助初学者和有一定经验的开发者巩固基础,提升实战技能。压缩包中的文件包含了书中...

    Thinking in Java

    8. **网络编程**:Java提供了丰富的API用于网络编程,书中讨论了Socket编程,包括TCP和UDP通信,以及如何创建服务器和客户端。 9. **反射与动态代理**:Java反射允许在运行时检查类和对象,而动态代理则允许在运行...

    Java语言程序设计教程 张席

    Java语言程序设计教程是针对初学者和进阶者的一门重要课程,由知名专家张席主讲。这门课程深入浅出地介绍了Java编程的基础知识和高级特性...PPT文件形式的教程更便于理解和记忆,结合实际编程练习,将使学习效果更佳。

    Thinking In Java

    同时,书中还介绍了如何进行网络通信,如Socket编程。 8. 序列化:序列化是将对象转化为字节流的过程,便于存储或网络传输。书中涵盖了对象序列化的概念和实践。 9. 注解(Annotation):注解是Java中的元数据,...

    候捷的java精髓

    6. **网络编程**:介绍Socket编程,以及客户端和服务端的交互实现。 7. **反射机制**:深入理解Java反射的概念,如何在运行时动态访问类、接口、方法和构造器。 8. **设计模式**:讲解常用的设计模式,如单例、...

    疯狂java讲义(光盘内容)

    7. **网络编程**:Java的Socket编程接口允许开发网络应用。这部分代码展示了如何建立客户端和服务端连接,进行数据传输。 8. **JDBC数据库编程**:Java Database Connectivity (JDBC) 是访问数据库的标准API。代码...

    JAVA开发源码

    6. **网络编程**:JAVA提供Socket编程接口,可以构建基于TCP/IP的网络应用。 7. **反射机制**:反射是JAVA的一大特色,允许运行时动态访问和修改类的信息。 8. **泛型**:泛型引入了类型安全,提高了代码的可读性...

    java_北京大学讲义

    9. **网络编程**:Java提供Socket编程接口,用于创建客户端和服务器端的应用,实现网络通信。 10. **Java Swing与JavaFX**:Swing是Java的图形用户界面(GUI)库,JavaFX是更现代的替代品,用于构建桌面应用。 11....

    JAVA2深度历险_简体版(PDF格式)

    这本书以其简体版的形式,相较于繁体版更便于国内读者阅读和理解,降低了学习Java技术的语言障碍。 在Java世界中,"深度历险"意味着本书不仅仅停留在基础语法和简单应用上,而是深入到Java的核心机制、高级特性和...

    java课件.rar

    7. **网络编程**:Java的Socket编程,如何实现客户端和服务端的通信。 8. **反射机制**:通过反射可以动态访问类的信息,如创建对象、调用方法、获取字段值等。 9. **泛型**:引入泛型来增强类型安全,减少类型...

    python-3.9.0a0-docs-text.zip

    Python 3.9.0是Python编程语言的一个重要版本,其官方中文...通过阅读这份官方中文文档,无论是初学者还是有经验的开发者,都能深入理解Python 3.9.0的各项功能和最佳实践,从而更好地利用这一强大的编程语言进行开发。

    Java开发技术大全

    - **Socket编程**: 了解TCP和UDP协议,学习如何使用Java进行网络通信。 - **HTTP客户端和服务器**: 创建简单的HTTP客户端和服务器,理解HTTP协议的工作原理。 6. **JVM与内存管理** - **JVM结构**: 分析JVM的...

    Examples from The Java Developers Almanac(chm版)

    7. **网络编程**:Java的Socket编程允许创建客户端和服务器应用程序,处理TCP/IP连接。这部分还会涉及URL、URLConnection和HTTPClient等相关类。 8. **Java Swing与JavaFX**:这两部分讲述了如何使用Java构建图形...

    AdvancED Flash ActionScript 3.0 高级动画教程

    5. **API扩展**:提供了更丰富的内置库和API,如XML、JSON、Socket等,便于实现网络通信和数据交换。 6. **错误处理**:增强了错误处理机制,使得程序出错时可以更精确地定位问题。 在高级动画方面,本书可能会...

    WINDOWSAPI超级宝典_源码

    首先,Windows API中的"API"代表应用程序编程接口,它是操作系统提供给程序员的一系列函数、结构体、常量和约定,以便于开发应用程序。通过这些接口,开发者可以实现与硬件设备的交互、控制进程和线程、创建和管理...

    Java课程学习PPT

    PPT(PowerPoint)文件通常包含图文并茂的讲解,便于学习者理解和记忆。 在Java的学习过程中,首先会接触到的是基础概念,包括: 1. **Java历史与特性**:Java由Sun Microsystems开发,后来被Oracle收购。它的主要...

    Core Java 2(第七版)第二卷源代码

    《Core Java 2(第七版)第二卷》是Java编程领域的一本经典教材,主要针对中级至高级开发者,深入探讨了Java平台的核心技术。这本书的源代码提供了丰富的实例,帮助读者理解和掌握Java语言的高级特性。 一、核心概念 ...

    ActionScript.3.0.Cookbook.中文完整版.rar

    《ActionScript 3.0 Cookbook》是一本专为Flex编程开发者设计的中文教程,它深入浅出地介绍了ActionScript 3.0这一强大的脚本语言,旨在帮助Flash学习者提升技能,实现更高效、更具交互性的网页应用。ActionScript ...

Global site tag (gtag.js) - Google Analytics