Java 在Client/Server 网络中的应用-Java基础-Java-编程开发

网络编程Client/Server模型 Client/Server 网络编程的基本模型Client/Server模型,也就是两个进程直接进行相互通信,其中服务端提供配置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接成功,则双方即可进行通信(网络套接字socket) ServerHandler public classServerHandler implementsRunnable{ private Socket socket ; public ServerHandle 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

随着Java语言的日益流行,特别是Java与Internet Web的密切结合,使它在全球取得了巨大的成功。Java语言以其独立于平台、面向对象、分布式、多线索及完善的安全机制等特色,成为现代信息系统建设中的良好的开发平台和运行环境。


  一、Java网络应用模型

  和Internet上的许多环境一样,完整的Java应用环境实际上也是一个客户机/服务器环境,更确切地说是浏览器/服务器模型(即Browser/Server模型,简称Web模型)。但与传统的客户机/服务器(C/S) 的二层结构不同,应用Java的Web模型是由三层结构组成的。传统的C/S结构通过消息传递机制,由客户端发出请求给服务器,服务器进行相应处理后经传递机制送回客户端。而在Web模型中,服务器一端被分解成两部分:一部分是应用服务器(Web 服务器),另一部分是数据库服务器。

  针对分布式计算环境,Java通过其网络类库提供了良好的支持。对数据分布,Java提供了一个URL(Uniform Resource Locator) 对象, 利用此对象可打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。对操作分布,Java的客户机/ 服务器模式可以把运算从服务器分散到客户一端(服务器负责提供查询结果,客户机负责组织结果的显示),从而提高整个系统的执行效率,增加动态可扩充性。Java网络类库是Java 语言为适应Internet 环境而进行的扩展。另外,为适应Internet的不断发展,Java还提供了动态扩充协议,以不断扩充Java网络类库。

  Java的网络类库支持多种Internet协议,包括Telnet, FTP 和HTTP (WWW),与此相对应的Java网络类库的子类库为:

Java.net

Java.net.ftp

Java.net.www.content

Java.net.www.html

Java.net.www.http
  这些子类库各自容纳了可用于处理Internet协议的类和方法。其中,java.net用于处理一些基本的网络功能,包括远程登录(Telnet);java.net.ftp用于处理ftp协议;java.net.www.content用于处理WWW 页面内容;java.net.www.html 和java.net.www.http 则分别提供了对HTML 语言和HTTP 协议的支持。


   二、客户机/服务器环境下的Java应用程序

  客户机/服务器在分布处理过程中,使用基于连接的网络通信模式。该通信模式首先在客户机和服务器之间定义一套通信协议,并创建一Socket类,利用这个类建立一条可靠的链接;然后,客户机/服务器再在这条链接上可靠地传输数据。客户机发出请求,服务器监听来自客户机的请求,并为客户机提供响应服务。这就是典型的"请求-- 应答" 模式。下面是客户机/服务器的一个典型运作过程:

  1、服务器监听相应端口的输入;

  2、客户机发出一个请求;

  3、服务器接收到此请求;

  4、服务器处理这个请求,并把结果返回给客户机;

  5、重复上述过程,直至完成一次会话过程。

  按照以上过程,我们使用Java语言编写一个分别针对服务器和客户机的应用程序(Application)。该程序在服务器上时,程序负责监听客户机请求,为每个客户机请求建立Socket 连接,从而为客户机提供服务。本程序提供的服务为:读取来自客户机的一行文本,反转该文本,并把它发回给客户机。

  通过该程序实例我们看到,使用Java语言设计C/S程序时需要注意以下几点:

  (1)、 服务器应使用ServerSocket 类来处理客户机的连接请求。当客户机连接到服务器所监听的端口时,ServerSocket将分配一新的Socket 对象。这个新的Socket 对象将连接到一些新端口,负责处理与之相对应客户机的通信。然后,服务器继续监听ServerSocket,处理新的客户机连接。

  Socket 和ServerSocket 是Java网络类库提供的两个类。

  (2)、服务器使用了多线程机制。Server对象本身就是一个线程,它的run()方法是一个无限循环,用以监听来自客户机的连接。每当有一个新的客户机连接时,ServerSocket就会创建一个新的Socket类实例,同时服务器也将创建一新线程,即一个Connection 对象,以处理基于Socket 的通信。与客户机的所有通信均由这个Connection 对象处理。Connection的构造函数将初始化基于Socket 对象的通信流,并启动线程的运行。与客户机 的通信以及服务的提供,均由Connection对象处理。

  (3)、客户机首先创建一Socket对象,用以与服务器通信。之后需创建两个对象:DataInputStream 和PrintStream,前者用以从Socket 的InputStream 输入流中读取数据,后者则用于往Socket的OutputStream 中写数据。最后,客户机程序从标准输入(如:控制台)中读取数据,并把这些数据写到服务器,在从服务器读取应答消息,然后把这些应答消息写到准输出。

  以下分别为服务器和客户机端的源程序清单。本程序在NT 4.0 网络环境(TCP/IP)下使用JDK1.1 调试通过。

[1] [2]

Java语言,基于TCP编写一个简单的Client/Server 网络应用程序。 要求实现客户向服务器传输任意一个字符串,服务器将收到的字符串变换成大写后传回客户。//客户端: package tcpClient; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.Socket; publ... 阅读详情

相关推荐

(详细总结)python爬取 163收件箱邮件内容,收件箱列表的几种方法(urllib, requests, selenium)

需求:最近有一个需求,需要将163邮箱收件箱里面的所有邮件的内容全部copy下来,整理到一个word里面,不多也就28页的邮件(不要问我为什么有这需求,不告诉你),自己手动去ctrl+ cv 的话,估计要搞吐。然后就想能不能用python的爬虫来实现,虽然过程比较苦(后期改bug改的要吐了)。但是会后还是将需求实现了。这基本也算是入门了 urllib、requests、selenium这几个py...

man_tou_22 1万+

c/s(client/server)和b/s(Browser/Server)详解

C/S和B/S概述

faoids的博客 1863

告别ZotFile!Zotero 7+百度网盘文献同步全攻略(含软链接避坑指南)

本文针对Zotero 7用户,提供了告别ZotFile插件后,利用百度网盘实现文献附件同步的完整解决方案。详细讲解了如何通过设置Zotero链接目录与创建软链接,将附件库迁移至云盘,并附有详细的避坑指南,确保数据安全与多设备同步的稳定性。

mmm90的博客 589

简单的client/server模型

所谓client/server简单来说就是客户端服务器模型,简称C/S模型,一个简单的CS模型所用到的只是一些简单的网络方面的知识,下面我以一个面向连接的CS实例来解释面向连接的主要过程: 首先我们想看一张图,来了解一下服务器端和客户端的链接过程: 首先是服务器端,服务器首先要创建套接字,然后将其绑定到本地端口,之后将其转换为链接套接字,之后就时阻塞等待客户端的连接了。在这里解释一下端口和I

zhuxinquan的博客 1万+

【从0到1实战】C# WinForm开发工业级PLC监控系统(完整串口+Modbus RTU/TCP+数据库存储+源码+避坑指南)

做C#工控上位机开发的工程师,尤其是刚入行的新人,最核心的刚需就是开发一套完整的PLC监控系统。这也是工控领域最基础、最核心、应用最广的项目类型——小到单台PLC的设备测控,大到整线的产线监控,本质都是「上位机与PLC通讯,实现数据采集、参数下发、状态监控、数据存储」。碎片化的知识点学了很多,串口会用了、Modbus协议看了、数据库也懂点,但是始终无法把这些知识点串联起来,做出一套能落地的工业级PLC监控系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1566

使用 Simulink 进行电力电子系统的小信号模型仿真

电力电子系统(Power Electronics System)包括各种功率转换器(如 DC-DC 转换器、逆变器等)。这些设备中的关键组件(如 MOSFET、IGBT、电容器、电感器等)不仅影响系统的性能,还直接关系到系统的稳定性、效率和可靠性。因此,在设计阶段进行详细的建模和仿真至关重要。小信号模型仿真的目的是通过线性化非线性系统来评估其动态特性,包括增益、相位裕度、带宽等指标。通过本教程,我们介绍了如何使用 Simulink 进行电力电子系统的小信号模型仿真。背景介绍。

xiaoheshang_123的博客 481

java多线程

新建状态 就绪状态 运行状态 阻塞状态 死亡状态1.继承Thread并重写run方法匿名内部类的形式的线程创建2.实现Runnable接口单独定义线程任务Thread类的常用方法sleep阻塞sleep方法处理异常:InterruptedException守护线程线程的优先级等级获取和设置当前线程的优先级1.synchronized关键字同步方法(成员方法上)在静态方法上,使用synchronized同步块(成员方法中)

m0_49158934的博客 250

STM32 HAL PWM (占空比) -电机软启动不到位解决

为了避免电机启动电压大造成设备损坏,或者供电不足导致重启,通常在对启动都需要一个PWM进行软启动,下面对PWM电机软启动详细介绍。

weixin_44597885的博客 868

ElasticSearch新版JavaClient使用简介

ElasticSearch在7.17版本之前使用的java客户端是Java REST Client,但是从7.17版本开始,官方将Java REST Client标记为弃用(deprecated),推荐使用新版Java Client。 本文介绍新版ElasticSearch Java Client的基本用法。 具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/master/elasticsearch-javaclient 一、概述 Elasti

QiHY的专栏 1万+

【电机应用控制】——直流有刷电机&驱动板/编码器介绍&PID算法&实操代码思路

声明:学习笔记来自正点原子B站教程,仅供学习交流!!玩具车、平衡车、无人机、印刷机、打印机、手机振动马达等电机即电动机(motor),也叫作马达,电能转化为机械能。按电源:直流、交流按用途:驱动用、控制用按运转速度:高速、低速、恒速、调速直流电机(有刷、无刷)、舵机、步进电机、伺服电机1、直流有刷电机(Brushed DC Motor,简称BDC)是内含电刷装置的将直流电能转化为机械能的电动机。例如四驱赛车四个马达操控方便、成本低、维护时换电刷即可;

weixin_51658186的博客 2万+

飞牛fnNAS搭建web版微信

摘要:本文介绍了一种通过Docker在飞牛NAS上部署微信客户端的方法,实现24小时同步微信聊天记录。具体步骤包括:1)激活飞牛NAS的Docker功能并配置镜像加速源;2)创建专用文件夹并下载docker-wechat镜像;3)设置容器参数并部署微信客户端;4)通过局域网或ZeroTier内网穿透实现远程访问。相比传统Windows/Linux方案,该方法资源占用更低,适合需要长期保存微信聊天记录的用户。

