首页 >> 滤袋

一种基于Java的网络通信程序T型螺栓

文章来源:永丰五金网  |  2022-06-26

一种基于Java的网络通信程序

一种基于Java的网络通信程序 2011年12月09日 来源: 0 引 言 在信息化社会发展过程中,计算机网络应用逐渐渗透到各个工程技术领域和社会生活的方方面面。资源共享、文件传输等技术在计算机网络应用中显得尤为重要。浏览器将FTP集成其中之后,用户可轻易利用浏览器通过超链接下载服务器所开放的任意文件,以达到资源共享的目的。FTP不仅允许从远程计算机上获取、下载文件;另一方面,也可将文件从本地机拷贝传输到远程计算机。 Java是一门适合于分布式计算环境、尤其是Inter-net程序设计的语言。Java在计算机网络应用中可以完成资源共享、文件传输这一重要任务。Java不仅具有很好的安全性和可移植性,还为Internet编程提供了丰富的网络类库支持。

1 流式网络通信机制 流式Socket所完成的通信是一种基于连接的通信,即在通信开始之前先由通信双方确认身份并建立一条专用的虚拟连接通道,然后它们通过这条通道传输数据信息进行通信,当通信结束时再将原先所建立的连接拆除。Server端首先在某端口提供一个监听Client请求的监听服务并处于监听状态,当Client端向该Server端口提出服务请求时,Server端和Client端就建立了一个连接和一条传输数据的通道;当通道结束时,这个连接通道将被同时拆除。 连接的建立和拆除增加了程序的复杂性,同时在通信过程中始终保持连接也会占用系统的内存等资源,所以只适用于集中、连续的通信。 ServerSocket类和Socket类是用Java实现流式Socket通信工具。创建一个ServerSocket对象就创建了一个监听服务,创建一个Socket对象就建立了一个Client与Server间的连接。1.1 ServerSocket类 创建一个ServerSocket类,同时在运行该语句的计算机的指定端口处建立一个监听服务,如: ServerSocket MyListener=new ServerSocket(600); 这里指定提供监听服务的端口是600,一台计算机可以同时提供多个服务,这些不同的服务之间通过端口号来区别,不同的端口号上提供不同的服务。为了随时监听可能的Client请求,执行如下的语句: Socket LinkSocket=MyListener.accept(); 该语句调用了ServerSocket对象的accept()方法,这个方法的执行将使Server端的程序处于等待状态,程序将一直阻塞直到捕捉到一个来自Client端的请求,并返回一个用于与该Client通信的Socket对象Link-Socket。此后Server程序只要向这个Socket对象读写数据,就可以实现向远端的Client读写数据。结束监听时,关闭ServerSocket对象: Mylistener.close();1.2 Socket类 当Client程序需要从Server端获取信息及其他服务时,应创建一个Socket对象: Socket MySocket=new Socket(“ServerComput-erName”,600); Socket类的构造函数有两个参数,第一个参数是欲连接到的Server计算机的主机地址,第二个参数是该Server机上提供服务的端口号。 Socket对象建立成功之后,就可以在Client和Server之间建立一个连接,并通过这个连接在两个端点之间传递数据。利用Socket类的方法getOutput-Stream()和getInputStream()分别获得向Socket读写数据的输入/输出流,最后将从Server端读取的数据重新返还到Server端。 当Server和Client端的通信结束时,可以调用Socket类的close()方法关闭Socket,拆除连接。

2 服务器端程序设计 在服务器端,利用ServerSocket类的构造函数ServerSocket(int port)创建一个ServerSocket类的对象,port参数传递端口,这个端口就是服务器监听连接请求的端口,如果在这时出现错误将抛出IOException异常对象,否则将创建ServerSocket对象并开始准备接收连接请求。 服务程序从调用ServerSocket的accept()方法开始,直到连接建立。在建立连接后,accept()返回一个最近创建的Socket对象,该Socket对象绑定了客户程序的IP地址或端口号。 基于上述原理,服务器端的通信程序如下:

上述程序中,使用了多线程机制。JavaServer和service对象本身都是一个线程。JavaServer对象首先创建一个ServerSocket对象,并启动线程的运行。它的run()方法用于监听来自客户机的连接。每当有一个新的客户机连接时,ServerSocket就会创建一个新的Socket类实例,并创建一个service对象,同时启动这个对象的线程。每个service对象用于完成与客户机通信、提供服务的任务。这样服务器可以同时与多个客户机连接,同时为多个客户机提供服务。当从标准输入中接收到quit字符串时,服务器退出运行。

