JAVA学习【知】Net

Java 与 .NET:在哪些领域,.NET 还无法超越 Java? 尽管 Xamarin 为 C# 开发者提供了跨平台开发的可能,但 Java 仍是 Android 开发的主流语言,且在该领域的支持和生态系统方面远超 .NET。Java 依旧在金融、银行、大型企业系统中占据主导地位,特别是在对稳定性、扩展性、性能有极高要求的系统中。Java 的框架、工具链和社区支持使其成为这些行业的首选技术。Java 在大数据、分布式计算以及大规模数据处理领域的生态系统和工具链比 .NET 更加成熟。对于大数据相关的项目,Java 的技术栈无疑是一个更强大的选择。 阅读详情

本节主要介绍 net包,因为涉及到网络编程所以如果对网络基础不是很了解的可以先去看看网络基础

比如 OSI模型,IP分类,TCP/IP协议,UDP协议 等等

在此不介绍网络基础 我们直接看net包

 

当我查看API我们会发现在NET包里有许多类,而对我们来说最常用的就是ServerSocket ,Socket 类了

 

1.Socket 的介绍:

此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器之间的通信端点。

 常用构造方法

Socket(String host, int port)
          创建一个流套接字并将其连接到指定主机上的指定端口号。

当然这个类还有很多方法 在这里我们不一一介绍

 

2.ServerSocket 的介绍

此类实现服务器套接字。服务器套接字等待请求通过网络传入。它基于该请求执行某些操作,然后可能向请求者返回结果。

常用的构造方法

ServerSocket(int port)
          创建绑定到特定端口的服务器套接字

port为一个端口 在这里我们可以自己定义范围是1-65536

 

 

ServerSocket ,Socket 通常是一块用的,他们分别是用来实现双向连接的client端(Socket )和server端(ServerSocket )的

他们之间是通过端口联系的

 

下面我们用一个简单的例子讲述

 

例:一个简单的客户端与服务端的通讯

既然是建立客户端和服务端的通讯那么我们要建立这两个端

 

首先建立服务端

 

定义一个类 server

  1. import java.io.IOException;
  2. import java.net.*;
  3. public class server {
  4.     public static void main(String[] args) {
  5.         try {
  6.             ServerSocket ss = new ServerSocket(8888);// 新建ServerSocket类并设置端口(端口自定义1-65536范围内)
  7.             while (true){
  8.             Socket s = ss.accept(); //侦听并接受到此连接。
  9.             System.out.println("Connected");//如果连接成功 输出Connected
  10.         }
  11.         }catch (IOException e) {
  12.             
  13.             e.printStackTrace();
  14.         }
  15.     }
  16. }
  17. //server类是服务端是用来接受客户端

然后定义个客户端类

  1. import java.io.IOException;
  2. import java.net.*;
  3. public class Client1 {
  4.     
  5.     public static void main(String[] args) {
  6.         try {
  7.             Socket s = new Socket("127.0.0.1",8888);// 创建一个流套接字并将其连接到指定主机上的指定端口号
  8.             
  9.         } catch (UnknownHostException e) {
  10.             
  11.             e.printStackTrace();
  12.         } catch (IOException e) {
  13.             
  14.             e.printStackTrace();
  15.         }
  16.     }
  17. }
  18. // Client1是客户端 是用来与服务器端进行通讯
  19. //注意:客户端与服务端的端口要一致

这样 客户端和服务端就已经建立好了 接下来就要测试连接了

注意 首先要先运行服务端再运行服务端

我们运行后会发现 客户端那边打印出了Connected这句话 这说明连接上了

 

但我们会发现这种通讯太简单,只能实行一边发送信息根本不符合现在的通讯能力

下面在介绍一个双方既能发送又能接收信息的例子

例:通讯

在这里我们就要用到IO那节了 用流来通讯

 

