为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

javaQQ聊天室

2017-09-21 8页 doc 23KB 52阅读

用户头像

is_682974

暂无简介

举报
javaQQ聊天室javaQQ聊天室 服器务务: package ChatRoomTCPQQ聊天室; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.HashSet; public class ChatRoomSe...
javaQQ聊天室
javaQQ聊天室 服器务务: package ChatRoomTCPQQ聊天室; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.HashSet; public class ChatRoomServer { private ServerSocket ss; private HashSet allSockets; public ChatRoomServer(){ try { ss=new ServerSocket(8888); allSockets=new HashSet(); } catch (IOException e) { e.printStackTrace(); } } public void startService() throws IOException{ while(true){ Socket s=ss.accept(); allSockets.add(s); new ServerThread(s).start(); } } public class ServerThread extends Thread{ private Socket s; public ServerThread(Socket s){ this.s=s; } public void run(){ BufferedReader br=null; PrintWriter pw=null; try { while(true){ br=new BufferedReader(new InputStreamReader(s.getInputStream())); String str=br.readLine(); for(Socket sk:allSockets){ pw = new PrintWriter(sk.getOutputStream()); pw.println(str); pw.flush(); } } } catch (IOException e) { e.printStackTrace(); }finally{ if(s!=null)try{s.close();}catch(IOException e){}; } } } public static void main(String[] args){ try { new ChatRoomServer().startService(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 客端务务 package ChatRoomTCPQQ聊天室; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException;import javax.swing.JOptionPane;public class ChatRoomClent { private Socket s; public ChatRoomClent(String host,int port){ try { s=new Socket(host,port); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void sendMessage(String str){ PrintWriter pw=null; try { pw=new PrintWriter(s.getOutputStream()); pw.println(str); pw.flush(); } catch (IOException e) { e.printStackTrace(); } } public String reciveMessage(){ BufferedReader br=null; String str=""; try { br=new BufferedReader(new InputStreamReader(s.getInputStream())); str = br.readLine(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return str; } } 客界面务务务 package ChatRoomTCPQQ聊天室; import java.awt.BorderLayout;import java.awt.FlowLayout; import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane;import javax.swing.JPanel; import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;public class ClentFrame extends JFrame { private JTextArea area; private JLabel label; private JTextField field; private JButton button; private JScrollPane jsp; private JPanel jp,jp2; private ChatRoomClent client; public ClentFrame(){ super("聊天室程序"); area=new JTextArea(12,67); area.setEditable(false); label=new JLabel(""); field=new JTextField(50); button=new JButton("务送"); jsp=new JScrollPane(area); jp=new JPanel(); jp2=new JPanel(); client=new ChatRoomClent("127.0.0.1",8888); init(); addEventHander(); } public void init(){ jp.setLayout(new FlowLayout()); jp.add(label); jp.add(field); jp.add(button); jp2.add(jsp,BorderLayout.CENTER); //area.setEditable(false); add(jp2,BorderLayout.CENTER); add(jp,BorderLayout.SOUTH); String str=JOptionPane.showInputDialog(this, "务务务务务务入登用:","务入提示"); if(str==null||str.equals("务入提示")||str.equals("")){ str="匿名用务"; } label.setText(str); } public void addEventHander(){ button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { System.out.println(field.getText()); if (field.getText()!=null&&!field.getText().equals("")){ client.sendMessage(label.getText()+"务:"+field.getText()); field.setText(""); }else{ //JOptionPane.showMessageDialog(this,"源文件,目务 路径和算法因子不合法:"); } } }); } public void showMe(){ setSize(750, 300); setLocation(420,280); setResizable(false); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);} private class ReadMessageThread extends Thread{ public void run(){ while(true){ String str=client.reciveMessage(); area.append(str+"\n"); } } } public static void main(String[] args){ ClentFrame cf= new ClentFrame(); Thread t=cf.new ReadMessageThread(); cf.showMe(); t.start(); } }
/
本文档为【javaQQ聊天室】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索