java 斗地主桌号_求用java编写的斗地主程序就,要求可以在局域网内实现两桌以上同时玩。...
展开全部
客户端:
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
public class ChatClient extends Frame
{
TextArea ta = new TextArea();
TextField tf = new TextField();
public void launchFrame() throws Exception
{
this.add(ta, BorderLayout.CENTER);
this.add(tf, BorderLayout.SOUTH);
tf.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
try {
String sSend = tf.getText();
if(sSend.trim().length() == 0) return;
ChatClient.this.send(sSend);
tf.setText("");
ta.append(sSend + "\n");
}
catch (Exception e)
}
}
);
this.addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
setBounds(300,300,300,400);
setVisible(true);
tf.requestFocus();
}
Socket s = null;
public ChatClient() throws Exception
{
s = new Socket("127.0.0.1", 8888);
launchFrame();
(new Thread(new ReceiveThread())).start();
}
public void send(String str) throws Exception
{
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.writeUTF(str);
}
public void disconnect() throws Exception
{
s.close();
}
public static void main(String[] args) throws Exception
{
BufferedReader br = new BufferedReader (
new InputStreamReader(System.in));
ChatClient cc = new ChatClient();
String str = br.readLine();
while(str !e68a843231313335323631343130323136353331333264623165= null && str.length() != 0)
{
cc.send(str);
str = br.readLine();
}
cc.disconnect();
}
class ReceiveThread implements Runnable
{
public void run()
{
if(s == null) return;
try {
DataInputStream dis = new DataInputStream(s.getInputStream());
String str = dis.readUTF();
while (str != null && str.length() != 0)
{
//System.out.println(str);
ChatClient.this.ta.append(str + "\n");
str = dis.readUTF();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
服务器:
import java.net.*;
import java.util.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
public class ChatServer extends Frame
{
TextArea ta = new TextArea();
public void launchFrame()
{
add(ta, BorderLayout.CENTER);
setBounds(0,0,200,300);
this.addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
setVisible(true);
}
ServerSocket server = null;
Collection cClient = new ArrayList();
public ChatServer(int port) throws Exception
{
server = new ServerSocket(port);
launchFrame();
}
public void startServer() throws Exception
{
while(true)
{
Socket s = server.accept();
cClient.add( new ClientConn(s) );
ta.append("NEW-CLIENT " + s.getInetAddress() + ":" + s.getPort());
ta.append("\n" + "CLIENTS-COUNT: " + cClient.size() + "\n\n");
}
}
class ClientConn implements Runnable
{
Socket s = null;
public ClientConn(Socket s)
{
this.s = s;
(new Thread(this)).start();
}
public void send(String str) throws IOException
{
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.writeUTF(str);
}
public void dispose()
{
try {
if (s != null) s.close();
cClient.remove(this);
ta.append("A client out! \n");
ta.append("CLIENT-COUNT: " + cClient.size() + "\n\n");
}
catch (Exception e)
{
e.printStackTrace();
}
}
public void run()
{
try {
DataInputStream dis = new DataInputStream(s.getInputStream());
String str = dis.readUTF();
while(str != null && str.length() !=0)
{
System.out.println(str);
for(Iterator it = cClient.iterator(); it.hasNext(); )
{
ClientConn cc = (ClientConn)it.next();
if(this != cc)
{
cc.send(str);
}
}
str = dis.readUTF();
//send(str);
}
this.dispose();
}
catch (Exception e)
{
System.out.println("client quit");
this.dispose();
}
}
}
public static void main(String[] args) throws Exception
{
ChatServer cs = new ChatServer(8888);
cs.startServer();
}
}
(来自BJSXT)
本回答由提问者推荐
已赞过
已踩过<
你对这个回答的评价是?
评论
收起
java 斗地主桌号_求用java编写的斗地主程序就,要求可以在局域网内实现两桌以上同时玩。...相关推荐
- java火柴游戏_求一个“JAVA拿火柴小游戏”的程序要求如下!!!!!!!跪求!!!!!...
展开全部 按照题目要求,人拿完火柴后计62616964757a686964616fe58685e5aeb931333332643930算机自动拿火柴,判断胜利者.鼠标点击ok或者键盘按enter键即可 ...
- 单机版斗地主游戏源代码,纯JS编写的斗地主单机版小游戏源代码
单机版斗地主游戏源代码,纯JS编写的斗地主单机版小游戏源代码,下载游戏后,直接运行index.html即可. 完整代码下载地址:单机版斗地主游戏源代码 index.html <!DOCTYPE ...
- 编写一个布雷程序,在一个10*10的范围内随机布5-10颗雷,显示结果
//编写一个布雷程序,在一个10*10的范围内随机布5-10颗雷,显示结果 //假设有雷为9,无雷为0,附近有雷则显示有雷的数量 #include"stdio.h" #includ ...
- java 安装包_手机也可以编写Java程序代码?这些黑科技你值得拥有!
你是不是也很好奇酷炫的程序是如何运行,代码是如何实现的? 接下来就是见证奇迹的时刻,教你如何利用手机端写Java,详细步骤已上线! 第一步 在应用市场或者浏览器搜索AIDE,点击安装/下载. 第二步 ...
- 推荐的Java项目_求点Java项目推荐?
JAVA优秀的开源项目 Java的学习路线:自学java,学多久可以自己找到工作?_didiao java的博客-CSDN博客blog.csdn.net啊强啊:java一条龙学习(附练习题,视频,项 ...
- java 异常机制_深入理解Java异常处理机制
一.引子 try-catch-finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的"教训"告诉我,这个东西可不是想象中 ...
- java 02-cf_cf活动如何设置java环境变量_如何设置java环境变量
cf助手怎么连接wifi_连接无线网设置 对于刚刚学习java的win7用户来说,首先要学会安装jdk和配置java环境变量,这是学习java的唯一途径,否则编写的代码运行时会出现bug.关于这一点, ...
- c++和java哪个难_前端和Java开发哪个难?哪个学习容易一点?
首先我说一下Java和web两者的区别: Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. ...
- java for 死循环_简单的java死循环 java中的死循环问题
java中死循环是什么意思 循环一次不再循环是死循环java中死循环是什么意思 循环一次不再循环是死循环 还是不断循环才是死JAVA中死循环的意思是,不停地循环,不会终止,例如: for (int i ...
最新文章
- 浪潮小机装oracle数据库,浪潮ERP系统oracle双机热备安装文档 | 浪潮888博客
- Spring Cloud Feign的文件上传实现
- 建立低成本的安全运营中心
- MySQL count函数的具体介绍
- IT领域中混合云管理工具扮演什么角色?
- java 有穷自动机_Java实现雪花算法(snowflake)
- C/C++头文件一览表
- PHP调整图片饱和度,window_Win10系统电脑屏幕的饱和度如何调整?,什么是饱和度?
对电脑来说 - phpStudy...
- win10多合一原版系统_手把手教你制作官方原版的WIN10系统安装盘
- [VNC] 远程连接 Xfce4 桌面 tab 键不能自动补全
- oracle下查询的sql已经超出IIS响应时间
- Qt_编辑器配色方案
- Delphi 2010
- 路径规划与优化学习系列(一)---路径规划算法
- VS2010闪退的问题
- 计算机专业英语词汇缩写CIA,CIA英文词汇缩写
- photoshop ps2022软件下载
- 用Racket做一个拼图游戏-01
- [YOLOv7]基于YOLOv7的反光衣检测系统(源码&部署教程&数据集)
- Calendar根据日期获取年份和周、当前周的所有日期
热门文章
- Report_报表中Ref Cursor数据源的概念和用法(案例)
- Rexsee API介绍:Android传感器系列之 - 磁场传感器Magnetic Field源码
- java基础学习整理(一)
- 混合云计算应用中小企业市场前景看好
- MSTP和MPLS专线有什么区别?——Vecloud
- 条件随机场CRF HMM,MEMM的区别
- Vue使用watch监听一个对象中的属性
- springmvc的初始化参数绑定
- GIF动画,菊花动画,UIView动画,CoreAnimation动画(CALayer动画)的用法
- php分享十五:php的数据库操作