客户端

ClientTest类:负责和服务器进行通信,建立两个线程,分别发送和接收客户端发出的命令和接收服务器端发出的命令。

ClientTest3.java

package game;import java.io.*;
import java.net.*;
public class ClientTest3{  public static void main(String[] args){  try{  //链接sever端  Socket s1 = new Socket("127.0.0.1",10004);  System.out.println("Link in succeed...");System.out.println("Term 1:");//实例化输入流  InputStream is = s1.getInputStream();  DataInputStream dis = new DataInputStream(is);  //实例化输出流  OutputStream os = s1.getOutputStream();  DataOutputStream dos = new DataOutputStream(os);  //实例化两个进程  Thread mcr = new MyClientReader(dis);  Thread mcw = new MyClientWriter(dos);  //启动两个进程  mcr.start();  mcw.start();  //捕获异常  }catch(SocketException e){  System.out.println(e);  }catch(IOException e){  System.out.println(e);  }     }
}
//创建一个进程用来进行接收读取数据
class MyClientReader extends Thread{  private DataInputStream dis;  public MyClientReader(DataInputStream dis){  this.dis = dis;  }  @Override  public void run(){  String msg;  try{  while(true){  msg = dis.readUTF();  System.out.println(msg);  if(msg.equals("bye")){  System.out.println("对方下线,程序退出");  System.exit(0);  }  }  }catch(IOException e){  System.out.println(e);  }  }
}
//创建一个进程用来写入并发送数据
class MyClientWriter extends Thread{  private DataOutputStream dos;  public MyClientWriter(DataOutputStream dos){  this.dos = dos;  }  @Override  public void run(){  InputStreamReader isr = new InputStreamReader(System.in);  BufferedReader br = new BufferedReader(isr);  String msg;  try{  while(true){  msg = br.readLine();  dos.writeUTF(msg);  if(msg.equals("bye")){  System.out.println("自己下线,程序退出");  System.exit(0);  }  }   }catch(IOException e){  System.out.println(e);  }  }
}

Monster Card Game的设计与实现之客户端篇相关推荐

  1. SD/MicroSD CARD PCB布局布线设计指南

    SD/MicroSD CARD PCB布局布线设计指南 本文主要讲解SD CARD接口的PCB设计,通过理论分析以及案例的解剖,给大家呈现有条有理的观点,希望大家看了此文章能轻松的应对各种SD CAR ...

  2. 《重构-改善既有代码设计》读书笔记-重构篇

    2019独角兽企业重金招聘Python工程师标准>>> 重构定义 名词 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本.--<重 ...

  3. 【系统架构设计师】软考高级职称,一次通过,倾尽所有,看完这篇就够了,论软件架构设计的重要性、本篇论文“未通过考试”,供分析参考

    [系统架构设计师]软考高级职称,一次通过,倾尽所有,看完这篇就够了,学习方法和技巧这里全都有. 论软件架构设计的重要性.本篇论文未通过考试(不合格),供分析参考. 目录 摘要 正文 结尾 摘要 201 ...

  4. 企业管理系统前后端分离架构设计 系列一 权限模型篇

    ACL(Access Control List)(访问控制列表) DAC(Discretionary Access Control)(自主访问控制) MAC(Mandatory Access Cont ...

  5. 走向.NET架构设计—第三章—分层设计,初涉架构(后篇)

    走向.NET架构设计-第三章-分层设计,初涉架构(后篇) 前言:本篇主要是接着前两篇文章继续讲述! 本篇的议题如下: 4. 数据访问层设计 5. 显示层设计 6. UI层设计   4.  数据访问层设 ...

  6. 基于ZigBee和STM32的智能家居控制系统的设计与实现(五)--终结篇

    基于ZigBee和STM32的智能家居控制系统的设计与实现(五)–终结篇 说明 首先祝贺自己顺利的完成了毕业答辩工作,想起整个过程还是挺让自己感动的.最后还被评为优秀毕业设计,虽然并没有什么luan用 ...

  7. c语言拍飞虫课程设计报告,c语言课程设计_拍飞虫提高篇.doc

    c语言课程设计_拍飞虫提高篇 C语言课程设计二 拍飞虫 一.游戏介绍 拍飞虫游戏是玩家用鼠标控制拍子,拍飞虫.飞虫每次从不同的位置.以不同的速度飞来飞去.玩家拍的飞虫越多,分数越高. 二.实验目的 综 ...

  8. 太空战机c语言实验报告,c语言课程设计_太空战机提高篇.doc

    c语言课程设计_太空战机提高篇 C语言课程设计--太空战机 一.游戏介绍 太空战机是玩家用键盘控制战机移动并发射子弹,消灭敌方的战机.敌方战机从右到左移动,同时上下浮动.同时隔一定的时间发射子弹,我方 ...

  9. 简述移动端IM开发的那些坑:架构设计、通信协议和客户端

    1.前言 有过移动端开发经历的开发者都深有体会:移动端IM的开发,与传统PC端IM有很大的不同,尤其无线网络的不可靠性.移动端硬件设备资源的有限性等问题,导致一个完整的移动端IM架构设计和实现都充满着 ...

最新文章

  1. 程序员跳槽全攻略——读书笔记
  2. “解决方案资源管理器”中不能自动选择正在编辑的文档
  3. c++OpenCV操作mp4
  4. Pair Programming 1 (Casual Game) 曹竹 杨牧 贪吃蛇游戏扩展 Blog Report
  5. SAMBA服务和FTP服务讲解(week3_day1)--技术流ken
  6. 学业水平考试网登录_江西学业水平考试成绩查询登录入口
  7. 电脑知识:磁盘分区相关知识笔记!
  8. stl vector 函数_vector :: front()函数以及C ++ STL中的示例
  9. cpu 保存模式的内存访问向下兼容原理
  10. ASP.NET+MVC自学材料
  11. Ubuntu安装usb库
  12. 苹果Mac全新的文件启动方式:Hapigo
  13. 【解决方案】SkeyeVSS石油油田钻井无线智能视频监控系统解决方案
  14. 淘宝的安全登录怎么做的
  15. vbs教程《变量类型》
  16. android 分辨率 720 1184 适配,墨迹天气 Android版最新!趋势界面可以横向滑动切换城市!...
  17. 计算机鼠标能用键盘不能用,电脑键盘鼠标都不能用了,怎么回事?
  18. 水哥王昱珩的教育语录:输不丢人,怕输才丢人
  19. 16k Star!一个开源的命令行视频播放器
  20. Papi酱: 左手奶瓶右手尿布× 左手papitube右手娱乐圈√

热门文章

  1. Excel公式-提取字符串中首次出现的数值
  2. OMA DRM原理的研究及实现
  3. HEVC码率控制资料整理
  4. python培训价格多少呢-python培训得花多少钱呢?
  5. python 解析yaml文件
  6. python医学图像可视化_可视化医学图像CT
  7. Java(9)接口练习 运动员和教练
  8. Spark 内存管理堆内和堆外内存规划_大数据培训
  9. Java简单练手---输出当前时间的方法
  10. 11.js的new操作符做了哪些事情?