Java网络编程(三)Socket通信代码示例

2021-06-11 Java Socket短连接入门 Socket通讯顺序时不能颠倒,每次看别人的案例都倒在顺序上了。 服务端必须先接收消息再回复消息。 客户端必须先发送消息再接收消息。 流的关闭似乎是用socket.shutdownInput()和socket.shutdownOutput()来控制的,不能自己手动关闭流。 socket.getInputStream()对应socket.shutdownInput() socket.getOutputStream()对应socket.shutdownOutput() 意义应该是告诉对方我已经结束输入流或输出流 阅读详情

        Java是一种功能强大的编程语言,它提供了丰富的网络编程功能,使得我们可以轻松地创建网络应用程序。其中,Socket是Java网络编程的核心组件之一,它允许我们在不同的计算机之间建立通信连接。本文将介绍如何使用Java的Socket类进行基本的网络通信。

        首先,我们需要了解Socket的基本概念。Socket是一种抽象的网络通信端点,它可以用于建立客户端和服务器之间的连接。在Java中,我们可以使用java.net包中的Socket类来创建和管理Socket对象。

        下面是一个简单的示例,展示了如何使用Socket进行客户端和服务器之间的通信。首先,我们创建一个服务器端程序,监听指定的端口并接受客户端连接:

一、服务端创建


import java.io.*;
import java.net.*;