dgnankai的专栏 3343

JAVA学习----简单的Client/Server程序

前端任务和后端任务对计算资源有着根本不同的要求,例如处理器速度,内存,磁盘速度和容量以。式简单地讲就是基于企业内部网络的应用系统,大部分的应用逻辑都集中在客户端中,而一般服务。水平扩展意味着添加或删除客户。统最大的好处是不依赖企业外网环境,即无论企业是否能够上网,都不影响应用。服务器体系结构,它是一种网络体系结构,其中客户端是用户运行应用程序的。结构)结构即浏览器和服务器结构,瘦客户端应用,主要逻辑集中在服。服务器)结构,胖客户端应用,是软件系统体系结构的一种。务器端,客户端一般只包含的简单的显示逻辑。

weixin_64771061的博客 1166

[QMT和ptrade量化交易小白入门]-120、卖出深度虚值期权的三重过滤策略

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 285

Java在Client/Server网络中的应用-Java基础-Java-编程开发

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/javascript"

java专栏 315

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

计算机网络-聊天室的设计与实现

计算机网络实践一、实践设计的目的和意义二、实践设计的内容和要求三、设计用设备仪器四、实践设计的相关技术五、项目设计与实践1、设计思路2、模块描述运行结果六、结束语 一、实践设计的目的和意义 在互联网如此发达的今天,即时通信工具已经成为我们如今日常生活中必不可少的一部分。 人们对网络的依赖越来越多,越来越离不开网络,而由此产生的聊天工具也越来越多,类似有QQ、MSN、微信等,网络聊天使网络聊天系统发展的日新月异,由此产生制作了一个简单的聊天功能的网络聊天程序,由此此设计我们还可以更好的学习网络软件的编程知识。

