简单聊天客户端
来源:互联网 发布:淘宝女士棉袄 编辑:程序博客网 时间:2024/05/16 09:32
import java.io.*;import java.net.*;import java.util.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class SimpleChatClient{JTextArea incoming;JTextField outgoing;BufferedReader reader;PrintWriter writer;Socket sock;public static void main(String [] args){SimpleChatClient client=new SimpleChatClient();client.go();}public void go(){JFrame frame=new JFrame("Ludicrously Simple Chat Client");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JPanel mainPanel=new JPanel();incoming=new JTextArea(15,50);incoming.setLineWrap(true);incoming.setWrapStyleWord(true);incoming.setEditable(false);JScrollPane qScroller=new JScrollPane(incoming);qScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);qScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);JButton sendButton=new JButton("Send");sendButton.addActionListener(new SendButtonListener());mainPanel.add(qScroller);outgoing=new JTextField(20);mainPanel.add(outgoing);mainPanel.add(sendButton);setUpNetWorking();//启动新的线程,以内部类作为任务,此任务是读取服务器的socket串流显示在文本区域Thread readerThread=new Thread(new IncomingReader());readerThread.start();frame.getContentPane().add(BorderLayout.CENTER,mainPanel);frame.setSize(650,600);frame.setVisible(true);}private void setUpNetWorking(){try{sock=new Socket("127.0.0.1",5000);InputStreamReader streamReader=new InputStreamReader(sock.getInputStream());reader=new BufferedReader(streamReader);writer=new PrintWriter(sock.getOutputStream());System.out.println("netWorking established");}catch(IOException ex){ex.printStackTrace();}}public class SendButtonListener implements ActionListener{public void actionPerformed(ActionEvent ev){try{writer.println(outgoing.getText());writer.flush();}catch(Exception ex){ex.printStackTrace();}outgoing.setText("");outgoing.requestFocus();}}public class IncomingReader implements Runnable{public void run(){String message;try{while((message=reader.readLine())!=null){System.out.println("client read "+message);incoming.append(message+"\n");}}catch(Exception ex){ex.printStackTrace();}}}}
import java.io.*;import java.net.*;import java.util.*;public class VerySimpleChatServer{ArrayList clientOutputStreams;public static void main(String [] args){new VerySimpleChatServer().go();}public class ClientHandler implements Runnable{BufferedReader reader;Socket sock;public ClientHandler(Socket clientSocket){try{sock=clientSocket;InputStreamReader isReader=new InputStreamReader(sock.getInputStream());reader=new BufferedReader(isReader);}catch(Exception ex){ex.printStackTrace();}}public void run(){String message;try{while((message=reader.readLine())!=null){System.out.println("read "+message);tellEveryone(message);}}catch(Exception ex){ex.printStackTrace();}}}public void go(){clientOutputStreams=new ArrayList();try{ServerSocket serverSock=new ServerSocket(5000);while(true){Socket clientSocket=serverSock.accept();PrintWriter writer=new PrintWriter(clientSocket.getOutputStream());clientOutputStreams.add(writer);Thread t=new Thread(new ClientHandler(clientSocket));t.start();System.out.println("got a connection");}}catch(Exception ex){ex.printStackTrace();}}public void tellEveryone(String message){Iterator it=clientOutputStreams.iterator();while(it.hasNext()){try{PrintWriter writer=(PrintWriter)it.next();writer.println(message);writer.flush();}catch(Exception ex){ex.printStackTrace();}}}}
0 0
- 简单聊天客户端
- 简单的Socket聊天程序(客户端)
- android客户端简单的聊天程序实现
- Android客户端简单的聊天程序实现
- android 客户端简单的聊天程序实现
- 简单的网络聊天(客户端)
- 聊天客户端
- 聊天 客户端
- 实现最简单的网络聊天功能(客户端版)
- C# SOCKET编写的简单聊天通信程序(客户端+服务端)
- Socket网络编程—简单聊天软件--3、客户端代码
- IM聊天进阶(三)IM>openfire>mina>mina搭建服务端和客户端 实现简单点对点聊天
- JAVA基于NIO客户端对客户端简单聊天DEMO(服务器转发消息)
- JAVA聊天客户端
- 多点聊天客户端代码
- SOCKET聊天客户端
- 多客户端聊天程序
- C#聊天程序客户端
- 浅谈ClassLoader
- mysql timestamp格式
- Oracle逻辑存储结构1—概述
- HDU 5084 HeHe (找规律)
- lightOJ 1248 - Dice (III) 概率DP
- 简单聊天客户端
- android中src和background区别
- uva 10566 - Crossed Ladders(几何+二分)
- 中国科学院大学沈阳计算技术研究所之行
- java 传值 还是 传引用
- 传参操作
- 字符串的遍历
- MySql中一些常用的命令
- Codeforces Round #316 (Div. 2) A B C