定义服务端类 Socket1

  1. import java.io.*;
  2. import java.net.*;
  3. public class Socket1 {
  4.     public static void main(String[] args) {
  5.         try {
  6.             ServerSocket ss = new ServerSocket (6666);
  7.             while (true){
  8.             Socket s = ss.accept();
  9.             DataInputStream  dis = new DataInputStream (s.getInputStream());
  10.             DataOutputStream dos = new DataOutputStream(s.getOutputStream());
  11.             dos.writeUTF("connected");
  12.             System.out.println(dis.readUTF());
  13.             dis.close();
  14.             s.close();
  15.             dos.flush();
  16.             dos.close();
  17.         } 
  18.         }catch (IOException e) {
  19.         
  20.         }
  21.         
  22.     }
  23. }

定义客户端类 Client

  1. import java.io.*;
  2. import java.net.*;
  3. public class Client {
  4.     public static void main(String[] agrs){
  5.     try {
  6.         Socket s = new Socket("127.0.0.1",6666);
  7.         DataOutputStream dos = new DataOutputStream(s.getOutputStream());
  8.         DataInputStream dis = new DataInputStream(s.getInputStream());
  9.         System.out.println(dis.readUTF());
  10.         dos.writeUTF("A client ");
  11.         dos.flush();
  12.         dos.close();
  13.         dos.close();
  14.         s.close();
  15.         
  16.     } catch (UnknownHostException e) {
  17.     
  18.         e.printStackTrace();
  19.     } catch (IOException e) {
  20.     
  21.         e.printStackTrace();
  22.     }
  23.     
  24.     }
  25. }

但我们运行此程序后我们会发现 客户端和服务端都收到了一句话,这说明双放都能通讯了,这里主使用了输入,输出流

具体如何实现大家看代码吧

 

当然这样的通讯也显得过于简单,不适合现在的通讯,但是在这里知识点基本也讲完了,有了上面的基础加上以前的只是如果想写一个好的通讯自己可以发挥自己的能力来写。

Codesys电子凸轮实战:从机械替代到虚轴设计的5个关键步骤 本文详细介绍了Codesys电子凸轮技术在运动控制领域的实战应用,从机械替代到虚轴设计的5个关键步骤。通过电子凸轮技术,操作员可以快速调整切割模式,显著提升产线效率。文章还探讨了虚轴架构、CAM表设计、动态耦合技巧及调试避坑指南,为工业自动化领域提供了实用的解决方案。 阅读详情

相关推荐

PostgreSQL高可用之主备复制

多个PostgreSQL可协同工作,如果主库发生宕机备库将迅速进行接管并对外提供服务以实现高可用。本文将从主备复制、主备切换、故障转移等角度进行实际测试演练。第一章主备复制是基础,通过主备复制可以得到一个或多个相同的实例。在主备复制的基础上通过第二章主备切换介绍了如何手工将主库与备库互换角色。在第三章中,采用了Keepalived进行实时监测,在主库宕机后,使用主备切换中提到的命令使备库升级为主库并对外提供服务,以达到PostgreSQL高可用的目标。

asdasdsaff的博客 1349

java基础之net

Socket socket TCP通信的服务器端:接收客户端的请求,读取客户端发送的数据,给客户端回写数据 表示服务器的类: java.net.ServerSocket:此类实现服务器套接字。 构造方法: ServerSocket(int port) 创建绑定到特定端口的服务器套接字。 服务器端必须明确一件事情,必须的知道是哪个客户端请求的服务器 所以可以使用accept方法获取到请求的客户端对象Socket 成员方法: Socket accept() 侦听并接受到此套接字的连接

qq_30848543的博客 478

微机原理与接口技术第六版周荷琴课后习题答案及解析(期末重点)

第二章 1.8086/8088CPU可直接寻址多少个内存(字节)单元?多少个I/O端口?它们的外部数据总线各有多少根? 8086/8088CPU使用的是20位地址总线,因此可以直接寻址2的20次方个内存单元(即1,048,576),每个单元大小为1字节,因此可以直接寻址2的20次方个字节的内存。 8086/8088CPU有64K个I/O端口,每个端口占用1字节的地址空间,因此可以直接寻址6...

Wmicheng的博客 1万+

学习感受+生活感受

河软优快云乐知学院  .NET方向  齐志超               第一次在自己的博客里发表自己的学习感受,感觉还是不一样,有种说不出的感觉,因为之前是在自己的空 间里发表的学习感受还有自己的日记中。就从我进入优快云乐知学院开始吧, 在大一开学新生报到的时候我知道了优快云乐知学院,当时的感觉就是这里面应该是特别好的一个学习的地方, 目标就是进入优快云乐知学院。当时听大二的

