TCP网络通信

 

 TCP通信的 实现发1收1

package TCP1;//完成TCP通信的 实现发1收1import java.io.DataOutputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;public class Client {public static void main(String[] args)throws Exception {//1:创建Socket对象并同时请求服务端程序的链接Socket socket= new Socket("127.0.0.1",8888);//2:从Socket通信管道中得到一个字节输出流 用来数据发给到服务器OutputStream os= socket.getOutputStream();//3:把低级的输出流封装成数据输出流DataOutputStream dos=  new DataOutputStream(os);//开始写数据出去了dos.writeUTF("在一起好吗?");System.out.println("发送完成");dos.close();    //释放资源IO流socket.close();  //释放网络资源TCP通信}}

 

package TCP1;// 完成TCP通信服务端 实现发1收1import java.io.DataInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;public class Server {public static void main(String[] args) throws Exception {System.out.println("===============启动服务端================");//1:创建serverSocket的对象 同时为服务端注册端口ServerSocket serverSocket = new ServerSocket(8888);//2:使用serverSocket 对象 调用accept 方法 等待客户端连接请求Socket socket= serverSocket.accept();//3:从socket管道中得到一个字节输入流InputStream inputStream = socket.getInputStream();//4: 把原始的字节输入流封装成输入流DataInputStream dis=  new DataInputStream(inputStream);//5:使用数据输入流 读取客户端发箍来的数据String rs= dis.readUTF();System.out.println(rs);// 6:谁发的数据获取IPSystem.out.println(socket.getRemoteSocketAddress());System.out.println(socket.getPort());dis.close();    //释放资源IO流socket.close();  //释放网络资源TCP通信}}

完成TCP通信的 多发多收

package TCP2;//完成TCP通信的 多发多收import java.io.DataOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;public class Client {public static void main(String[] args)throws Exception {//1:创建Socket对象并同时请求服务端程序的链接Socket socket= new Socket("127.0.0.1",8888);//2:从Socket通信管道中得到一个字节输出流 用来数据发给到服务器OutputStream os= socket.getOutputStream();//3:把低级的输出流封装成数据输出流DataOutputStream dos=  new DataOutputStream(os);Scanner sr=new Scanner(System.in);while (true) {//开始写数据出去了System.out.print("请说: ");String msg= sr.nextLine();dos.writeUTF(msg);dos.flush();//用户输入exit 退出if ("exit".equals(msg)){System.out.println("欢迎下次光临 退出成功");dos.close();socket.close();break;}}}}

 

package TCP2;// 完成TCP通信服务端  多发多收import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;public class Server {public static void main(String[] args) throws Exception {System.out.println("===============服务端启动成功================");//1:创建serverSocket的对象 同时为服务端注册端口ServerSocket serverSocket = new ServerSocket(8888);//2:使用serverSocket 对象 调用accept 方法 等待客户端连接请求Socket socket= serverSocket.accept();//3:从socket管道中得到一个字节输入流InputStream inputStream = socket.getInputStream();//4: 把原始的字节输入流封装成输入流DataInputStream dis=  new DataInputStream(inputStream);while (true) {//5:使用数据输入流 读取客户端发箍来的数据try {String rs= dis.readUTF();System.out.println(rs);} catch (Exception e) {System.out.println(socket.getRemoteSocketAddress()+"离线了!");socket.close();dis.close();break;}// 6:谁发的数据获取IP// System.out.println(socket.getRemoteSocketAddress());//System.out.println(socket.getPort());}}}

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

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

相关文章

酷开科技丨大屏购物买买买,酷开系统助力网购模式再升级

随着技术的发展和家庭场景智能化的趋势,消费者对品质和体验的需求不断提高。在这一背景下,OTT大屏营销生态得到了快速发展,大屏的购物功能进一步被释放,已经具备更强的“转化”能力。电视的智能化、交互简单化、账号同步化等特性使…

HashMap源码解析_jdk1.8(二)

