- 浏览: 93000 次
- 性别:
- 来自: 广州
最新评论
-
onleoneggp:
...
MyEclipse for spring 注册码 -
9976:
谢谢。可以用。
myeclipse 8.6 M1 注册码 收藏 -
greatghoul:
请教,如果xml是utf-8格式的,如何在属性中写入中文.
简单的Dom4j写入XML文件例子 -
fffddgx:
不错 有收获,谢谢
报错信息 -
lufei_vs:
引用
利用反射机制模拟Hibernate的Session
import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.EOFException; import java.io.IOException; import java.net.BindException; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List; public class ChatServer { boolean started = false; ServerSocket serverSocket = null; List<Client> clients = new ArrayList<Client>(); public static void main(String[] args) { new ChatServer().start(); } public void start() { try { serverSocket = new ServerSocket(7777); started = true; } catch(BindException e2) { System.out.println("端口使用中 ... ..."); System.out.println("请关闭双关程序!"); System.exit(0); } catch(Exception e) { e.printStackTrace(); } try{ while(started) { Socket socket = serverSocket.accept(); Client client = new Client(socket); System.out.println("连接上了... ..."); new Thread(client).start(); clients.add(client); } } catch (IOException e) { System.out.println("Server 关闭"); }finally { try { serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } class Client implements Runnable { private Socket socket; private DataInputStream dis = null; private DataOutputStream dos = null; boolean bConnected = false; public Client(Socket socket) { this.socket = socket; try { dis = new DataInputStream(socket.getInputStream()); dos = new DataOutputStream(socket.getOutputStream()); bConnected = true; } catch (IOException e) { e.printStackTrace(); } } public void send(String str) { try { dos.writeUTF(str); } catch (IOException e) { e.printStackTrace(); } } public void run() { try{ while(bConnected) { String str = dis.readUTF(); System.out.println(str); for(int i = 0;i<clients.size();i++) { Client c = clients.get(i); c.send(str); } } }catch (EOFException e) { System.out.println("Server 关闭"); }catch(IOException e) { e.printStackTrace(); }finally { try { if(dis != null){ dis.close(); } if(dos != null){ dos.close(); } if(socket != null){ socket.close(); socket = null; } } catch (IOException e1) { e1.printStackTrace(); } } } } }
客户端 :
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; public class ChatClient extends Frame { Socket socket = null; TextField textField = new TextField(); TextArea textArea = new TextArea(); DataOutputStream dos = null; DataInputStream dis = null; boolean bContented = false; public void MainFrame() { setLocation(200, 200); setSize(400, 300); add(textArea,BorderLayout.NORTH); add(textField,BorderLayout.SOUTH); textField.addActionListener(new TextFieldListener()); pack(); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { disConnect(); System.exit(0); } }); setVisible(true); connect(); new Thread(new ClientTalk()).start(); } private class TextFieldListener implements ActionListener{ public void actionPerformed(ActionEvent e) { String str = textField.getText(); //textArea.setText(str); textField.setText(""); try { dos.writeUTF(str); dos.flush(); } catch (IOException e1) { e1.printStackTrace(); } } } public void disConnect() { try { dos.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } public void connect() { try { socket = new Socket("127.0.0.1",7777); dos = new DataOutputStream(socket.getOutputStream()); dis = new DataInputStream(socket.getInputStream()); bContented = true; } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } class ClientTalk implements Runnable { public void run() { try{ while(bContented) { String str = dis.readUTF(); //System.out.println(str); textArea.setText(textArea.getText() + str + '\n'); } }catch(IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { new ChatClient().MainFrame(); } }
发表评论
-
Extjs 学习例子四(formPanel)
2010-12-13 17:29 1283Ext.onReady(function() ... -
javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印
2010-12-13 09:28 1855最近有需求将数据导出到word里,然后编辑打印。 想过几种方案 ... -
struts从oracle获得图片并在jsp显示图片
2010-12-10 11:11 11301.OutputStream write Buffere ... -
MyEclipse for spring GEN
2010-10-09 12:30 951package Default; import java ... -
MyEclipse for spring 注册码
2010-10-09 09:08 6682注册名:leo 注册码:yLR8ZF-855555-6865 ... -
myeclipse 8.6 M1 注册码 收藏
2010-09-03 09:36 6260注册码: Subscriber:MaYong Sub ... -
用正则表达式加Javascript制作的好用简洁的输入框判断语句
2010-08-25 11:36 1182function UserEnter() { if(win ... -
去除多余字符的代码
2010-08-18 14:20 907import java.io.BufferedReader; ... -
写一个简单的java 定时器
2010-06-29 14:28 28781. 首先写一个获取时间,并格式化的操作类,使用单例模式 ... -
报错信息
2010-01-30 12:50 1006报错信息: java.lang.AbstractMeth ... -
利用反射机制模拟Hibernate的Session
2010-01-30 11:28 1464package com.quan.hibernate.mode ... -
JDBC连接模型
2010-01-21 10:21 939package TestConnection; impo ... -
TalkToMe 0.3
2010-01-20 00:44 835客户端 : import java.awt.Bord ... -
TalkToMe 0.1
2010-01-19 00:25 517客户端 : import java.awt.Bord ... -
MyEclipse 8 注册码
2010-01-17 22:28 1431import java.io.BufferedReader; ... -
Java 聊天器 (多线程模型)
2010-01-17 17:18 1842import java.io.DataInputStream; ... -
Socket 简单模型
2010-01-16 01:43 919服务器端: package step3_socket; ... -
Java 流的几个简单的例子
2010-01-10 19:57 1420package step2_io; import jav ... -
Java 初始化与清理
2010-01-08 00:16 1154调用顺序: JAVA类首次装入时,会对静态成员变量或方法进行一 ...
相关推荐
Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证...
1. 记事本:这个项目涉及到GUI(图形用户界面)的设计,使用Swing或JavaFX库创建文本编辑器,实现基本的文本编辑功能,如新建、打开、保存、复制、粘贴等。同时,需要理解文件I/O操作,以便保存和读取用户的文本数据...
QQ_2011_beta1_build0012_ty.jar是这个软件的安装文件,同样需要解压后放入手机存储卡,然后通过手机找到并运行来安装。 “jar”文件是Java Archive的缩写,是一种用于打包Java类、资源文件和其他元数据的容器,...
1. **吃金豆游戏**: 吃金豆游戏是一种经典的迷宫逃脱游戏,玩家控制的角色需要在充满障碍和敌人的迷宫中寻找并吃掉所有的金豆。在Java Swing中,我们可以使用JPanel自定义绘制游戏场景,通过KeyListener监听键盘...
1. **池塘夜雨场景模拟生成器**: - 图形用户界面(GUI):使用Java Swing或JavaFX创建动态画面。 - 多线程:模拟雨滴下落、声音和闪电需要独立的线程处理。 - 随机数生成:用于决定雨滴位置、大小、速度和闪电频率...
在编程和软件开发领域,源码是程序的基础,它是用人类可读的语言编写的,如Java、Python、C++或JavaScript。通过源码,开发者可以理解软件的工作原理,调试错误,或者添加新的功能。MolyX Board v2.7 beta 2的源码很...
《JAVA五子棋手机网络对战游戏的设计与实现》是一个基于Java编程语言的项目,它展示了如何构建一个手机上的实时网络对战游戏。这个项目涵盖了多个重要的IT知识点,包括网络编程、多线程、图形用户界面(GUI)设计...
“FiveChess-master_1.rar”这个压缩包文件包含的是一个名为“FiveChess-master”的项目,它集成了五子棋游戏与在线聊天功能,是Java编程语言的一个实例应用。通过分析这个项目,我们可以深入理解Java在游戏开发和...
【盈盈通JSP网络聊天软件】是一款基于JavaServer Pages(JSP)技术构建的在线聊天应用程序,旨在提供一个实时沟通平台,使用户能够通过互联网进行便捷的交流。这款软件的UTF-8编码确保了多语言环境下的兼容性和正确...
1. **qq2011_beta1_build0011_unsigned.jad**:这是一个早期版本的QQ聊天应用的测试版,用于Java设备。jad文件是Java应用程序的描述文件,它包含有关应用程序的信息,而jar文件则包含实际的代码和资源。 2. **TTPod...
Asmack是一个开源的Java库,它是Smack的Android版本,专为在Android平台上处理XMPP(可扩展消息传递和存在协议)而设计。XMPP是一种开放标准的即时通讯协议,广泛用于创建实时通信系统,如聊天应用、协作工具和在线...
Chrome 26 Beta是谷歌浏览器的一个版本,它首次将WebRTC集成进去,带来了自动填充和密码同步等功能,极大地提升了移动设备上的用户体验。开发者可以在不同设备间进行无缝的视频聊天,如Nexus 7和平板MacBook Air之间...
ckeditor是另一款非常流行的开源在线富文本编辑器,支持多种编程语言和平台,如PHP、ASP.NET、Java等。ckeditor_3.0.1_open.rar表示的是ckeditor的3.0.1版本的开源版本,开源意味着源代码公开,允许用户自由使用、...
- **应用场景**: 需要动态更新网页部分内容而不重新加载整个页面的应用场景,例如实时聊天系统中的消息列表更新。 3. **ant.jar** 和 **antlr.jar** - **用途**: `ant.jar`是Apache Ant的一部分,用于构建Java...
- **架构选择**:采用MVC(Model-View-Controller)架构,将模型、视图与控制器分离,提高系统的可维护性和扩展性。 #### 2. 详细设计 - **用户界面模块**:设计简洁美观的界面,实现棋盘显示、棋子移动等功能。 -...
1. Netty 概述: Netty 是由 JBoss 提供的开源框架,它提供了一套高度抽象的API,使得开发者可以更专注于业务逻辑,而不是底层的网络通信细节。Netty的核心特性包括:非阻塞I/O模型、内存池管理、零拷贝优化、高效...