qizhichao110的专栏 1355

用友U8 API 二次开发:WebService封装7个核心DLL引用与U8Login登录避坑

本文详细介绍了用友U8 API二次开发中的WebService封装与U8Login登录优化实践。通过7个核心DLL的正确引用、U8Login登录机制的深度解析及IIS环境下的特殊处理方案,为开发者提供了一套高可用性的通用解决方案,助力企业实现ERP系统的高效集成与数字化转型。

weixin_42524171的博客 505

【YOLOs-CPP-图像分类部署】04-项目优化(加速部署)

本文详细介绍了将YOLO图像分类C++部署项目从CMake迁移到Visual Studio控制台应用的全过程。针对低配CPU性能瓶颈问题,作者通过替换多线程HPP代码为官方实现,并采用448x448固定输入尺寸优化推理速度。项目配置包含OpenCV和ONNX Runtime环境设置,实现了图像批量处理、分类结果显示及结果日志输出功能。关键步骤包括依赖库配置、DLL部署和代码调试,最终在Windows平台成功实现高效CPU推理。该方案显著提升了低配硬件的兼容性,为图像分类任务提供了稳定的部署解决方案。

深耕CV 355

.net是什么

距离学习.net有一年了。直到前段时间的面试中,才发现对.net的理解有很多的问题。当时在网上简单地查了一下,大概了解了一下。现在我徒弟反映.net视频有很多不理解的地方,我们讨论了一下,也给了我一个很好的再学习机会。下面是我对.net的再理解。

王雅瑾---上善若水,水善利万物而不争 2万+

Vue3 - Element Plus 表格组件 el-table “表格行数据中又嵌套了二维对象数组“,按平级循环渲染(嵌套数组视为同级行数据), 对嵌套的数组循环展示为表格,智能合并行或列详细教程

vue3,nuxt3,element-plus,table表格组件,el-table,vue3element表格组件,数据中有二维数组怎么遍历循环显示,表格数据带二级数组怎么循环渲染显示,表格数据中存在一个数组要怎么才能显示到表格,el-table表格合并详细教程示例,table表格如果对象里面还有对象数组那该怎么去渲染,平常都是数组中一个对象渲染成一行,每行中还有嵌套数组怎么办,每个行数据下还有一个数组怎么显示,怎么把表格相同的数据合并为一行,合并上下两行相同数据单元格,合并行或列如果遇到相同单元格就合

🏆 前端领域优质创作者 1万+

C#/.NET/.NET Core学习路线集合,学习不迷路!

C#、.NET、.NET Core、WPF、WinForm、Unity等相关技术的学习、工作路线集合(持续更新)!!!全面的C#/.NET/.NET Core学习、工作、面试指南:https://github.com/YSGStudyHards/DotNetGuideC#/.NET/.NET Core学习路线集合语雀访问地址:https://www.yuque.com/ysgstudyhard/lg56l0/ub8s6b0re9h26epr。

专注于C#/.NET/.NET Core学习、工作、面试干货和实战教程分享。这里聚焦了大量的C#/.NET/.NET Core优质文章、开源项目、实用工具和学习、工作、面试心得。 1340

爬取Unsplash高清壁纸:Python爬虫实战教程(最新技术)

在当今数字化时代,高清壁纸已经成为人们个性化设备的重要元素。Unsplash作为全球最知名的免费高质量图片网站,汇集了数百万张由全球摄影师贡献的高清图片。然而,Unsplash官网的下载方式需要手动操作,对于需要批量下载壁纸的用户来说效率较低。本文将带你深入探索如何使用Python爬虫技术高效爬取Unsplash高清壁纸,从基础到进阶,全面掌握图片爬取的核心技术。Unsplash成立于2013年,是一个完全免费的图片分享平台。高质量内容:所有图片均由专业摄影师上传,分辨率普遍达到4K以上免费商用。

2201_76125261的博客 937

《二、企业级监控系统之Prometheus监控node_exporter》