HashMap源码解析_jdk1.8(二)构造函数put方法resize扩容方法 HashMap源码解析_jdk1.8(二) 构造函数 HashMap提供了如下几个构造函数: /*** 构造一个具有指定初始容量和负载因子的空HashMap.** param initialCapacit…

Go之流程控制大全: 细节、示例与最佳实践

引言 在计算机编程中,流程控制是核心的组成部分,它决定了程序应该如何根据给定的情况执行或决策。以下是Go语言所支持的流程控制结构的简要概览: 流程控制类型代码if-else条件分支if condition { } else { }for循环for initialization; con…

若依和芋道

国外卷技术,国内卷业务,做管理业务通常使用开源框架就可以快速满足,若依和芋道都是开源二开工具较为流行的框架,芋道是基于若依的,基本上是开发人员自己写业务开发框架的天花板,两者的前端都是基于vue-element-admin的,使用Gitee上两者的SpringBoot的最轻量化版本进行对…

【C++那些事儿】函数重载与C++中的“指针“——引用

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,我之前看过一套书叫做《明朝那些事儿》,把本来枯燥的历史讲的生动有趣。而C作为一门接近底层的语言,无疑是抽象且难度颇…

PDF Reader Pro v2.9.8(pdf编辑阅读器)

PDF Reader Pro是一款PDF阅读和编辑软件,具有以下特点: 界面设计简洁,易于上手。软件界面直观清晰,用户可以轻松浏览文档,编辑注释和填写表单。功能强大,提供了多种PDF处理工具,包括阅读、注释…

保护公司数据安全的措施

保护公司数据安全的措施 互联网时代,数据安全对企业而言是非常重要的,数据是每个组织的命脉,保护好数据安全企业才能稳定长久的发展下去,很多企业就是因为不重视数据安全防护,导致数据泄露从而遭受了很大的损失。因此…

吃瓜教程2|线性模型

线性回归 “广义的线性模型”(generalized linear model),其中,g(*)称为联系函数(link function)。 线性几率回归(逻辑回归) 线性判别分析 想让同类样本点的…

MySQL -- 库和表的操作

MySQL – 库和表的操作 文章目录 MySQL -- 库和表的操作一、库的操作1.创建数据库2.查看数据库3.删除数据库4.字符集和校验规则5.校验规则对数据库的影响6.修改数据库7.备份和恢复8.查看连接情况 二、表的操作1.创建表2.查看表结构3.修改表4.删除表 一、库的操作 注意&#xf…

LeetCode2409——统计共同度过的日子数

博主的解法过于冗长,是一直对着不同的案例debug修改出来的,不建议学习。虽然提交成功了,但是自己最后都不知道写的是啥了哈哈哈。 package keepcoding.leetcode.leetcode2409; /*Alice 和 Bob 计划分别去罗马开会。给你四个字符串 arriveA…

分类预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据分类预测

分类预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据分类预测 目录 分类预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据…

访问控制2

文章目录 主要内容一.Role和ClusterRole1.ClusterRole示例,创建一个名为test-clusterrole且仅有创建Pod和deployment的集群角色代码如下(示例): 2.YAML文件创建代码如下(示例): 3.将udbs用户和Clusterrole进行绑定&…

032-第三代软件开发-Popup弹窗

第三代软件开发-Popup弹窗 文章目录 第三代软件开发-Popup弹窗项目介绍Popup弹窗官方示例项目中的代码 之前写过一个Popup抄抄别人的dimvisible 和 Open 区别 与 Dialog有啥区别其他总结一下 关键字: Qt、 Qml、 Popup、 弹窗、 modal 项目介绍 欢迎来到我们的…

【计算机网络】TCP 协议的相关特性

TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的协议。以下是TCP协议的相关特性: 可靠性:TCP通过确认和重传机制保证数据的可靠传输。 面向连接:TCP在传输数据前需要先建立连接。连接的建立过程包括三次握手…

号外!百度Comate代码助手全新上线SaaS服务 - 免费申请试用+深入教程解读!

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

专业软件测评中心分享:科技成果验收测试报告的作用

科技成果验收测试是科技项目在开发完成后进行的一项测试,旨在检测科技项目的成果是否符合预期的技术指标和效果,以及是否符合用户需求和行业标准。验收测试报告是科技成果验收的重要依据,用于记录和证明科技成果的测试结果和性能表现。 一、…

Java入门讲解(1)---让你瞬间明白如何安装jdk

博主有话说:学习这个东西一定要持之以恒!!!博主之前因为点事情半个月没学习,重新来过时,发现自己错过好多知识,正在一点一点往回补,博客也会陆续开始更新,希望大家多多支…

安防视频监控平台EasyCVR新版(V.3.4)平台界面更新2.0

视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流&#…

Mask Free VIS笔记(CVPR2023 不需要mask标注的实例分割)

paper: Mask-Free Video Instance Segmentation github 一般模型学instance segmentation都是要有mask标注的, 不过mask标注既耗时又枯燥,所以paper中仅用目标框的标注来实现实例分割。 主要针对视频的实例分割。 之前也有box-supervised实例分割&…

MySQL执行计划分析

执行计划中的常见的列的解释: type system/const :用户主键索引或者唯一索引查询时,只能匹配 1 条数据。一般可以对 sql 查询语句优化成一个常量,那么 type 一般就是 system 或者 const,system 是 const 的一个特例&…