【Java学习之道】TCPIP套接字编程实例

引言

网络编程是Java学习中不可或缺的一部分,而TCP/IP套接字编程又是网络编程的基础。那么,初学者如何才能快速掌握TCP/IP套接字编程呢?今天我们就来通过一个简单的实例,为你揭示TCP/IP套接字编程的奥秘!

一、什么是套接字

首先,让我们来了解一下什么是套接字。套接字(Socket)是用于在网络上进行通信的一种编程接口,它提供了网络通信的基本功能。在Java中,我们通常使用java.net包中的Socket类和ServerSocket类来进行套接字编程。

接下来,让我们通过一个简单的实例来学习TCP/IP套接字编程。这个实例将演示如何通过客户端和服务器端的代码来实现一个简单的通信程序。

二、服务器端代码

在服务器端,我们需要创建一个ServerSocket对象来监听指定端口上的连接请求。当客户端连接到服务器时,ServerSocket对象将返回一个Socket对象,我们可以使用这个Socket对象与客户端进行通信。

import java.net.*;
import java.io.*;public class TCPServer {public static void main(String[] args) throws IOException {// 创建ServerSocket对象,监听端口1234ServerSocket serverSocket = new ServerSocket(1234);System.out.println("Server is running and waiting for client connection...");// 等待客户端连接请求Socket socket = serverSocket.accept();System.out.println("Client connected: " + socket.getInetAddress().getHostAddress());// 创建输入输出流进行通信InputStream inputStream = socket.getInputStream();OutputStream outputStream = socket.getOutputStream();// 从客户端接收消息并打印BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));String message = reader.readLine();System.out.println("Received message from client: " + message);// 向客户端发送回复消息PrintWriter writer = new PrintWriter(outputStream, true);writer.println("Hello client, your message has been received!");// 关闭连接socket.close();serverSocket.close();}
}

三、客户端代码

在客户端,我们需要创建一个Socket对象来连接到服务器。然后,我们可以使用输入输出流与服务器进行通信。

import java.net.*;
import java.io.*;public class TCPClient {public static void main(String[] args) throws IOException {// 创建Socket对象,连接到服务器的IP地址和端口号Socket socket = new Socket("localhost", 1234);System.out.println("Connected to server...");// 创建输入输出流进行通信InputStream inputStream = socket.getInputStream();OutputStream outputStream = socket.getOutputStream();// 向服务器发送消息PrintWriter writer = new PrintWriter(outputStream, true);writer.println("Hello server!");// 从服务器接收回复消息并打印BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));String response = reader.readLine();System.out.println("Received response from server: " + response);// 关闭连接socket.close();}
}

结语

通过这个简单的TCP/IP套接字编程实例,我们展示了如何使用Java进行网络编程。这个例子只是网络编程的冰山一角,实际上网络编程涉及的内容还有很多。但是,只要你掌握了基础知识,相信你可以轻松地驾驭更复杂的网络编程任务。希望这个实例能帮助你更好地理解Java中的网络编程,祝你学习愉快!

文 | chwt9299

Java学习之道

print("Hello, world.")

亲爱的读者,我是本篇文章的作者chwt9299。感谢您抽出宝贵的时间阅读我的作品。如果对我的作品产生了共鸣,或者觉得我的观点独到有趣,请用点赞、关注、评论、收藏来表达您的喜爱吧!n_n

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/160138.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023_Spark_实验十四:SparkSQL入门操作

1、将emp.csv、dept.csv文件上传到分布式环境,再用 hdfs dfs -put dept.csv /input/ hdfs dfs -put emp.csv /input/ 将本地文件put到hdfs文件系统的input目录下 2、或者调用本地文件也可以。区别:sc.textFile("file:///D:\\temp\\emp.csv&qu…

学信息系统项目管理师第4版系列29_信息系统治理

1. IT治理 1.1. 描述组织采用有效的机制对信息技术和数据资源开发利用,平衡信息化发展和数字化转型过程中的风险,确保实现组织的战略目标的过程 1.2. 驱动因素 1.2.1. 信息孤岛 1.2.2. 信息资源整合目标空泛 1.3. 高质量IT治理因素 1.3.1. 良好的I…

哈佛教授因果推断力作:《Causal Inference: What If 》pdf下载

因果推断是一项复杂的科学任务,它依赖于多个来源的三角互证和各种方法论方法的应用,是用于解释分析的强大建模工具,同时也是机器学习领域的热门研究方向之一。 今天我要给大家推荐的这本书,正是因果推断领域必读的入门秘籍&#…

UGUI交互组件InputField

一.InputField的结构 对象说明InputField挂有TextMeshPro-InputField组件的主体对象Text Area文本显示区Placeholder未输入时占位文本Enter text...Text输入的显示文本 二.InputField的属性 属性说明Text ViewportText Area子对象的引用Text ComponentText子对象的引用Text输入…

Latex 通过\item控制编号

\item通常用于 1 论文写作中的hightlight 2 或一些需要缩进的场景 具体实现 \item 或\item[]在方括号里面添加1)、 (1)来控制

visual studio安装时候修改共享组件、工具和SDK路径方法

安装了VsStudio后,如果自己修改了Shared路径,当卸载旧版本,需要安装新版本时发现,之前的Shared路径无法进行修改,这就很坑爹了,因为我运行flutter程序的时候,报错找不到windows sdk的位置,所以我…

Open3D 进阶(13)使用PCA将点云投影到主成分空间

目录 一、算法原理<font color="#dd00dd">1、三维点云投影二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫网站自重。 一、算法原理 1、三维点云投影 p r o j

手机抬手亮屏解锁,用到了哪些硬件?

随着时代发展&#xff0c;智能手机以丰富的功能及便利性&#xff0c;成为了人们必不可少的物品&#xff0c;其中人脸解锁功能是非常有用的功能&#xff0c;广受年轻人的喜爱&#xff0c;那么你知道她是如何实现吗&#xff1f;今天凡小亿带你们探索&#xff01; 手机抬手亮屏解锁…

BAT026:删除当前目录指定文件夹以外的文件夹

引言&#xff1a;编写批处理程序&#xff0c;实现删除当前目录指定文件夹以外的文件夹。 一、新建Windows批处理文件 参考博客&#xff1a; CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.右键新建的批处理文件&#xff0c;点击【编辑】…

在 Windows Server RDS 服务器 上重置 120 天宽限期

如果您出于测试目的安装了 RDS Server 2016/2019/2022&#xff0c;并且 RDS 许可宽限期已过期&#xff0c;请继续阅读下面的内容以了解如何重置 120 天宽限期。您可能知道&#xff0c;在安装 RDS Server 2016 时&#xff0c;您有 120 天的时间来安装 RD 客户端访问许可证 &…

【设计模式】单例模式、“多例模式”的实现以及对单例的一些思考

文章目录 1.概述2.单例模式实现代码2.1.饿汉式单例2.2.懒汉式单例2.3.双检锁单例2.4.静态内部类单例2.5.枚举单例 3.对单例的一些思考3.1.是否需要严格的禁止单例被破坏&#xff1f;3.2.懒汉式真的比饿汉式更佳吗&#xff1f;3.3.单例存在的问题 4.其他作用范围的单例模式4.1.线…

jenkins出错与恢复

如果你的jenkins出现了如下图所示问题&#xff08;比如不能下载插件&#xff0c;无法保存任务等&#xff09;&#xff0c;这个时候就需要重新安装了。 一、卸载干净jenknis 要彻底卸载 Jenkins&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1、停止 Jenkins 服务&…

官方认证:研发效能(DevOps)工程师职业技术认证

培养端到端的研发效能人才 为贯彻落实《关于深化人才发展体制机制改革的意见》&#xff0c;推动实施人才强国战略&#xff0c;促进专业技术人员提升职业素养、补充新知识新技能&#xff0c;实现人力资源深度开发&#xff0c;推动经济社会全面发展&#xff0c;根据《中华人民共…

Vue检测数据的原理

Vue能够对用户的数据进行响应式&#xff0c;也就是你在data中写了什么&#xff0c;你在模板中用到data的部分就会渲染成什么&#xff0c;那么Vue是怎么知道用户修改了data中的数据变化并对模板重新进行解析的呢&#xff1f; 在Vue将数据存储为自身的_data之前&#xff0c;Vue会…

【软考-中级】系统集成项目管理工程师 【18 风险管理】

持续更新。。。。。。。。。。。。。。。 【第十八章】风险管理 (选择3分&#xff0c;偶尔案例18 分 18.1 风险概述18.1.1 风险的定义18.1.2 风险的分类18.1.3 风险的性质 18.2 项目风险管理18.3 规划风险管理18.3.1 规划风险管理的输入18.3.2 规划风险管理的工具与技术18.3.3 …

解决安装nvm以后windows cmd无法找到npm/yarn命令的问题

安装了nodejs多版本管理工具nvm以后&#xff0c;会出现windows cmd无法找到npm/yarn命令的问题 只要一运行npm/yarn就会提示&#xff1a;不是内部命令&#xff0c;找不到运行路径之类的。 解决办法&#xff1a;首先打开windows环境变量的配置&#xff0c;查看NVM_SYMLINK指向…

在nodejs中实现调度任务

在nodejs中实现调度任务 node.js帮助开发人员简化了工作流程&#xff0c;创建了高效的应用程序。它的许多有用功能之一是任务调度。本文将探讨在nodejs中调度任务的重要性、各种使用第三方库的代码示例&#xff0c;以及需要遵循的一些有用的操作。 为什么我们需要安排任务 调…

c语言从入门到实战——C语言数据类型和变量

C语言数据类型和变量 前言1. 数据类型介绍1.1 字符型1.2 整型1.3 浮点型1.4 布尔类型1.5 各种数据类型的长度1.5.1 sizeof操作符1.5.2 数据类型长度1.5.3 sizeof中表达式不计算 2. signed 和 unsigned3. 数据类型的取值范围4. 变量4.1 变量的创建4.2 变量的分类 5. 算术操作符&…

vueday01——ref响应式

特性&#xff1a;持续监控某个响应式变量的属性名变化&#xff0c;可以使用shallowRef来取消这一特性&#xff0c;只监控对象整体的变化 ref测试代码&#xff1a; <template><div :id"idValue" ref"myDiv">打印obj{{ obj }}</div><…

多维时序 | MATLAB实现SSA-CNN-BiLSTM-Attention多变量时间序列预测(SE注意力机制)

多维时序 | MATLAB实现SSA-CNN-BiLSTM-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09; 目录 多维时序 | MATLAB实现SSA-CNN-BiLSTM-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09;预测效果基本描述模型描述程序设计参考资料 预测效果 基…