• 大小: 3KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: Java
  • 标签: java  

资源简介

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

评论

共有 条评论