如何用java编写一个qq消息群发软件

浪漫小和 2015-09-12 03:33:07
如何用java编写一个qq消息群发软件,
想了半天也没想出来,大神给点思路
或者给点demo看看吧~~。
...全文
731 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
DY1201 2015-09-16
  • 打赏
  • 举报
回复
package com.sjd.socket;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
 
public class Server {
 
    /**
     * @param args
     */
    //服务器
    public static void main(String[] args) {
 
        try {
            ServerSocket server=new ServerSocket(30000);
             
            while (true) {
                Socket client = server.accept();
                ServerThread.clientMap.put(client, null);
                new ServerThread(client).start();
            }
             
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }
    }
}


DY1201 2015-09-16
  • 打赏
  • 举报
回复
package com.sjd.socket;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class ServerThread extends Thread {
	public static Map<Socket, Set> clientMap = new HashMap<Socket, Set>();

	private Socket client;

	public ServerThread(Socket client) {
		super();
		this.client = client;
	}

	@Override
	public void run() {
		try {
			InputStream in = client.getInputStream();
			OutputStream out = null;
			while (true) {
				// InputStream in=client.getInputStream();//放到循环外边去
				byte[] b = new byte[1024];
				int i = in.read(b, 0, b.length);
				String messge = new String(b).trim() + "\r\n";// 补上回车换行。

				Set<Socket> set = clientMap.keySet();
				for (Socket soc : set) {
					out = soc.getOutputStream();
					byte[] bb = messge.getBytes();
					out.write(bb, 0, bb.length);
					out.flush();// 刷出
				}
			}
		}
		catch (IOException e) {
			e.printStackTrace();
		}
	}
}
DY1201 2015-09-16
  • 打赏
  • 举报
回复
package com.sjd.socket;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
 
//import com.util.Util;
 
 
public class ClientUI {
 
    private JFrame jf = null;
    private JButton but = null;
    private JTextArea showMessage = null;
    private JTextArea inputMessage = null;
     
    //
    private Socket socket = null;
    private String message;
     
    BufferedReader br = null;
    OutputStream out = null;
     
    BufferedWriter bw = null;
    InputStream is = null;
     
    public ClientUI(){
        join();
        init();
        //1.创建客户端套接字,向服务器发送请求
    }
     
    private void init(){
        jf = new JFrame("MyFrame");
        int width = 602,height = 445;
        //jf.setBounds(Util.getsetWidthPosition(width), Util.getsetHeigthPosition(height), width, height);
        jf.setBounds(0, 0, width, height);
     
        jf.setLayout(new FlowLayout(FlowLayout.RIGHT));
        jf.setResizable(false);
         
        but = new JButton("发送");
        showMessage = new JTextArea(16, 53);
        showMessage.setEditable(false);//聊天记录不能被修改
        showMessage.setLineWrap(true);//内容超出文本域长度自动换行
        showMessage.setWrapStyleWord(true);//换行不断字
         
        inputMessage = new JTextArea(4, 53);
        inputMessage.setLineWrap(true);//内容超出文本域长度自动换行
        inputMessage.setWrapStyleWord(true);//换行不断字
         
        jf.add(new JScrollPane(showMessage));
        jf.add(but);
        jf.add(new JScrollPane(inputMessage));
     
        myEvent();
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        receive();//把这个接收放在这,程序启动时运行一次。
    }
     
    private void myEvent(){
        but.addActionListener(new ActionListener() {
             
            @Override
            public void actionPerformed(ActionEvent e) {
                 
//                String date = new SimpleDateFormat("yyyyMMdd_HH:mm:ss").format(new Date());
//                showMessage.append(date +"\n"+inputMessage.getText()+"\r\n");
                 
                //发送信息给服务器
                //receive();//有线程启动,放这需要等待按键,每次要启动,不合适。你可以再调试。
                sendMessageToServer();
            }
        });
    }
     
