首页 > 代码库 > 韩顺平视频学习笔记-简易qq
韩顺平视频学习笔记-简易qq
1 package myclient; 2 3 import java.net.*; 4 import java.util.Date; 5 import java.text.SimpleDateFormat; 6 import java.awt.event.ActionEvent; 7 import java.awt.event.ActionListener; 8 import java.io.*; 9 import java.awt.*;10 11 import javax.swing.*;12 public class Myclient1 extends JFrame implements ActionListener{13 JTextArea jta = null;14 JPanel jpl = null;15 JTextField jtf = null;//输入文本的地方16 JScrollPane jsp = null;17 JButton jbtn = null;18 //向sock管道流写信息19 PrintWriter pw = null;20 //显示发送时间21 //SimpleDateFormat sendtime = new SimpleDateFormat("HH:mm:ss");22 //time = sendtime.format(new Date());// new Date()为获取当前系统时间23 24 public static void main(String[] args) {25 // TODO Auto-generated method stub26 Myclient1 mclnt = new Myclient1();27 }28 29 public Myclient1(){30 jta = new JTextArea();31 jsp = new JScrollPane(jta);32 jtf = new JTextField(10);//输入框的长度33 jbtn = new JButton("发送");34 jbtn.addActionListener(this);35 jpl = new JPanel();36 37 jpl.add(jtf);38 jpl.add(jbtn);39 this.add(jsp,"Center");40 this.add(jpl,"South");41 this.setTitle("qq客户端");42 this.setSize(400,300);43 this.setVisible(true);44 45 46 47 try {48 49 Socket sock = new Socket("127.0.0.1",9988);50 // if connect success51 InputStreamReader isr = new InputStreamReader(sock.getInputStream());52 BufferedReader br = new BufferedReader(isr);53 54 pw = new PrintWriter(sock.getOutputStream(),true);55 56 //显示消息57 while(true){58 //不停读取服务器发来的信息59 String info =br.readLine();60 jta.append("服务器说 :"+info+"\r\n");61 }62 63 } catch (Exception e) {64 // TODO: handle exception65 e.printStackTrace();66 }67 }68 69 @Override70 public void actionPerformed(ActionEvent e) {71 // TODO Auto-generated method stub72 if(e.getSource() == jbtn){73 //将服务器在jtf中写的文本发送给客户端74 String info = jtf.getText();75 jta.append("客户端说 :"+info+"\r\n");76 pw.println(info);77 //清空输入框78 jtf.setText(" ");79 80 }81 }82 83 }
下面是服务器端代码
/** * This is first server port 9999 * */package com.myserver;import java.io.*;import java.net.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class Myserver1 extends JFrame implements ActionListener{ JTextArea jta = null; JPanel jpl = null; JTextField jtf = null;//输入文本的地方 JScrollPane jsp = null; JButton jbtn = null; PrintWriter pw = null; public static void main(String[] args){ Myserver1 msrv = new Myserver1(); } //constructor public Myserver1(){ jta = new JTextArea(); jsp = new JScrollPane(jta); jtf = new JTextField(10);//输入框的长度 jbtn = new JButton("发送"); jbtn.addActionListener(this); jpl = new JPanel(); jpl.add(jtf); jpl.add(jbtn); this.add(jsp,"Center"); this.add(jpl,"South"); this.setTitle("qq服务器"); this.setSize(400,300); this.setVisible(true); try{ ServerSocket ss = new ServerSocket(9988); System.out.println("我是服务器,我在监听端口9988"); Socket sock = ss.accept();//返回一个socket连接 //从sock中读取数据 InputStreamReader isr = new InputStreamReader(sock.getInputStream()); BufferedReader br = new BufferedReader(isr); pw = new PrintWriter(sock.getOutputStream(),true); while(true){ String info =br.readLine(); jta.append("客户端说 :"+info+"\r\n"); } }catch(Exception e){ e.printStackTrace(); } } @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub if(arg0.getSource() == jbtn){ //将服务器在jtf中写的文本发送给客户端 String info = jtf.getText(); jta.append("服务器说 :"+info+"\r\n"); pw.println(info); //清空输入框 jtf.setText(" "); } }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。