weixin_43846708的博客 9579

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Java在Client/Server网络中的应用

 Java在Client/Server网络中的应用日照港务局--刘洋---- 随 着Java 语 言 的 日 益 流 行, 特 别 是Java 与Internet Web 的 密 切 结 合, 使 它 在 全 球 取 得 了 巨 大 的 成 功。Java 语 言 以 其 独 立 于 平 台、 面 向 对 象、 分 布 式、 多 线 索 及 完 善 的 安 全 机 制 等 特 色, 成

hem的专栏 8208

Java 在Client/Server 网络中的应用

随着Java语言的日益流行,特别是Java与Internet Web的密切结合,使它在全球取得了巨大的成功。Java语言以其独立于平台、面向对象、分布式、多线索及完善的安全机制等特色,成为现代信息系统建设中的良好的开发平台和运行环境。   一、Java网络应用模型   和Internet上的许多环境一样,完整的Java应用环境实际上也是一个客户机/服务器环境,更确切地说是浏览器/服务器

Macroli 639

基础:BS(Browser/Server)、CS(Client/Server)架构

BS是伴随着Internet技术的兴起,对C/S架构的改进,为了区别于传统的C/S 模式,特意称为B/S模式。C/S 架构是一种典型的两层架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;BS的主要特点是分布性强、维护方便、开发较简单且共享性强、总体拥有成本较低。它是瘦客户端,对大量的数据输入以及报表的应答等都需要通过浏览器与服务器进行交互,通信开销大,而且对于实现复杂的应用构造有较大的困难。所有浏览器应用都是BS架构。