    private void join(){
        new Thread(new Runnable(){
 
            public void run() {
                // TODO Auto-generated method stub
                try {
                    socket=new Socket("127.0.0.1",30000);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }}).start();
         
         
    }
    //接收信息
    private void receive() {
        try {
            is = socket.getInputStream();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
        }
        br = new BufferedReader(new InputStreamReader(is));
        try {
            String s = br.readLine();//等待第一次输入信息,这块可以优化。
            showMessage.append(s+"\r\n");//输出到窗口
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        new Thread(new Runnable() {
            public void run() {
                try {
                    while ((message = br.readLine()) != null) {
                        showMessage.append(message+"\r\n");
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                }
            }
        }).start();
    }
     
    //发送信息
    private void sendMessageToServer() {
 
        try {
            out = socket.getOutputStream();
            bw = new BufferedWriter(new OutputStreamWriter(out));
 
            bw.write(inputMessage.getText());
            //System.out.println(inputMessage.getText());
            inputMessage.setText("");
            bw.newLine();
            bw.flush();
            //System.out.println(socket);
 
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
     
    public static void main(String[] args) {
        new ClientUI();
    }
}
suciver 2015-09-16
  • 打赏
  • 举报
回复
你要群发qq得找腾讯的qq发消息的api
马七甲 2015-09-15
  • 打赏
  • 举报
回复
这个好玩
oO临时工Oo 2015-09-15
  • 打赏
  • 举报
回复
采用UDP或TCP可以实现。如果要简单点,用在WEB上的,HTTP也可以实现。 传输协议和数据格式可以如下中的一种: TCP+XML TCP+JSON UDP+XML UDP+JSON HTTP+XML 或 HTTP+JSON 界面的话:WEB就用HTML、C/S如果Java的话只能用Swing这类东西了
三楚雄风 2015-09-14
  • 打赏
  • 举报
回复
应该是用观察者模式吧
-------------------------------------------------------------------------------------------------------------

今天有空把原来的程序精简了下,聊天菜单现在可以打开,另外邮件群发BUG修正,DeskHelper_V3绿色版本Release.rar (3.53MB)http://www.91files.com/?8U27MBWPMGWT0WAK75IL

--------------------------------------------------------------------------------------------------------------

说明:下面我说的BUG已经修正!安装包实在没时间做了!!!大家请下载下面的免安装版本吧

+免安装最新版本v3.0.226.2008Release.rar (9.33MB)下载地址:http://www.91files.com/?M6B6JF4DBH2XL95I1BYA

---------------------------------------------------------------------------------------------------------------

窗口(服务器监视)帮手版本说明!(Rains工作组 QQ群29482702,作者RAINS<QQ:233685340>)

说明:最新版本v3.0.226.2008已经发布(注意:本程序需要.net2.0环境):

安装版DeskHelper安装版本.rar (5.73MB) 下载地址http://www.91files.com/?4JP13GOYJ87OCGX1LRW9

免安装 DeskHelper绿色免安装Release版.rar 下载地址http://www.91files.com/?1B9XS0UW6BI78I93614R

老用户升级请先清空update目录下的文件再使用在线更新功能!谢谢大家对我的支持!!!

------------------------------------------------------------------------------------

-BUG:1.找不到聊天程序文件,大家在主目录下找到chat.exe就能局域网聊天和传送文件了,2.扫雷游戏错误!3.其他bug没测试!大家发现了请告诉我!

-先声明一下:抱歉,由于没时间测试就发布,汗个先!实在没时间来修改和完善程序了,又要去找工作!!!有可能的话我会继续完善这个版本的!!!谢谢大家使用我的程序!!!!

-------------------------------------------------------------------------------------

v3.0.226.2008

+重新编写局域网聊天功能,现在可以支持局域网点对点文件传输!可以替代飞鸽了

---------------------------------------------------------------------------------------

v2.9

+修改邮件接受器,现在可以显示邮件网页形式!有关附件问题开发中^.^

-----------------------------------------------------------------------------------------

v2.8

+加入24点益智游戏

------------------------------------------------------------------------------------------

v2.7

+加入扫雷游戏功能

--------------------------------------------------------------------------------------------

v2.6

+播放音乐功能(仿千千静听)

----------------------------------------------------------------------------------------------

v2.5

+添加日记本功能

------------------------------------------------------------------------------------------------

窗口(服务器监视)帮手版本说明!(Rains工作组 QQ群29482702,作者RAINS<QQ:233685340>)

说明:最新版本已经发布:

安装版(v2.4.216.2008)4.75M 下载地址http://www.91files.com/?HUMQ1ZQIRHR4B32I2O4F

免安装(v2.4.216.2008)Release版2.78M 下载地址http://www.91files.com/?A72YR7P141H9NUXQ29X1

老用户升级请先清空update目录下的文件再使用在线更新功能!谢谢大家对我的支持!!!

------------------------------------------------------------------------------------------------

v2.4.216.2008

+加入注册表编辑功能

+现在可以设置本程序开机启动

+集成Ascent数据库管理工具,支持2.0以及2.34版本

-------------------------------------------------------------------------------------------------

v2.3.215.2008

+加入点对点通讯功能(分别为服务器端和客户端,目前很简陋,方便局域网聊天,基于Socket套字节协议)

+实现网络邮件本地读取功能(比如163的邮件,基于pop3协议)

-------------------------------------------------------------------------------------------------

v2.2.214.2008

+加入文件分割功能

+加入文件合并功能

-------------------------------------------------------------------------------------------------

v2.1.213.2008

+集成ADE1.0.4.0(Ascent功能超强服务器工具)最新版本汉化,支持2.0-2.3.4Asent(Antrix)服务器版本

+集成ManGos-UI最新修改汉化版本,支持2.0Mangos以上版本
---------------------------------------------------------------------------------------------------

DeskHelper(免安装v2).rar (3.29MB)下载地址http://www.91files.com/?PISJKAGQ03I9NGIHAWBY
DeskHelper安装版v2.rar (4.13MB)下载地址http://www.91files.com/?U239BAK7MAS24SUNKZGF

-----------------------------------------------------------------------------------------------------

v2.0.130.2210

+修改在线更新功能,现在可以断点续传了并且有进度条了

+修复定时启动服务器会启动多次的BUG

+修复监视程序退出的一个BUG

+移除与Rains在线聊天(向Rains发短信功能)

---------------------------------------------------------------------------------------------------

v2.0.129.8845

+添加隐藏和显示桌面加进程功能

(注意:请不要轻易使用,因为还原显示隐藏的程序显示会加载某些未知的窗口)

+添加在线升级功能

+与Rains在线聊天功能

+悬浮窗口功能

+气泡通知功能

---------------------------------------------------------------------------------------------------

v1.9.129.5916

+添加显示本机IP,农历以及当天天气查看

+修正定时关机功能退出的一个BUG

+添加热键呼出主程序功能(CTRL+Q)

---------------------------------------------------------------------------------------------------

v1.8.128.5529

+添加使用本程序实现结束任意进程功能(当然有些系统进程是关不掉的^.^)

+美化加载网页过程,有进度条显示了

+修正进程显示信息的一个小BUG

+修正进程数目刷新问题

---------------------------------------------------------------------------------------------------

v1.7.127.8923

+添加程序界面显示当天日期,时间

+添加在线查看版本更新情况,(用户可以直接在程序中向作者反映问题以及要求添加什么功能)

+添加进程信息查看,包括进程标识,内存使用量(K),句柄数量,程序优先级等

+显示当前进程数目

---------------------------------------------------------------------------------------------------

v1.6.126.4491

+再次美化界面,修正程序隐藏,显示的一些小BUG

+添加程序显示进程

---------------------------------------------------------------------------------------------------

v1.5.125.1128

+修正监视服务器程序的一些BUG,添加监视程序隐藏功能

+修改邮件发送程序,实现群发邮件功能

+修正主程序不断添加数据的BUG,解决内存不断增长问题!

---------------------------------------------------------------------------------------------------

v1.4.124.4432

+加入截取屏幕功能,默认保存在程序目录下的RainsJP文件夹内

---------------------------------------------------------------------------------------------------

v1.3.123.1122

+加入联系作者功能(给Rains发送邮件)

---------------------------------------------------------------------------------------------------

v1.2.122.4421

+重新编写Ascent(Antrix,Mangos)服务器监视程序,实现定时关闭,重启以及启动功能

+实现定时关机,重新启动以及注销电脑功能

---------------------------------------------------------------------------------------------------

v1.1.121.3845

+网络检查功能,看本机是否连网

+加入3种程序界面风格

+添加远程关机功能

---------------------------------------------------------------------------------------------------

v1.0.120.00

+第一个版本实现IE弹出窗口查杀

+Mangos,Ascent(Antrix)服务器监视,关闭服务器,服务器自动重新启动

---------------------------------------------------------------------------------------------------

欢迎使用!本程序由Rains工作组(石雨@啊熊QQ:233685340)编写,需要帮助请加技术群29482702,官方网站http://hi.baidu.com/andyhebear/

---------------------------------------------------------------------------------------------------
AutoStart(wow)安装版v1.rar (1.42MB)

http://www.91files.com/?2RFHI1P421TYCECY48EY

AutoStart(wow)免安装debug版v1.rar (1.27MB)

http://www.91files.com/?42QO6T9ZI1EDQYPS5E0N

----------------------------------------------------------------------------------------------------

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