文章目录一、部署node_exporter服务二、部署prometheus服务2.1、部署node_exporter服务三、grafana之添加数据源四、grafana之导入监控模板五、grafana之修改模板变量六、grafana之修改仪表板变量总结 > 这里是引用 一、部署node_exporter服务 docker run -d --restart=always --name node_exporter --net=“host” --pid=“host” -v “/:/host:ro,

东城绝神 1万+

java和.net比较

自从.NET问世以来,程序员都很关心的一个问题是「该学Java或.NET」。我也在挣扎,该「该继续Java的研究,或者该开始准备培养.NET的知识」。 当然,最好是能两者兼顾,但是每个人的时间都很有限,想要兼顾两者,其实不太容易。投入在.NET的时间越多,所能花费在Java的时间

快速开发平台 1019

基于 Qt C++ 的智能工厂数字孪生系统

你想要实现一个基于 Qt C++ 的智能工厂数字孪生系统,核心是 **Qt 3D** 场景搭建 + **实时数据驱动** 设备模型。下面我将为你提供一个完整的解决方案,包含 **核心思路、实现步骤、完整代码示例** 和 **注意事项**。| **渲染层** | 3D 场景搭建、设备模型加载、实时动画渲染、用户交互。| **业务逻辑层** | 数据处理(滤波、转换)、设备状态管理、动画逻辑控制。| **数据层** | 实时采集设备数据(如传感器、PLC、MES 系统),提供数据接口。

寒寒豆豆软件公司的博客 196

五年.net程序员Java学习之路

大学毕业后笔者进入一家外企,做企业CRM系统开发,那时候开发效率最高的高级程序语言,毫无疑问是C#。恰逢公司也在扩张,招聘了不少.net程序员,笔者作为应届生,也乐呵呵的加入到.net程序员行列中。 C#.net非常容易上手,之前在大学里,做过winform和webform开发,也曾经在老师那里承接过小项目,赚点外快。于是在工作岗位上驾轻就熟,很容易就上手了企业开发框架,仅一年多,笔者就成为公司...

java1856905的博客 511

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

.NET学习全景图

.NET与JAVA  Java是上世纪九十年代诞生的一种面向对象语言,它吸取了C++的许多长处,其最大的特性是“跨平台”,由于它很好地满足了网络时代信息系统对高级语言的要求,因而在实践中得到广泛应用。   Java经过近十年的发展,目前已在企业信息系统开发领域占据了主流地位,形成了一整套完整的技术体系,取得了巨大的成功。  .NET是微软推出的一种新的软件运行平台,它包括一整套应用

Bengineer的专栏 1236

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java与.net对比_Java VS .NET:Java与.NET的特点对比

一、前言为什么要写Java跟.NET对比?.NET出生之后就带着Java的影子。从模仿到创新,.NET平台也越来越成熟。他们不同的支持者也经常因为孰弱孰强的问题争论不休。但是本文并不是为了一分高下。而是针对Java平台跟.NET平台做一些对比。主要围绕项目构建、Web框架、项目部署展开讨论。相信经过这些讨论可以让Java/.NET工程师对Java平台、.NET平台有更好的了解。二、项目构建项目构建...

weixin_34872032的博客 1650

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

我看如何选择java和.net

最近发现csdn上又有人说JAVA和.net如何选择方向、JAVA和.net谁好之类的问题,在这里,我谈谈自己的感受。首先声明:本人不是资深专家,也没几年开发经验,所以我不从技术角度分析问题,而是从工作的角度。 我对.NET还是蛮看好的,有人会说.NET开发会说.Net的好处,我这里不否认,但是我认为大家用理性的思维和相对科学的方法来分析问题就不会有错。我判断哪个技术有前途用以下四点。 第一点,我

phphot 2171

.net学习总结

.net学习总结如果你是有经验的java程序员,学习.net会有一种很兴奋的感觉。.net学习比学习一种java新出来的框架还要简单。用不着写太多的代码,可视化编程。用什么控件拖到窗体里就可以了,要对控件操作就在vs里面编辑源码就可以了,C#与java语法很类似。而且函数库里面有太多直接可用的方法。代码量与java相比少了60%都不为过。用.net开发小系统一定会很快。.net页面简要开发

沙振中 1133

DotNetGuide专栏C#/.NET/.NET Core学习路线集合,学习不迷路!

