介绍Socket通讯原理,简单易懂!
(1)首先通讯双方各有一台电话机,在上述模型中就是Socket;
(2)通讯一方拔打电话,试图建立连接,在上述模型中就是客户端建立Java Socket对象;另一方随时监听有没有呼叫,当有呼叫到来时,摘机,在上述模型中就是在服务器端建立一个Java Socket对象,然后用其accept()方法监听客户端的连接请求,当有连接请求时accept方法返回客户端的Socket,于是双方就建立起连接;
(3)双方通话,过程中双方都可以说和听,在上述模型中,每个Socket可以利用输入输出流进行读和写两种操作;在电话中一方听到的是对方说出的,反之亦然;上述模型中,一方读出的也是对方写入的,而写入的则是对方要读出的
(4)挂断。
建立Socket通信模型
首先,在服务器端建立一个ServerSocket对象,用于监听客户端的连接请求:
ServerSocket server;try{server=new ServerSocket(4321);} catch(Exception e){System.out.println("Error:"+e);} 在服务器端建立ServerSocket对象时必须进行异常处理,以便程序出错时及时作出响应。生成ServerSocket对象时必须选择一个端口注册,以和其它服务器程序分开,使互不干扰。应使用1024以上的端口进行通信,以免和常规通信发生端口冲突。
其次,在服务器端调用ServerSocket的accept()方法进行监听,等待其它程序的连接请求。在连接请求收到之前一直阻塞调用线程,当有一个连接请求时,返回请求连接的Java Socket对象:
Socket socket; try{socket=server.accept();} catch(Exception e){System.out.println("Error:"+e);} 当接到一个连接请求时,accept方法返回客户端的socket对象,于是连接成功。正常情况下,通过交换,由另外的线程去处理该连接,而server释放出来继续监听下一个连接请求。
最后,在客户端建立一个Java Socket对象,请求建立连接:
Socket socket; try{socket=new Socket("Server Nane",4321);} catch(Exception e){System.out.println("Error:"+e);} 在客户端建立Java Socket对象时也必须时行异常处理,主机名和端口号与连接的服务器名和提供该服务的服务程序的监听端口必须一致。
分享到:
相关推荐
本文将详细介绍 Java Socket 编程的原理、实现方法和应用场景。 一、Java Socket 编程的原理 Java Socket 编程基于 TCP/IP 协议,使用 Socket 类来实现网络通信。 Socket 类是 Java 语言中用于实现网络通信的类,...
客户端通常会创建一个Socket对象,连接到服务器的指定端口,然后通过Socket的输入输出流进行通信。客户端还需要有一个循环来持续监听用户的输入,并将其发送到服务器。 6. **Server类**: "Server"文件则包含了...
2. 接受连接:当有客户端请求连接时,ServerSocket调用accept()方法,返回一个新的Socket对象,代表客户端的连接。 ```java Socket clientSocket = serverSocket.accept(); ``` 3. 数据传输:通过Socket对象的输入流...
`返回一个新的Socket对象,用于与客户端通信。 3. **数据传输**:通过`clientSocket`对象的`InputStream`和`OutputStream`进行数据读写。例如,可以使用`BufferedReader`和`PrintWriter`分别处理输入和输出。 ...
创建`ServerSocket`对象并指定端口号后,可以通过`accept()`方法接收客户端的连接请求,返回一个新的Socket对象,用于与客户端进行通信。 2. **客户端**:客户端需要知道服务器的IP地址和端口号,然后使用`Socket`...
在这里,我们介绍了 Java Socket 的基本使用方法,并实现了一个简单的 SMTP 客户端。通过这个示例,我们可以了解 Java Socket 的使用方法,并学习如何实现 SMTP 协议来发送邮件。 扩展阅读 * Java Socket 编程 * ...
Java Socket工具类是Java网络编程中的重要组成部分,它提供了客户端和服务器...这个示例简化了许多细节,但足以展示Java Socket通信的基本原理。通过扩展这个基础,你可以构建更复杂的应用,如多人聊天室、文件传输等。
1. ServerSocket类:用于创建服务器端Socket,它监听指定的端口,当有客户端连接时,会返回一个Socket对象用于通信。 2. Socket类:表示客户端到服务器的连接。它封装了输入/输出流,用于数据的发送和接收。 三、...
- 客户端-服务器架构中常见的设计模式包括单例模式(用于服务器)、工厂模式(创建Socket对象)和装饰器模式(增强Socket功能)。 通过对"java TCP_IP Socket 编程"源码的分析和实践,开发者可以深入了解Socket的...
本文将详细介绍Java基于Socket实现的客户端和服务端通信功能,包括客户端和服务器端的实现、连接和通信的过程。 Socket的基本概念 Socket是网络编程的基础,它是操作系统提供的一种机制,允许程序通过网络进行通信...
客户端则需要创建一个Socket对象,指定服务器的IP地址和端口号,然后通过Socket的输入输出流(InputStream和OutputStream)发送和接收数据。在聊天室场景中,通常使用PrintWriter向服务器发送消息,而使用...
在本文中,我们将深入探讨Java Socket编程的关键概念、工作原理以及如何创建服务端和客户端,并讨论如何通过多线程支持多个客户端同时在线。 首先,Socket是网络上的两个进程间通信的端点,它允许数据在网络中双向...
首先,我们来详细了解Java Socket的基础知识。Java Socket是Java提供的网络编程接口,它是基于TCP协议的,可以保证数据的可靠传输。在Java中,Socket类代表网络上的一个连接端点,ServerSocket类用于监听客户端的...
- **接受连接**:当有客户端尝试连接时,ServerSocket的accept()方法会阻塞,直到有连接到达,然后返回一个新的Socket对象,表示与客户端的连接。 - **处理请求**:服务器可以为每个连接创建一个新的线程,以便...
学习这个简单的Java Socket程序,可以让你了解网络通信的基本原理,为进一步的网络编程,如HTTP、FTP等协议的实现打下基础。同时,也可以帮助你掌握Java的IO流操作,这对于处理任何类型的数据传输都是非常重要的。
- 使用ServerSocket的accept()方法监听并接受客户端连接,返回一个Socket对象。 - 在客户端,使用Socket的connect()方法连接到服务器。 - 通过Socket的输入流和输出流(InputStream和OutputStream)进行数据的读写。...
4. 一旦连接建立,双方都可以通过Socket对象的输入输出流进行数据交换。 5. 使用完毕后,关闭Socket和ServerSocket。 五、Socket输入输出流 1. InputStream和OutputStream:Socket提供了InputStream和OutputStream...
总的来说,Java Socket的单线程阻塞模式是一个基础且重要的概念,它涉及网络通信的基本原理,以及如何在Java中实现这一模式。通过学习和实践,开发者能够构建出简单的客户端-服务器应用,并为进一步学习多线程、异步...
### Java Socket 图片传输知识点详解 #### 一、TCP协议简介 传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在互联网的应用中,TCP协议提供了一种...
- 数据传输:通过Socket对象的输入/输出流进行数据的发送和接收。 - 关闭连接:完成通信后,双方都会调用Socket的close()方法关闭连接。 **2. 长连接(Long Connection)** 长连接则用于需要持续交互或多次通信的...