`
jiasudu1649
  • 浏览: 723595 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

qq聊天

阅读更多
java 代码
 
  1. import java.net.*;  
  2. import java.awt.*;  
  3. import javax.swing.*;  
  4. import java.awt.event.*;  
  5. import java.util.GregorianCalendar;  
  6. import javax.swing.JDialog;  
  7.   
  8. public class QQ extends Frame implements ActionListener {  
  9.     Label label1 = new Label("请输入您要发送的信息(限英文):");  
  10.     Label label2 = new Label("以下是你收到的消息记录:");  
  11.     Label label3 = new Label("把以上消息发给如下IP地址:");  
  12.     TextArea input = new TextArea(""714, TextArea.SCROLLBARS_BOTH);  
  13.     TextArea output = new TextArea(""814, TextArea.SCROLLBARS_BOTH);  
  14.     TextField IPAdd = new TextField("192.168.1.88");  
  15.     Button send = new Button("发送消息");  
  16.     Button about = new Button("关于");  
  17.     Button clear = new Button("清空消息纪录");  
  18.     GregorianCalendar time = new GregorianCalendar();  
  19.   
  20.     QQ() {  
  21.         super("仿QQ聊天工具");  
  22.         setLayout(null);  
  23.         setLocation(250250);  
  24.         this.setSize(518218);  
  25.         this.setResizable(false); // 大小不可变  
  26.         this.setBackground(new Color(220220220));  
  27.         Toolkit kit = Toolkit.getDefaultToolkit();  
  28.         Image myImage = kit.getImage("icons\\QQ.bmp");  
  29.         this.setIconImage(myImage);  
  30.   
  31.         label1.setFont(new Font("宋体", Font.PLAIN, 12));  
  32.         label1.setForeground(new Color(00192));  
  33.         label1.setBounds(82821616);  
  34.   
  35.         input.setBackground(new Color(255255128));  
  36.         input.setFont(new Font("Times New Roman", Font.BOLD, 15));  
  37.         input.setForeground(Color.magenta);  
  38.         input.setBounds(844248120);  
  39.   
  40.         output.setBackground(new Color(128255255));  
  41.         output.setFont(new Font("Times New Roman", Font.PLAIN, 12));  
  42.         output.setForeground(Color.magenta);  
  43.         output.setBounds(26444248136);  
  44.         output.setEditable(false);  
  45.   
  46.         send.setFont(new Font("新宋体", Font.PLAIN, 12));  
  47.         send.setLocation(136188);  
  48.         send.setSize(12022);  
  49.   
  50.         clear.setFont(new Font("新宋体", Font.PLAIN, 12));  
  51.         clear.setLocation(392188);  
  52.         clear.setSize(12022);  
  53.   
  54.         label2.setFont(new Font("宋体", Font.PLAIN, 12));  
  55.         label2.setForeground(new Color(00192));  
  56.         label2.setBounds(2642821616);  
  57.   
  58.         about.setFont(new Font("新宋体", Font.PLAIN, 12));  
  59.         about.setLocation(264188);  
  60.         about.setSize(12022);  
  61.   
  62.         label3.setFont(new Font("宋体", Font.PLAIN, 12));  
  63.         label3.setForeground(new Color(00192));  
  64.         label3.setBounds(817216016);  
  65.   
  66.         IPAdd.setFont(new Font("新宋体", Font.PLAIN, 12));  
  67.         IPAdd.setLocation(8190);  
  68.         IPAdd.setSize(12019);  
  69.   
  70.         add(label1);  
  71.         add(input);  
  72.         add(label3);  
  73.         add(label2);  
  74.         add(output);  
  75.         add(IPAdd);  
  76.         add(send);  
  77.         add(about);  
  78.         add(clear);  
  79.         addWindowListener(new closeWin());  
  80.         send.addActionListener(this);  
  81.         about.addActionListener(this);  
  82.         clear.addActionListener(this);  
  83.   
  84.         show();  
  85.         waitForData();  
  86.     }  
  87.   
  88.     public void actionPerformed(ActionEvent e) {  
  89.         if (e.getSource() == send)  
  90.             sendData();  
  91.         else if (e.getSource() == clear)  
  92.             output.setText("");  
  93.         else if (e.getSource() == about) {  
  94.             AboutQQ test = new AboutQQ(this);  
  95.         }  
  96.     }  
  97.   
  98.     public static void main(String args[]) {  
  99.         new QQ();  
  100.     }  
  101.   
  102.     void sendData() {  
  103.         try {  
  104.             String msg = input.getText();  
  105.             if (msg.equals(""))  
  106.                 return;  
  107.             input.setText("");  
  108.             String ad = IPAdd.getText();  
  109.             InetAddress tea = InetAddress.getLocalHost();  
  110.             String asd = tea.getHostAddress();//发送方的IP地址  
  111.             output.append("[" + asd + "]:(" + time.get(GregorianCalendar.YEAR)  
  112.                     + "-" + time.get(GregorianCalendar.MONTH) + "-"  
  113.                     + time.get(GregorianCalendar.DATE) + " "  
  114.                     + time.get(GregorianCalendar.HOUR) + ":"  
  115.                     + time.get(GregorianCalendar.MINUTE) + ":"  
  116.                     + time.get(GregorianCalendar.SECOND) + ") " + "\n" + msg  
  117.                     + "\n");  
  118.             msg = "From [" + asd + "]:(" + time.get(GregorianCalendar.YEAR)  
  119.                     + "-" + time.get(GregorianCalendar.MONTH) + "-"  
  120.                     + time.get(GregorianCalendar.DATE) + " "  
  121.                     + time.get(GregorianCalendar.HOUR) + ":"  
  122.                     + time.get(GregorianCalendar.MINUTE) + ":"  
  123.                     + time.get(GregorianCalendar.SECOND) + ") \n" + msg;  
  124.             InetAddress address = InetAddress.getByName(ad);  
  125.             int len = msg.length();  
  126.             byte[] message = new byte[len];  
  127.             msg.getBytes(0, len, message, 0);  
  128.             DatagramPacket packet = new DatagramPacket(message, len, address,  
  129.                     9999);  
  130.             DatagramSocket socket = new DatagramSocket();  
  131.             socket.send(packet);  
  132.         } catch (Exception e) {  
  133.         }  
  134.     }  
  135.   
  136.     void waitForData() {  
  137.         try {  
  138.             byte[] buffer = new byte[1024];  
  139.             DatagramPacket packet = new DatagramPacket(buffer, buffer.length);  
  140.             DatagramSocket socket = new DatagramSocket(9999);  
  141.             while (true) {  
  142.                 socket.receive(packet);  
  143.                 String s = new String(buffer, 00, packet.getLength());  
  144.                 output.append(s + "\n");  
  145.                 packet = new DatagramPacket(buffer, buffer.length);  
  146.             }  
  147.         } catch (Exception e) {  
  148.         }  
  149.     }  
  150. }  
  151.   
  152. class closeWin extends WindowAdapter {  
  153.     public void windowClosing(WindowEvent e) {  
  154.         Frame fr = (Frame) (e.getSource());  
  155.         fr.dispose();  
  156.         System.exit(0);  
  157.     }  
  158. }  
  159.   
  160. class AboutQQ {  
  161.     private Label label;  
  162.     private JDialog dialog;  
  163.       
  164.     public AboutQQ(Frame f){  
  165.         label = new Label("Version 1.0");  
  166.         dialog = new JDialog(f, "About"true);  
  167.         dialog.setLocation(f.getLocation());  
  168.         Container dialogPane = dialog.getContentPane();  
  169.         dialogPane.setLayout(new BorderLayout());  
  170.         dialogPane.add(label);  
  171.         dialogPane.setBounds(50,50,50,50);  
  172.         dialog.pack();  
  173.         dialog.show();  
  174.     }  
  175. }  
  • QQ.zip (1.8 KB)
  • 下载次数: 96
分享到:
评论

相关推荐

    易语言简单取QQ聊天信息

    在这个“易语言简单取QQ聊天信息”项目中,开发者利用易语言编写了代码来获取QQ聊天信息。这涉及到几个关键知识点,包括API调用、窗口句柄的获取以及子窗口的查找。 首先,API(Application Programming Interface...

    HTML制作超链接QQ号,点击后启动QQ聊天框

    要实现点击后打开QQ聊天框,我们不能直接使用URL形式的QQ号码,因为普通的QQ号码链接会被浏览器解析为网页而不是聊天。我们需要使用一种特殊格式的URL,这个URL会启动QQ客户端并打开指定的QQ号码聊天窗口。这个URL...

    模拟QQ聊天室,聊天系统

    【标题】"模拟QQ聊天室,聊天系统"是一款基于Java技术开发的应用,旨在提供一个类似于QQ的多人在线聊天环境。这个项目不仅展示了网络通信的基本原理,还涉及到了多线程编程,以及通过HTTP协议进行数据传输的技术。 ...

    java 仿QQ聊天

    在本文中,我们将深入探讨如何使用Java Socket技术来模仿QQ聊天软件的功能,包括添加好友、删除好友、群聊以及文件上传。Java Socket是Java提供的网络通信API,它允许应用程序通过网络进行双向通信。 首先,我们...

    仿QQ聊天系统课程设计.doc

    仿QQ聊天系统课程设计 仿QQ聊天系统课程设计是指仿照QQ聊天系统的架构和功能,设计一个类似的聊天系统。该系统应当具有注册、登录、聊天等基本功能,同时也需要考虑到安全性和性能等方面的需求。 软件功能需求分析...

    vb 仿QQ聊天程序

    【VB 仿QQ聊天程序详解】 VB(Visual Basic)是一种基于事件驱动的编程语言,由微软公司开发,是Visual Studio家族的重要组成部分。本项目“vb 仿QQ聊天程序”旨在利用VB来创建一个类似腾讯QQ的即时通讯软件,让...

    QQ插件 用ASP来实现在线QQ聊天功能

    【标题】:“QQ插件 用ASP来实现在线QQ聊天功能” 在互联网技术日新月异的今天,网站与用户的互动性变得越来越重要。QQ作为中国最流行的即时通讯工具之一,其在线聊天功能被广泛应用于各种网站中,以增强用户沟通...

    hook QQ函数 msgsave实现qq聊天信息获取

    QQ聊天信息获取是计算机技术中的一种逆向工程实践,主要涉及到动态链接库(DLL)注入和函数挂钩(hook)技术。在这个项目中,开发者通过hook QQ的`msgsave`函数来实现在后台捕获和显示QQ聊天记录。下面将详细解释...

    socket版QQ聊天

    【标题】"Socket版QQ聊天"是一个典型的网络通信项目,主要使用了Socket编程技术来实现类似于QQ的在线聊天功能。Socket编程是网络编程的基础,它提供了应用程序之间进行数据传输的接口,使得不同计算机上的两个进程...

    易语言简单取QQ聊天信息源码

    在本压缩包中,我们关注的是一个用于获取QQ聊天信息的简单源码,这可能是用于教学、学习或者分析QQ通信的一种示例。 易语言的语法简洁明了,它的核心特点是“易学易用”,采用中文词汇作为编程语句,使得初学者能够...

    仿照QQ聊天的界面

    在Android平台上,仿照QQ聊天界面的设计是一项挑战性的工作,因为QQ作为一款流行的即时通讯应用,其用户界面(UI)经过了多代迭代,既美观又功能丰富。要实现这样的界面,开发者需要深入理解Android UI设计原则,...

    html仿照QQ聊天

    QQ聊天是一个功能丰富的即时通讯应用,其在网页上的实现涉及到多个方面的技术。 首先,HTML(超文本标记语言)是网页的基础,用于定义页面的结构和内容。在仿照QQ聊天的项目中,HTML将被用来创建聊天窗口、用户...

    QQ聊天室(QQ 聊天室)

    QQ聊天室是一个基于Java编程语言实现的网络通信应用,它运用了多线程技术来处理并发用户间的实时交互,同时结合了图形用户界面(GUI)的设计,以及网络和输入/输出(I/O)流的相关知识。这个项目对于初学者来说是一...

    QQ聊天记录格式排板 v3.0

    QQ聊天记录格式排板用于重新排版由QQ导出的聊天记录,通过缩进聊天内容,更改字体颜色及大小等方式,力图使记录更易于阅读。建议在字体及颜色设置上,尽量将聊天记录的ID行字体设置略小一点,9号为宜,颜色设置较...

    仿QQ聊天室

    【仿QQ聊天室】是一个基于Java SE开发的多人在线交流平台,它利用了Socket编程来实现客户端与服务器之间的实时通信。在Java SE(标准版)环境中,Socket是网络通信的基础,它提供了进程间的网络通信能力,使得不同...

    java写的简易QQ聊天

    【标题】"java写的简易QQ聊天"所涉及的知识点主要集中在Java编程语言和网络通信上,我们可以从以下几个方面来详细解读: 1. **Java编程语言基础**:Java是一种跨平台的面向对象的编程语言,其核心特性包括封装、...

    基于python+PyQt5图形库+tcp协议开发的仿PC端QQ聊天软件+源码+开发文档说明(毕业设计&课程设计&项目开发)

    基于python+PyQt5图形库+tcp协议开发的仿PC端QQ聊天软件+源码+开发文档说明,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于python+PyQt5图形库+tcp协议开发...

    java版QQ聊天室

    Java版QQ聊天室是一款基于Java编程语言实现的即时通讯应用,它模仿了QQ群的功能,让用户可以在一个虚拟的聊天环境中进行实时交流。这个项目利用了Java的多线程技术,确保了在高并发情况下的稳定性和性能。接下来,...

    QQ聊天记录Mht转Html格式.rar

    QQ聊天记录Mht转Html格式 之前遇到过一个需求,要把别人导出的全部MHT格式的聊天记录读出来,结果网上找的一些MHT转HTML的工具都不支持大的MHT格式的聊天记录转换,查了一下MHT的存储方式原理挺简单,就自己写了个,...

    仿QQ聊天系统(java swing)

    【标题】"仿QQ聊天系统(java swing)"是一个基于Java Swing开发的桌面应用程序,它模仿了QQ的基本功能,提供了用户间的实时通讯服务。Swing是Java标准版(J2SE)的一部分,用于构建图形用户界面(GUI)的库,具有...

Global site tag (gtag.js) - Google Analytics