3 客户端程序设计 当客户程序需要与服务器程序通信时,需在客户机创建一个Socket对象。Socket类有构造函数Socket(InetAddress addr,int port)和Socket(String host,intport),两个构造函数都创建了一个基于Socket的连接服务器端流套接字的流套接字。对于第一个InetAd-dress子类对象通过addr参数获得服务器主机的IP地址,对于第二个函数host参数包被分配到InetAddress对象中,如果没有IP地址与host参数相一致,那么将抛出UnknownHostException异常对象。两个函数都通过参数port获得服务器的端口号。假设已经建立连接了,网络API将在客户端基于Socket的流套接字中捆绑客户程序的IP地址和任意一个端口号,否则两个函数都会抛出一个IOException对象。 如果创建了一个Socket对象,那么它可通过get-InputStream()方法从服务程序获得输入流读传送来的信息,也可通过调用getOutputStream()方法获得输出流来发送消息。在读写活动完成之后,客户程序调用close()方法关闭流和流套接字。 在下面客户机端的通信程序中,首先创建一个Socket对象,用于与服务器通信,它从标准输入中读取数据,把这些数据传给服务器,再从服务器读取应答信息,然后把这些应答信息写到标准输出。当读取了5行的数据后,客户机程序将退出运行。

4 结 语 采用Java语言编写网络通信程序非常简捷,缘于Java语言本身就是一门面向对象的网络编程语言,提供了多个可用于访问标准Internet协议的类库,从而支持多种Internet协议,包括:FTP,HTTP,NNTP和WWW等,极大地简化了网络程序设计。事实上,用Java语言还可以方便地编写出功能完善的其他应用程序。

常德治妇科炎症医院哪家好

滨州白癜风医院哪个好

股骨干骨折的症状和表现有哪些

治妇科疾病医院哪个好

杭州四维彩超

南京小儿多动症医院

友情链接
脱毛蜡纸怎么用 阀门紧固件检测设备 兰州治男科专科医院哪家好 深度健康睡眠 爱依瑞斯沙发 WAW-1000E万能试验机 天津穗宝床垫 扬州线圈网带厂 气血不足脱发白发怎么调理 脑梗是什么原因引起的 腰肌劳损怎么形成的 皮肤过敏瘙痒有什么禁忌 心情烦躁骨质疏松是怎么回事 长期熬夜男性性功能障碍怎么办 锁阳固精丸吃多久有效果呢 电子万能试验机 服装订做 中老年人如何预防中风 糖尿病早期应该注意哪些方面 孩子上火引起的小便黄可以喝金银花露吗 小葵花小儿氨酚黄那敏颗粒治疗咳嗽吗 膝关节屈伸不利能用中成药缓解吗 真菌灰指甲管用什么成分的药 小孩半夜肚子疼怎么办 孩子积食了怎样消食 开胸手术后左侧疼痛用什么外用药 口腔溃疡是不是慢性疾病 神经衰弱易疲劳有哪些缓解办法 护肝片的功效与作用 昆明白癜风医院 药品库 输送网带厂家 离婚律师热线 上海离婚官司律师费 同仁堂再造丸饭前吃还是饭后吃 依兰琳卡 新冠发烧怎么办 治灰指甲用亮甲还是修正 找医院 生活中引起勃起功能障碍的常见原因 阿托伐他汀钙片与瑞舒伐他汀区别 呼伦贝尔治疗肛肠专科医院哪家好 离婚咨询 眉山口腔专科医院哪家好 擅长离婚律师事务所 宣城眼科医院哪家好 离婚起诉 固原治疗肿瘤专科医院 玉溪白癜风 薇婷可以脱腋毛吗 房屋拆迁 Outdoor Lighting 爱修维修 武汉工作服定制厂家 Metal Tmpact Tester Casting Forging 寻医问药 杭州精神科心理科哪家医院治疗好 重庆儿科疾病专科医院排行榜 新疆治皮肤病哪家医院好 合肥好的精神科医院 四川风湿病专科医院排名 逸觅网 Suppliers In China 小孩子拉肚子吃什么药 孩子退烧之后又反复可以用小儿柴桂退热颗粒吗 小儿肺热咳嗽怎么治 美沙拉嗪肠溶片的适应症有哪些