当前位置:首页 > CN2资讯 > 正文内容

java服务器 长任务 java服务器通信

15小时前CN2资讯


Java实现服务器与客户端通信

基础要点

我们的需求是用Java实现服务器与客户端通信,在Java类库中有相应使用简单的类库,了解基本原理不难实现服务器和客户端通信

1、编程之前我们要对TCP/IP协议有一定的了解,知道Socket套接字的基本用法。

2、关于数据的传输方式,我们要掌握Java中IO流的使用,服务器发出的输出流的所有信息都会成为客户端的输入流,同时所有客户端的所有输出流都会包含在服务器的输入流中。

3、一般服务器绝不可能只为一个客户端服务,当存在很多客户端的时候,需要为每个客户端的链接建立独立的线程,使得客户端之间不会干扰,独立运行。

线程的控制实现方法有两种:

(1).自定义线程类继承Thread,并重现run()方法;

(2).自定义一个普通类,实现Runnable接口。

在以上要点的基础上,尝试编程

代码示例

//服务器代码模拟 package com.DrawServer; import java.io.IOException; public class DrawServer { public void setServer(int port){ try { //1、使用socket套接字建立服务器 .ServerSocket ss = new .ServerSocket(port); System.out.println("服务器建立成功~! "+port); //2、当客户机接入后,一直待机等待数据输入输出 .Socket client = ss.accept(); System.out.println("有个客户机进来了。。。。"); //3、建立输入输出流 java.io.InputStream ins = client.getInputStream(); java.io.OutputStream ous = client.getOutputStream(); //尝试给客户端输出一句话 String s = "Who are you ?"; byte[] data = s.getBytes(); ous.write(data); //尝试读取输入的数据 int t = ins.read(); while(t!='a'){ System.out.println("读到的一个字节是 "+ t); t = ins.read(); } //关闭服务器 client.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args){ DrawServer ds = new DrawServer(); ds.setServer(9998); } }//客户端代码模拟 package com.Client; import java.io.IOException; import .UnknownHostException; public class DrawClient { public void conn2Server(){ try { //1、建立客户端 .Socket client = new .Socket("127.0.0.1",9998); System.out.println("连接成功!"); //2、建立输入输出流 java.io.InputStream insInputStream = client.getInputStream(); java.io.OutputStream out = client.getOutputStream(); //读取数据并输出一句话 while(true){ int t = insInputStream.read(); System.out.println("读取的是 "+ t); String msgString = "bccdef"; byte[] data = msgString.getBytes(); out.write(data); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args){ DrawClient dsClient = new DrawClient(); dsClient.conn2Server(); } }

除了运行代码构建客户端以外,我们还可以cmd窗口通过端口映射连接到本地端口,也可以得到服务器收发而来的信息,如果我们将多线程运用到通信中后,我们可以进一步打开多个窗口,而且同时运行,互不干扰。


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/23629.html

    分享给朋友:

    “java服务器 长任务 java服务器通信” 的相关文章

    通过公钥生成私钥:全面解析加密技术及其应用

    公钥和私钥的基本概念 公钥和私钥是密码学中的一对密钥,它们共同构成了非对称加密系统的基础。公钥是公开的,可以自由分享给任何人,而私钥则是保密的,只有密钥的持有者才能访问。这对密钥的特殊之处在于,它们之间存在着一种数学关系,使得用公钥加密的信息只能用对应的私钥解密,反之亦然。这种机制确保了信息在传输过...

    轻松注册RackNerd账号:快速指南与优惠攻略

    RackNerd是一家成立于2017年的国外主机商,专注于为用户提供高质量的虚拟主机、VPS主机、独立服务器和服务器托管等服务。从成立之初,RackNerd就致力于为全球用户提供稳定、高效的主机解决方案,凭借其优质的服务和灵活的配置选项,迅速在行业内赢得了良好的口碑。 RackNerd的服务类型非常...

    如何使用Luminati(Bright Data)代理服务获取数据与保护隐私

    Luminati(Bright Data)概述不仅体现了其代理服务的强大与全面,还带领我们了解这一行业的演变与发展。作为全球最大的住宅代理服务提供商,Luminati(现被称为Bright Data)凭借其超过720万个真实用户IP,突显了自身在代理市场中的领先地位。您可能会想,为什么会有如此多的I...

    搬瓦工VPS服务使用指南与优惠码获取技巧

    搬瓦工(BandwagonHost)是一家成立于2004年的网络服务公司,隶属于加拿大IT7。这家公司的崛起与它提供的超低价格VPS服务密不可分,尤其是在中国市场,搬瓦工已经积累了大量的用户和知名度。随着时间的推移,搬瓦工不仅没有止步于低价策略,而是逐渐向中高端VPS市场发展,推出了诸如CN2 GI...

    甲骨文云免费IPv6服务详解:轻松配置与应用技巧

    甲骨文云,作为一个综合性的云服务提供商,正迅速崛起于众多的云技术平台之中。它不仅拥有强大的数据处理能力,还提供了多种免费的云服务选项,让个人和企业都能以更低的成本探索并使用云计算的强大功能。首先,我对甲骨文云的快速适应能力和多种灵活服务感到印象深刻,尤其是它的免费套餐项目,吸引了不少用户前来试用。...

    咸鱼云:高性价比VPS服务解决您的在线需求

    咸鱼云概述 在互联网服务日益发展的今天,咸鱼云(SaltyFish)作为一家新兴的主机商家,自2019年成立以来,逐渐在市场中占据了一席之地。它的出现让许多寻找高性价比VPS服务的用户有了新的选择。咸鱼云专注于基于KVM架构的国外VPS服务,凭借较为稳定的性能和实惠的价格,吸引了不少追求性价比的客户...