C#、.NET、.NET Core、WPF、WinForm、MAUI、Avalonia、Unity等相关技术的学习、工作路线集合(持续更新)!!!C#/.NET/.NET Core学习路线集合语雀访问地址:https://www.yuque.com/ysgstudyhard/lg56l0/ub8s6b0re9h26eprDotNetGuide技术社区微信交流8群:欢迎加入DotNetGuide技术社区微信交流8群!DotNetGuide是一个专注于C#/.NET/.NET Core学习、工作、面试指南的Gi

专注于C#/.NET/.NET Core学习、工作、面试干货和实战教程分享。这里聚焦了大量的C#/.NET/.NET Core优质文章、开源项目、实用工具和学习、工作、面试心得。 1717

现在学习.NET还是学习JAVA那个学科重要呢?

经常有初学者问出“哪门语言更有前途?是java好还是.net好?大公司用哪门语言的多?学哪个编程语言工资高?”这样的问题。这样的问题其实本来就是一个伪命题,就像“说英语的人有钱还是说德语的人有钱”一样没有答案。学习编程是一个学习编程思想的过程,用哪门语言并不重要。只要把自己选定的语言一门心思去学习就可以,达到“一通百通”的境地以后任何编程语言在你眼中都是一样的。语言...

beilinghe2477的博客 179

我是不是应该放弃.net转向java_我为什么从.NET转向Java

我为什么从.NET转向Java自从开始学习计算机以来,所接触的软件基本上都是Microsoft的产品,记得最开始使用的操作系统是MS-DOS 3.1,开发工具是基本DOS的Turbo Pascal、Turbo C、MASM、Borland C++等,进入Windows和.NET平台后,便是清一色的Microsoft工具:Visual Basic和Visual C++,直到现在最新的Visual S...

weixin_35629057的博客 1902

从JAVA到.NET

    大学刚刚毕业,一个人跑到了北京找工作,因为参加了某个Java培训感觉信心满满,一定能找到个不错的工作,可是事与愿违。    就在要推荐工作的时候,奥运会开始了,许多单位不招人,可能是响应国家号召吧,只好在等待中度过那艰难的奥运,奥运完了残运……接着等吧,等着等着……等来了美国次贷危机带来的全球性金融危机-_-!培训了5个月的Java,学习了J2EE的相关知识,就应为时运不济,标准一降再

sphinger的专栏 1037

Java vs .NET,我该选择什么?

写下这个标题后,一阵心酸。出道太晚了,时代的车轮在高速前行,我却远远地看着,追之不及,惟叹息耳。  唉,年华已逝,逝者如斯啊。如果我还是一个学生,该有多好,可以自由选择,甚至多选。学习.NET已两个星期了。然而当周一接到福建那边招标文件的时候,我突然莫名地懊恼了整整一天。招标文件要求UNIX系统、J2EE架构、Oracle数据库的。我很愤怒。为什么?.NET真的只适合于中小型系统?是否干脆就象多数

下里巴人的专栏 3089

Java VS .NET:Java与.NET的特点对比

一、前言 为什么要写Java跟.NET对比? .NET出生之后就带着Java的影子。从模仿到创新,.NET平台也越来越成熟。他们不同的支持者也经常因为孰弱孰强的问题争论不休。但是本文并不是为了一分高下。而是针对Java平台跟.NET平台做一些对比。主要围绕项目构建、Web框架、项目部署展开讨论。相信经过这些讨论可以让Java/.NET工程师对Java平台、.NET平台有更好的了解。 二、项目构建 项目构建工具 工欲善其事必先利其器。开发环境配置+工具使用当然要先讲了。 1、表面上的工具 平台

Java_may的博客 1260

对比Java,.NET具备哪些特点?

在当今软件开发领域,Java和.NET都是广受欢迎的技术平台。虽然两者都能用于开发企业级Web和桌面应用程序,但它们各自具有独特的特点和优势。本文将对比Java,探讨.NET平台的几个显著特点。

Yori_22的博客 963
上一篇: JAVA学习【知】线程
下一篇: J2SE中的一些基础问题总结(不断更新)
不善^
博客等级 码龄18年 635粉丝 235原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值