资源简介
java 简单的网络聊天程序 服务器连接多个客户端
仅供学习使用。
代码片段和文件信息
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
import java.net.SocketException;
import java.io.BufferedReader;
import java.io.EOFException;
import java.io.InputStreamReader;
import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.Dimension;
import java.awt.event.*;
public class Client extends Jframe{
public Socket socket=null;
public PrintStream print=null;
public Client(){
super(“客户端“);
Dimension size=Toolkit.getDefaultToolkit().getScreenSize();
this.setSize(300500);
this.setLocation((int)size.getWidth()/2-200(int)size.getHeight()/2-200);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setResizable(false);
jpanel1=new JPanel();
jspane2=new JScrollPane();
text=new JTextField();
text.setEditable(true);
jpanel1.add(text);
jpanel1.setLayout(new GridLayout(11));
area=new JTextArea();
area.setBorder(
javax.swing.BorderFactory
.createLineBorder(new java.awt.Color(0 0 0)));
area.setEditable(false);
area.setTabSize(4);
area.setLineWrap(true);
jspane2.add(area);
jspane2.setViewportView(area);
jspane2.setBackground(Color.LIGHT_GRAY);
add(jpanel1new BorderLayout().SOUTH);
add(jspane2new BorderLayout().CENTER);
//添加事件对象
text.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(e.getKeyChar()==‘\n‘){
sendMessage();
}
}
});
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
try {
if(socket!=null){
socket.close();
System.exit(0);
}
} catch (IOException e1) {
System.out.printf(“客户端退出……“);
e1.printStackTrace();
}
}
});
setVisible(true);
}
public void startScoket(){
try{
socket=new Socket(“10.11.98.122“8888);
new Thread(new RecieveThread(socket)).start(); //创建接收信息线程
print=new PrintStream(socket.getOutputStream());//创建打印流
}catch(IOException e){
System.exit(0);
}
}
public void sendMessage(){
if(text.getText().equals(““)==false){
String str=text.getText();
str=“●“+socket.getLocalAddress()+“:\n “+str;
print.println(str);
text.setText(““);
}
}
public static void main(String []args){
new Client().startScoket();
}
private JButton jbutton;
public static JTextArea area;
private JTextField text;
private JPanel jpanel1;
private JScrollPane jspane2;
}
class RecieveThread implements Runnable{
private JOptionPane panl;
private Socket socket=null;
boolean bConnected=false;
BufferedReader reader=null;
public RecieveThread(Socket socket){
this.socket=socket;
}
public void run(){
bConnect
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2530 2011-12-28 21:21 Server.java
文件 3784 2011-12-28 21:21 Client.java
相关资源
- javaWeb 毕业设计 图书管理系统 详细代
- java按比例实现截图功能
- java实现TCP多客户端与服务器端的通信
- 用java写的tcp数据包发送和接收代码
- javacob的jar包
- java实现任意带table表格的html页面,生
- 图形学 Bezier曲线的递推(de Casteljau)
- mysql-connector-java-5.1.44-bin.jar 包
- java进销存管理系统
- 蓝桥杯Java竞赛指导书
- 中文繁体转简体工具
- 自己写的个人通讯录java代码完整版
- 解魔方程序Java源码
- qq2007 java
- javaEE课程设计报告图书管理系统
- 工作日计算的JAVA实现
- 理发师问题java编写的啊
- JAVA程序员面试宝典 第4版 (带书签
- Java版终端 Demo
- C#调用Java接口演示
- javaee实验
- java实现的8583发包解包
- java编写的彩票抽奖系统源代码
- 排序 java 图形界面
- 简单的中英文词典java编写
- 最新JavaEE学习资料 全
- java实现的棋盘算法
- spring任务task配置
- LeetCodeJava版题解
- zgf游戏框架搭建
评论
共有 条评论