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网络编程的相关知识,包括Socket编程和HTTP编程等内容。 #### 3. **高级特性** - **反射与注解**:介绍了Java反射机制和注解的应用场景及实现方法。 - **泛型与枚举**:详细讲解了...
《JAVA2应用编程150例》是一本深入浅出的Java编程教程,它通过150个具体的实例,详细讲解了Java语言的各种特性和应用。这本书旨在帮助初学者和有一定经验的开发者巩固基础,提升实战技能。压缩包中的文件包含了书中...
8. **网络编程**:Java提供了丰富的API用于网络编程,书中讨论了Socket编程,包括TCP和UDP通信,以及如何创建服务器和客户端。 9. **反射与动态代理**:Java反射允许在运行时检查类和对象,而动态代理则允许在运行...
Java语言程序设计教程是针对初学者和进阶者的一门重要课程,由知名专家张席主讲。这门课程深入浅出地介绍了Java编程的基础知识和高级特性...PPT文件形式的教程更便于理解和记忆,结合实际编程练习,将使学习效果更佳。
同时,书中还介绍了如何进行网络通信,如Socket编程。 8. 序列化:序列化是将对象转化为字节流的过程,便于存储或网络传输。书中涵盖了对象序列化的概念和实践。 9. 注解(Annotation):注解是Java中的元数据,...
6. **网络编程**:介绍Socket编程,以及客户端和服务端的交互实现。 7. **反射机制**:深入理解Java反射的概念,如何在运行时动态访问类、接口、方法和构造器。 8. **设计模式**:讲解常用的设计模式,如单例、...
7. **网络编程**:Java的Socket编程接口允许开发网络应用。这部分代码展示了如何建立客户端和服务端连接,进行数据传输。 8. **JDBC数据库编程**:Java Database Connectivity (JDBC) 是访问数据库的标准API。代码...
6. **网络编程**:JAVA提供Socket编程接口,可以构建基于TCP/IP的网络应用。 7. **反射机制**:反射是JAVA的一大特色,允许运行时动态访问和修改类的信息。 8. **泛型**:泛型引入了类型安全,提高了代码的可读性...
9. **网络编程**:Java提供Socket编程接口,用于创建客户端和服务器端的应用,实现网络通信。 10. **Java Swing与JavaFX**:Swing是Java的图形用户界面(GUI)库,JavaFX是更现代的替代品,用于构建桌面应用。 11....
这本书以其简体版的形式,相较于繁体版更便于国内读者阅读和理解,降低了学习Java技术的语言障碍。 在Java世界中,"深度历险"意味着本书不仅仅停留在基础语法和简单应用上,而是深入到Java的核心机制、高级特性和...
7. **网络编程**:Java的Socket编程,如何实现客户端和服务端的通信。 8. **反射机制**:通过反射可以动态访问类的信息,如创建对象、调用方法、获取字段值等。 9. **泛型**:引入泛型来增强类型安全,减少类型...
Python 3.9.0是Python编程语言的一个重要版本,其官方中文...通过阅读这份官方中文文档,无论是初学者还是有经验的开发者,都能深入理解Python 3.9.0的各项功能和最佳实践,从而更好地利用这一强大的编程语言进行开发。
- **Socket编程**: 了解TCP和UDP协议,学习如何使用Java进行网络通信。 - **HTTP客户端和服务器**: 创建简单的HTTP客户端和服务器,理解HTTP协议的工作原理。 6. **JVM与内存管理** - **JVM结构**: 分析JVM的...
7. **网络编程**:Java的Socket编程允许创建客户端和服务器应用程序,处理TCP/IP连接。这部分还会涉及URL、URLConnection和HTTPClient等相关类。 8. **Java Swing与JavaFX**:这两部分讲述了如何使用Java构建图形...
5. **API扩展**:提供了更丰富的内置库和API,如XML、JSON、Socket等,便于实现网络通信和数据交换。 6. **错误处理**:增强了错误处理机制,使得程序出错时可以更精确地定位问题。 在高级动画方面,本书可能会...
首先,Windows API中的"API"代表应用程序编程接口,它是操作系统提供给程序员的一系列函数、结构体、常量和约定,以便于开发应用程序。通过这些接口,开发者可以实现与硬件设备的交互、控制进程和线程、创建和管理...
PPT(PowerPoint)文件通常包含图文并茂的讲解,便于学习者理解和记忆。 在Java的学习过程中,首先会接触到的是基础概念,包括: 1. **Java历史与特性**:Java由Sun Microsystems开发,后来被Oracle收购。它的主要...
《Core Java 2(第七版)第二卷》是Java编程领域的一本经典教材,主要针对中级至高级开发者,深入探讨了Java平台的核心技术。这本书的源代码提供了丰富的实例,帮助读者理解和掌握Java语言的高级特性。 一、核心概念 ...
《ActionScript 3.0 Cookbook》是一本专为Flex编程开发者设计的中文教程,它深入浅出地介绍了ActionScript 3.0这一强大的脚本语言,旨在帮助Flash学习者提升技能,实现更高效、更具交互性的网页应用。ActionScript ...