snow的博客 1万+

java网络编程(Client/Server)基础知识

Java Client/Server 基础知识 Java的网络类库支持多种Internet协议,包括Telnet, FTP 和HTTP (WWW),与此相对应的Java网络类库的子类库为:     Java.net     Java.net.ftp     Java.net.www.content     Java.net.www.html     Java.n

ygy7mxy6的博客 954

在java中的servert_Java 在Client/Server 中应用

Java 在Client/Server 中应用[@more@]一、Java网络应用模型和Internet上的许多环境一样,完整的Java应用环境实际上也是一个客户机/服务器环境,更确切地说是浏览器/服务器模型(即Browser/Server模型,简称Web模型)。但与传统的客户机/服务器(C/S) 的二层结构不同,应用Java的Web模型是由三层结构组成的。传统的C/S结构通过消息传递机制,由客户...

weixin_42508313的博客 258

JAVA网络编程

网络编程java带实战案例

2301_79653429的博客 1856

在java中的servert_Java 在Client/Server 网络中的应用

一、Java网络应用模型和Internet上的许多环境一样,完整的Java应用环境实际上也是一个客户机/服务器环境,更确切地说是浏览器/服务器模型(即Browser/Server模型,简称Web模型)。但与传统的客户机/服务器(C/S) 的二层结构不同,应用Java的Web模型是由三层结构组成的。传统的C/S结构通过消息传递机制,由客户端发出请求给服务器,服务器进行相应处理后经传递机制送回客户端。...

weixin_39907596的博客 125

c/s Client/Server与B/S Browser/Server的区别与联系及优缺点

[转]C/S Client/Server与B/S Browser/Server的区别与联系及优缺点当今世界科学技术飞速发展,尤其以通信、计算机、网络为代表的互联网技术更是日新月异,令人眼花燎乱,目不睱接。 由于计算机互联网在政治、经济、生活等各个领域的发展、运用以及网络的迅速普及和全社会对网络的依赖程度,计算机网络已经成为国家的经济基础和命脉,成为社会和经济发展强大动力,其地位越来越重要。

娟子博客专栏 欢迎您的加入 为我们的IT之路共同努力 1万+

Java Socket 简单的Client/Server程序

一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。 而TCP层则提供面向应用的可靠

afa的专栏 4万+
上一篇: 对象引用是怎样严重影响垃圾收集器的-Java基础-Java-编程开发
下一篇: Java基础-如何编写一个JAVA的队列类-Java基础-Java-编程开发
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值