Monster Card Game的设计与实现之客户端篇
客户端
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的设计与实现之客户端篇相关推荐
- SD/MicroSD CARD PCB布局布线设计指南
SD/MicroSD CARD PCB布局布线设计指南 本文主要讲解SD CARD接口的PCB设计,通过理论分析以及案例的解剖,给大家呈现有条有理的观点,希望大家看了此文章能轻松的应对各种SD CAR ...
- 《重构-改善既有代码设计》读书笔记-重构篇
2019独角兽企业重金招聘Python工程师标准>>> 重构定义 名词 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本.--<重 ...
- 【系统架构设计师】软考高级职称,一次通过,倾尽所有,看完这篇就够了,论软件架构设计的重要性、本篇论文“未通过考试”,供分析参考
[系统架构设计师]软考高级职称,一次通过,倾尽所有,看完这篇就够了,学习方法和技巧这里全都有. 论软件架构设计的重要性.本篇论文未通过考试(不合格),供分析参考. 目录 摘要 正文 结尾 摘要 201 ...
- 企业管理系统前后端分离架构设计 系列一 权限模型篇
ACL(Access Control List)(访问控制列表) DAC(Discretionary Access Control)(自主访问控制) MAC(Mandatory Access Cont ...
- 走向.NET架构设计—第三章—分层设计,初涉架构(后篇)
走向.NET架构设计-第三章-分层设计,初涉架构(后篇) 前言:本篇主要是接着前两篇文章继续讲述! 本篇的议题如下: 4. 数据访问层设计 5. 显示层设计 6. UI层设计 4. 数据访问层设 ...
- 基于ZigBee和STM32的智能家居控制系统的设计与实现(五)--终结篇
基于ZigBee和STM32的智能家居控制系统的设计与实现(五)–终结篇 说明 首先祝贺自己顺利的完成了毕业答辩工作,想起整个过程还是挺让自己感动的.最后还被评为优秀毕业设计,虽然并没有什么luan用 ...
- c语言拍飞虫课程设计报告,c语言课程设计_拍飞虫提高篇.doc
c语言课程设计_拍飞虫提高篇 C语言课程设计二 拍飞虫 一.游戏介绍 拍飞虫游戏是玩家用鼠标控制拍子,拍飞虫.飞虫每次从不同的位置.以不同的速度飞来飞去.玩家拍的飞虫越多,分数越高. 二.实验目的 综 ...
- 太空战机c语言实验报告,c语言课程设计_太空战机提高篇.doc
c语言课程设计_太空战机提高篇 C语言课程设计--太空战机 一.游戏介绍 太空战机是玩家用键盘控制战机移动并发射子弹,消灭敌方的战机.敌方战机从右到左移动,同时上下浮动.同时隔一定的时间发射子弹,我方 ...
- 简述移动端IM开发的那些坑:架构设计、通信协议和客户端
1.前言 有过移动端开发经历的开发者都深有体会:移动端IM的开发,与传统PC端IM有很大的不同,尤其无线网络的不可靠性.移动端硬件设备资源的有限性等问题,导致一个完整的移动端IM架构设计和实现都充满着 ...
最新文章
- 程序员跳槽全攻略——读书笔记
- “解决方案资源管理器”中不能自动选择正在编辑的文档
- c++OpenCV操作mp4
- Pair Programming 1 (Casual Game) 曹竹 杨牧 贪吃蛇游戏扩展 Blog Report
- SAMBA服务和FTP服务讲解(week3_day1)--技术流ken
- 学业水平考试网登录_江西学业水平考试成绩查询登录入口
- 电脑知识:磁盘分区相关知识笔记!
- stl vector 函数_vector :: front()函数以及C ++ STL中的示例
- cpu 保存模式的内存访问向下兼容原理
- ASP.NET+MVC自学材料
- Ubuntu安装usb库
- 苹果Mac全新的文件启动方式:Hapigo
- 【解决方案】SkeyeVSS石油油田钻井无线智能视频监控系统解决方案
- 淘宝的安全登录怎么做的
- vbs教程《变量类型》
- android 分辨率 720 1184 适配,墨迹天气 Android版最新!趋势界面可以横向滑动切换城市!...
- 计算机鼠标能用键盘不能用,电脑键盘鼠标都不能用了,怎么回事?
- 水哥王昱珩的教育语录:输不丢人,怕输才丢人
- 16k Star!一个开源的命令行视频播放器
- Papi酱: 左手奶瓶右手尿布× 左手papitube右手娱乐圈√