public class Server {
    public static void main(String[] args) {
        try {
            // 创建ServerSocket对象,指定监听的端口
            ServerSocket serverSocket = new ServerSocket(8989);
            
            // 监听客户端连接
            Socket clientSocket = serverSocket.accept();
            
            // 获取输入流和输出流
            BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
            
            // 读取客户端发送的数据
            String message = in.readLine();
            
            // 处理数据
            String response = "Great, " + message + "!";
            
            // 发送响应给客户端
            out.println(response);
            
            // 关闭连接
            clientSocket.close();
            serverSocket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

        创建了一个ServerSocket对象,并通过调用`accept()`方法监听客户端连接。一旦有客户端连接到服务器,就会创建一个Socket对象来处理该连接。然后,我们使用输入流和输出流来接收和发送数据。

二、客户端创建

        接下来,创建一个客户端程序,连接到服务器并发送数据:

import java.io.*;
import java.net.*;

public class Client {
    public static void main(String[] args) {
        try {
            // 创建Socket对象,指定服务器的IP地址和端口
            Socket socket = new Socket("localhost", 8989);
            
            // 获取输入流和输出流
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
            
            // 发送数据给服务器
            out.println("SUCCESS");
            
            // 读取服务器的响应
            String response = in.readLine();
            
            // 打印响应
            System.out.println("Server response: " + response);
            
            // 关闭连接
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

        创建了一个Socket对象,并通过指定服务器的IP地址和端口来连接到服务器。然后,我们使用输入流和输出流来发送和接收数据。

通过运行上述服务器端和客户端程序,我们可以在控制台上看到以下输出:

Server response: Great, SUCCESS!

        这表明客户端成功连接到服务器,并且服务器成功处理了客户端发送的数据。

        本文介绍了Java网络编程中Socket的基本用法。通过使用Socket类,我们可以轻松地创建客户端和服务器之间的通信连接,并在它们之间传输数据。希望这篇博客能帮助您入门Java网络编程,并为您构建更复杂的网络应用程序提供基础。

Java利用socket实现客户端和服务器相互通信 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.net.ServerSocket; import java.util.Scanner; /** * @Author: Mr·Liu ٩(๑>◡<๑)۶ * @Date: 2021/6/23 */ public class ClientSocket { 阅读详情

相关推荐

Java:socket服务端,socket服务端支持多连接,socket客户端,socket客户端支持发送和接受

一、Java之socket服务端 新建一个Java工程 命名 给他先创建一个类 在类里面我们做一个main 这里面也需要,创建套接字,IP号,端口号 但是java中有一个类ServerSocket, 你在实例化ServerSocket 的时候, 带一个整型数的构造方法,这个就是端口号 我们把端口号设置为8801, 这样子就把以前的繁杂的配置结束了 这面波浪线的意思,我们按下ctrl + ...

m0_57089315的博客 1万+

Java Socket实用样例

一、前言 最近用到了Java的Socket通信。 在搜索用法的过程中,发现好多都是用System.in举例的; 但是实际工作中,并不是用System.in从控制台输入消息的,不太好用。 以下是个人从工作中总结的Socket实用代码样例。 二、服务器端(ServerSocket) 服务器端等待Socket连接的建立,接收Socket请求报文,处理后给Socket客户端返回响应报文。 1.SocketThread类,主要处理类,用来接收Socket请求报文、处理、返回响应报文。 @Slf4j public cl

BHSZZY的博客 4261

用Java实现基于Socket的网络编程

使用Java语言,采用TCP协议,实现一对一、一对多的通信(无用户界面)

小姚的博客 8850

JAVA—socket编程

socket编程,是在不同的进程间进行网络通讯的一种协议,在socket编程中基于TCP、UDP等协议做的一层封装,是一套系统所提供的的用于进行网络通信的编程接口。

皮皮治不痞痞 1万+

Socket 简介与 Java Socket 编程示例

基本概念:Socket可以被视为网络环境中进程间通信的API(应用程序编程接口),也是可以被命名和寻址的通信端点。它是应用程序通过网络协议进行通信的接口,上联应用进程,下联网络协议栈。物理与逻辑层面:在物理层面上,Socket可能并不真实存在,它更多的是一个逻辑上的概念。但在网络编程中,Socket是不可或缺的组成部分。Socket是网络通信中的核心组件之一,它提供了应用层进程之间进行数据交换的机制。通过Socket,不同主机上的应用进程可以建立连接并传输数据。

yuiezt的专栏 3140

java网络编程Socket通信详解

Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用了Socket相关的技术。下面就让我们一起揭开Socket的神秘面纱。 Socket编程 一、网络基础知识(参考计算机网络) 关于计算机网络部分可以参考相关博客: 《TCP/IP协议栈及OSI参考模型详解》 http://wangdy.blog.51cto.co...

u013892290的博客 929

【Java】UDP网络编程:无连接通信到Socket实战

【Java】UDP网络编程:无连接通信到Socket实战

一年,我很需要这一年 3333

Java网络编程:实现Socket通信

Java通过Socket类提供了对TCP/IP协议的支持,从而实现网络编程。TCP/IP是一种面向连接的、可靠的流传输协议,保证了数据传输的顺序和准确性。当服务器端和客户端建立连接后,它们可以像操作文件流一样进行数据的读写操作。类是位于java.net包中的一个用于实现服务器端套接字的类。它能够监听指定端口的TCP连接请求,接受客户端的连接请求,并返回一个Socket对象进行数据的接收和发送。ServerSocket类是实现网络通信中服务端的核心组件,是所有网络服务端程序的基础。

weixin_35886636的博客 1057

Java网络编程之通过代码实现Socket通信

概述 Socket类 构造方法 成员方法 ServerSocket类 构造方法 成员方法 简单的TCP网络程序 TCP通信分析图解 客户端向服务器发送数据 服务器向客户端回写数据

write less , do more 9332

Java网络编程实战:示例代码详解

Java网络编程是指使用Java语言进行网络通信和数据交换的过程。它是计算机网络技术与Java语言结合的产物,为开发者提供了在不同网络环境和平台上实现信息交换和资源共享的能力。网络编程在IT行业中的重要性不言而喻,它不仅推动了分布式计算的发展,也为企业提供了强大的业务拓展和网络服务支持。

weixin_29935511的博客 855

工控上位机开发学习路线与核心技术解析

工控上位机开发是工业自动化领域的关键技术,通过计算机软件实现对工业设备的监控与控制。其核心在于掌握工业通信协议(如Modbus、OPC UA)、数据处理算法和可视化开发三大能力。上位机系统需要高效解析设备通信协议,处理实时数据,并提供直观的人机交互界面。在智能制造浪潮下,掌握C#语言和工业协议开发能力成为工程师的核心竞争力。典型应用场景包括生产线监控、设备远程运维等。本文基于工业现场实践经验,详解从协议解析到界面优化的全链路开发要点,特别针对Modbus协议调优、WPF性能优化等高频问题提供解决方案。

weixin_30376083的博客 550

Java网络编程:从Socket到HTTP通信

本文介绍了Java网络编程的核心内容,包括Socket编程和HTTP通信。Socket编程部分详细讲解了TCP/IP通信的实现方法,通过ServerSocket和Socket类实现客户端与服务器端的连接和数据传输。HTTP通信部分阐述了HTTP请求和响应的组成结构,以及常见的请求方法和状态码。最后,文章演示了如何使用Java的URL和URLConnection类发送HTTP请求。文中提供了完整的代码示例,包括服务器端和客户端的Socket通信实现,以及HTTP请求的发送方法。这些内容为开发者提供了Java网

今天比昨天更努力一点! 9767

AI 小说生成器本地部署完全指南

这篇文章介绍了本地部署AI小说生成器的完整指南,主要面向网文作者、内容创作者和AI爱好者。文章从环境搭建到创作实践,详细讲解了三种主流部署方案:Ollama(推荐新手)、LMStudio(图形界面)和text-generation-webui(高级定制)。内容涵盖硬件需求、系统架构、模型选择、API对接、提示词工程等关键技术环节,并提供了小说创作的特制提示词模板和参数调优建议。文章还讨论了长篇小说管理、多模型协作等进阶技巧,以及版权伦理等法律问题。最后推荐了相关工具资源和社区论坛,帮助读者实现安全、高效、可

珂珂可爱多 2261

【网络编程】掌握Java网络编程:深入理解Socket通信与实战技巧

Java的网络Socket编程为开发者提供了强大的工具来构建网络通信应用,从简单的客户端-服务器模型到复杂的分布式系统。Java的网络Socket编程为开发者提供了强大的工具来构建网络通信应用,从简单的客户端-服务器模型到复杂的分布式系统。希望本文能帮助您掌握Java网络编程的核心技术,并在实际项目中灵活运用。如果您有任何疑问或想要分享经验,请在评论区留下您宝贵的意见!🚀🌐🔌。

Dylaniou的博客 1351

人类肠道微生物群落代谢建模

MICOMWeb 是款用户友好型网站,专为人类肠道微生物群落代谢建模设计。该网站旨在解决基因组尺度代谢模型(in silico)构建过程中的3大限制:① 使用 MICOM Python 包进行通量平衡分析时对用户 Python 编程知识的要求;② 支持预定义和用户自定义饮食,以生成专属代谢模型;③ 处理宏基因组鸟枪法测序或 16S 扩增子测序获得的真实丰度数据时,所需的高通量计算基础设施。本文展示了 MICOMWeb 的核心功能,用户可轻松开展虚拟实验,为3个已发表数据集的实验验证生成功能性假设。

多组・学・多组学 1169

医疗AI Agent实战:从零搭建一个能看病的智能助手(附完整代码)

本文详细介绍了如何从零搭建一个医疗AI Agent智能助手,涵盖核心架构设计、症状推理引擎开发、安全与合规实现以及系统集成等关键环节。通过完整的代码示例和实战案例,帮助开发者快速构建具备医疗咨询能力的智能Agent,提升医疗服务的效率和质量。

ss78901的博客 467

Java网络编程 Socket、ServerSocket 详解,方法介绍及完整代码示例

Java网络编程 Socket、ServerSocket 详解,方法介绍及完整代码示例

csdn_bajie 3804

Python与numpy版本兼容性排查指南

本文详细解析了Python与numpy版本兼容性问题,提供了快速诊断和解决版本冲突的实用方法。通过查看版本信息、使用官方兼容性对照表以及降级或升级环境等方案,帮助开发者有效避免常见的报错问题,如'ImportError'和'AttributeError'。文章还介绍了使用虚拟环境和requirements.txt等工程实践,确保项目依赖的稳定性。

weixin_29089057的博客 319

Java之Socket通信

一、TCP/IP协议 TCP/IP是目前世界上应用最为广泛的协议,是以TCP和IP为基础的不同层次上多个协议的集合 也称:TCP/IP协议族 或 TCP/IP协议栈 TCP:Transmission Control Protocol 传输控制协议 IP:Internet Protocol 互联网协议 TCP/IP模型 应用层的协议: HTTP 超文文传输协议 FTP 文件传输协议 SMTP 简单邮件传输协议 Telnet 远程登录服务 IP地址 ...

小男孩儿的博客 2131

CEEMDAN算法及其应用

本博文主要介绍CEEMDAN算法的原理及其在信号去噪方面的应用

总结论文中的算法并给出论文的复现代码 6万+

Python从0到100(二):Python语言介绍及第一个Pyhon程序

Python从0到100(二):Python语言介绍及第一个Pyhon程序。与C和Java比,Python的学习成本和难度曲线不是低一点,更适合新手入门,自底向上的技术攀爬路线。

拥有百余位万粉技术博主、200余位可合作代发博主,私域技术社群规模达千人,商务合作私信 5440

Java 网络编程与Socket基础

TCP 通信的实现,结合服务端与客户端代码。 UDP 通信的实现,展示其灵活性与使用场景。

qq_61515559的博客 1938

python基础知识补充

1. jupyter notebook 解释 2. ipython 魔法命令 3. latex in Markdown cell(在markdown里面编写数学公式) 4. jupyter notebook功能扩展:安装Nbextension 5. python解释与运行 6. 垃圾回收(计数机制与分代回收机制) 7. 名字空间与局部作用域L和全局作用域G 8. 小整数缓存区与字符驻留 9. Statement &Expression 10. 调试

weixin_43178406的博客 1万+

【Java】网络编程--Socket与TCP网络通信编程

本节中,你将学习到Socket什么,以及使用TCP网络通信编程完成双向通信和上传文件的功能。使用到的技术有TCP字节流编程和TCP字符流编程。通过对上传文件需求的实现,将使你对网络收发保存图片有初步的了解。

黄小黄的博客 1417

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java网络编程:8、基于TCP的socket编程(一)简单的socket通信_一个客户端

一、基于tcp的编程,就好像用电话进行交谈一样 二、在java中用于编程网络程序的类 三、套接字 + (输出、输入流) 1、服务器程序编写基本步骤: 2、客户端程序编写基本步骤: 四、代码编写 1、服务器端程序的编写 2、客户端程序的编写 3、打印输出 4、你这个sever和client都是在同一个程序当中编写的, 那么我如何在两台机器之间进行通信呢? 五、系列文章(java网络编程)

鲁迷那的专栏—坚持实践后再写出来! 3114

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【Java】网络编程(Socket)

网络编程(Socket)

triticale的博客 1451

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: Effective Java笔记(25)限制源文件为单个顶级类
下一篇: Effective Java笔记(26)请不要使用原生态类型
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值