热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java通讯程序例子_Java Socket通讯例子

服务端:packagecn.itwoody.net;importjava.io.BufferedReader;importjava.io.InputStream;im

服务端&#xff1a; package cn.itwoody.net; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; public class MyServer {       public static void main(String args[]) {             ServerSocket server;             Socket socket;             String s;             InputStream Is;             OutputStream Os;             PrintStream PS;             try {                   // 在端口4321注册服务                   server &#61; new ServerSocket(4321);                   socket &#61; server.accept();// 监听窗口,等待连接                   System.out.println("server ok");                   System.out.println("************************************************");                   // 获得对应Socket的输入/输出流                   Is &#61; socket.getInputStream();                   Os &#61; socket.getOutputStream();                   // 建立数据流                   BufferedReader clientInput&#61;new BufferedReader(new InputStreamReader(Is));                   PS &#61; new PrintStream(Os);                   //DataInputStream in &#61; new DataInputStream(System.in);                   BufferedReader serverInput&#61;new BufferedReader(new InputStreamReader(System.in));                   while (true) {                         System.out.println("");                         System.out.println("please wait client&#39;s message...");                         System.out.println("");                         s &#61; clientInput.readLine(); // 读入从client传来的字符串                         System.out.println("Client Say:" &#43; s); // 打印字符串                         if (s.trim().equals("Bye"))                               break; // 如果是"BYE",就退出                         System.out.print("You Say:");                         s &#61; serverInput.readLine(); // 读取用户输入的字符串                         PS.println(s); // 将读取得字符串传给client                         if (s.trim().equals("Bye"))                               break; // 如果是"BYE",就退出                   }                   // 关闭连接                   //DIS.close(); // 关闭数据输入流                   PS.close(); // 关闭数据输出流                   Is.close(); // 关闭输入流                   Os.close(); // 关闭输出流                   socket.close(); // 关闭sockey             } catch (Exception e) {                   System.out.println("Error:" &#43; e);             }       } } 客服端&#xff1a; package cn.itwoody.net; import java.net.*; import java.io.*; public class MyClient {       public static void main(String args[]) {             if (args.length <1) { // 判断命令加参数没有                   System.out.println("You forget the name of the server!");                   System.exit(1); // 如果没加参数就退出             }             Socket socket;             String s &#61; "yxfsoft&#64;263.net";             InputStream Is;             OutputStream Os;             PrintStream PS;             try {                   // 向主机名为args[0]的服务器申请连接                   // 注意端口号要与服务器保持一致:4321                   socket &#61; new Socket(args[0], 4321);                   System.out.println("Client ok");                   System.out.println("************************************************");                   // 获得对应socket的输入/输出流                   Is &#61; socket.getInputStream();                   Os &#61; socket.getOutputStream();                   // 建立数据流                   //serverInput &#61; new DataInputStream(Is);                   BufferedReader serverInput&#61;new BufferedReader(new InputStreamReader(Is));                   PS &#61; new PrintStream(Os);                   //DataInputStream clientInput &#61; new DataInputStream(System.in);                   BufferedReader clientInput&#61;new BufferedReader(new InputStreamReader(System.in));                   while (true) {                         System.out.print("You Say:");                         s &#61; clientInput.readLine(); // 读取用户输入的字符串                         PS.println(s); // 将读取得字符串传给server                         if (s.trim().equals("Bye"))                               break; // 如果是"BYE",就退出                         else {                               System.out.println("");                               System.out.println("please wait server&#39;s message...");                               System.out.println("");                         }                         s &#61; serverInput.readLine(); // 从服务器获得字符串                         System.out.println("Server Say:" &#43; s); // 打印字符串                         if (s.trim().equals("Bye"))                               break; // 如果是"BYE",就退出                   }                   // 关闭连接                   serverInput.close(); // 关闭数据输入流                   PS.close(); // 关闭数据输出流                   Is.close(); // 关闭输入流                   Os.close(); // 关闭输出流                   socket.close(); // 关闭socket             } catch (Exception e) {                   System.out.println("Error:" &#43; e);             }       } }



推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
author-avatar
hh呢喃_845
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有