
正文
java源代码QQ群 java开发私活群
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
怎么用java开发qq群机器人 服务端 客户端?
Server.java
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
public class Server {
private ListServerThread serverThreads;
private ServerSocket serverSocket;
public Server() throws IOException {
serverSocket = new ServerSocket(8025);
serverThreads = new ArrayListServerThread();
}
public ListServerThread getServerThreads() {
return serverThreads;
}
public void setServerThreads(ListServerThread serverThreads) {
this.serverThreads = serverThreads;
}
public ServerSocket getServerSocket() {
return serverSocket;
}
public void setServerSocket(ServerSocket serverSocket) {
this.serverSocket = serverSocket;
}
public static void main(String[] args) {
Server server = null;
try {
server = new Server();
} catch (IOException e) {
e.printStackTrace();
System.exit(-1);
}
try {
Socket socket;
Thread t;
while (true) {
socket = server.getServerSocket().accept();
ServerThread serverThread = new ServerThread(server, socket);
server.getServerThreads().add(serverThread);
t = new Thread(serverThread);
t.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
public void sendMessage(String message, Socket socket) {
for (ServerThread serverThread : serverThreads) {
try {
serverThread.getDos().writeUTF(message);
} catch (IOException e) {
// e.printStackTrace();
System.out.println("推送消息给" + serverThread.getSocket().getRemoteSocketAddress() + "过程中发生java源代码QQ群了错误.");
}
}
}
}
class ServerThread implements Runnable {
private Server server;
private Socket socket;
private DataInputStream dis;
private DataOutputStream dos;
public ServerThread(Server server, Socket socket) throws IOException {
this.server = server;
this.socket = socket;
dis = new DataInputStream(socket.getInputStream());
dos = new DataOutputStream(socket.getOutputStream());
}
public Server getServer() {
return server;
}
public void setServer(Server server) {
this.server = server;
}
public Socket getSocket() {
return socket;
}
public void setSocket(Socket socket) {
this.socket = socket;
}
public DataInputStream getDis() {
return dis;
}
public void setDis(DataInputStream dis) {
this.dis = dis;
}
public DataOutputStream getDos() {
return dos;
}
public void setDos(DataOutputStream dos) {
this.dos = dos;
}
public void run() {
String message = "";
while (!message.equals("logout")) {
try {
message = socket.getRemoteSocketAddress() + " say: " + dis.readUTF();
// System.out.println(message);
server.sendMessage(message, socket);
} catch (IOException e) {
//e.printStackTrace();
break;
}
}
server.getServerThreads().remove(this);
try {
dis.close();
dos.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Client.java
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class Client {
private Socket socket;
private DataOutputStream dos;
private DataInputStream dis;
public Client() throws UnknownHostException, IOException {
socket = new Socket("127.0.0.1", 8025);
dis = new DataInputStream(socket.getInputStream());
dos = new DataOutputStream(socket.getOutputStream());
new Thread(new ClientThread(this)).start();
}
public Socket getSocket() {
return socket;
}
public void setSocket(Socket socket) {
this.socket = socket;
}
public DataOutputStream getDos() {
return dos;
}
public void setDos(DataOutputStream dos) {
this.dos = dos;
}
public DataInputStream getDis() {
return dis;
}
public void setDis(DataInputStream dis) {
this.dis = dis;
}
public void close() {
try {
dis.close();
dos.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private void sendMessage(String message) {
try {
dos.writeUTF(message);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Client client = null;
try {
client = new Client();
System.out.println(client.getSocket().getLocalPort());
} catch (IOException e) {
System.out.println("BUG");
e.printStackTrace();
System.exit(-1);
}
String message = "";
Scanner scanner = new Scanner(System.in);
while (!message.equals("logout")) {
message = scanner.nextLine();
// System.out.println(message);
client.sendMessage(message);
}
scanner.close();
client.close();
}
}
class ClientThread implements Runnable {
private Client client;
public ClientThread(Client client) {
super();
this.client = client;
}
@Override
public void run() {
try {
while (true) {
System.out.println(client.getDis().readUTF());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
相关问答
Q1: java学习qq群
68983738 java技术联盟2 8745590 JAVA开发者
3074300 JAVA PROGRAMMER
6586657 Java交流
Q2: 用java实现QQ群聊
很久前写java源代码QQ群的代码java源代码QQ群了java源代码QQ群,以前能运行。电脑没装jdkjava源代码QQ群,没试试java源代码QQ群,自己试一下把。。
---------------服务器------------
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
class myframe extends Frame implements ActionListener,WindowListener,Runnable,KeyListener
{
Thread mythread = new Thread(this);
Socket mysocket;
DataInputStream in;
DataOutputStream out;
Label label_ip = new Label("IP");
Label label_port = new Label("Port");
TextField text_ip = new TextField("127.1.1.0",15);
TextField text_port = new TextField("8888",15);
Button button_connect = new Button("连接");
TextArea text_area_show = new TextArea();
TextField text_send = new TextField(45);
Button button_send = new Button("发送");
myframe()
{
Panel panel1 = new Panel();
Panel panel2 = new Panel();
panel1.setLayout(new FlowLayout());
panel1.add(label_ip);
panel1.add(text_ip);
panel1.add(label_port);
panel1.add(text_port);
panel1.add(button_connect);
panel2.setLayout(new FlowLayout());
panel2.add(text_send);
panel2.add(button_send);
add(panel1,BorderLayout.NORTH);
add(text_area_show,BorderLayout.CENTER);
add(panel2,BorderLayout.SOUTH);
text_send.addKeyListener(this);
button_connect.addActionListener(this);
button_send.addActionListener(this);
addWindowListener(this);
this.setTitle("客户端");
setBounds(200,200,400,350);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == button_connect)
{
try
{
String ip = null,port = null;
ip = text_ip.getText();
port = text_port.getText();
mysocket = new Socket(ip, Integer.parseInt(port));
in = new DataInputStream(mysocket.getInputStream());
out = new DataOutputStream(mysocket.getOutputStream());
}
catch (UnknownHostException ex)
{
Logger.getLogger(myframe.class.getName()).log(Level.SEVERE, null, ex);
}
catch (IOException ex)
{
Logger.getLogger(myframe.class.getName()).log(Level.SEVERE, null, ex);
}
mythread.start();
}
if(e.getSource() == button_send)
{
if(mysocket.isConnected() == true)
{
String temp = null;
temp = text_send.getText();
try
{
out.writeUTF(temp);
text_send.setText(null);
}
catch (IOException ex)
{
Logger.getLogger(myframe.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
public void run()
{
while(true)
{
String temp = null;
try
{
temp = in.readUTF();
}
catch (IOException ex)
{
text_area_show.append("服务器退出\n");
return;
}
temp += "\n";
text_area_show.append(temp);
}
}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_ENTER)
{
String temp = null;
temp = text_send.getText();
try
{
out.writeUTF(temp);
}
catch (IOException ex)
{
Logger.getLogger(myframe.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
public void windowOpened(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void keyTyped(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
}
public class mywindow
{
public static void main(String argv[])
{
myframe f = new myframe();
}
}
-----------客户端-----------
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
class SocketList
{
int length = 0;
Socket socketlist[] = new Socket[10];
SocketList()
{
}
void add(Socket s)
{
if(length == 10)
{
return;
}
socketlist[length] = s;
length++;
}
void Delete(Socket s)
{
int i = 0;
for(i = 0;i length;i++)
{
if(socketlist[i] == s)
{
break;
}
}
for(int j = i;j length;j++)
{
socketlist[j] = socketlist[j + 1];
}
length--;
/*
for(int k = 0;k length;k++)
{
if(socketlist[k].isBound() == true)
{
System.out.print("error");
}
}*/
}
}
class FrameThread extends Thread
{
myframe frame;
FrameThread(myframe f)
{
frame = f;
start();
}
public void run()
{
while(true)
{
InetAddress addr = null;
Socket s = null;
try
{
s = frame.server.accept();
addr = s.getInetAddress();
frame.socketlist.add(s);
for(int i = 0;i frame.socketlist.length;i++)
{
if(frame.socketlist.socketlist[i] != s )
{
DataInputStream in = new DataInputStream(frame.socketlist.socketlist[i].getInputStream());
DataOutputStream out= new DataOutputStream(frame.socketlist.socketlist[i].getOutputStream());
out.writeUTF(addr + "连接到服务器");
}
}
}
catch (IOException ex)
{
Logger.getLogger(FrameThread.class.getName()).log(Level.SEVERE, null, ex);
}
frame.text_area_show.append(addr + "连接到服务器\n");
try
{
frame.list.add(InetAddress.getLocalHost().getHostAddress() + "-" + s.getPort());
}
catch (UnknownHostException ex)
{
Logger.getLogger(FrameThread.class.getName()).log(Level.SEVERE, null, ex);
}
try
{
new ClientThread(s, frame);
}
catch (IOException ex)
{
Logger.getLogger(FrameThread.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
class ClientThread extends Thread
{
DataInputStream in = null;
DataOutputStream out = null;
Socket mysocket = new Socket();
myframe frame = null;
InetAddress addr = null;
ClientThread(Socket s,myframe f) throws IOException
{
mysocket = s;
addr = mysocket.getLocalAddress();
frame = f;
in = new DataInputStream(mysocket.getInputStream());
out = new DataOutputStream(mysocket.getOutputStream());
out.writeUTF("成功连接服务器");
start();
}
public void run()
{
while(true)
{
String temp = null;
try
{
temp = in.readUTF();
for(int i = 0;i frame.socketlist.length;i++)
{
DataInputStream in_temp = new DataInputStream(frame.socketlist.socketlist[i].getInputStream());
DataOutputStream out_temp = new DataOutputStream(frame.socketlist.socketlist[i].getOutputStream());
out_temp.writeUTF(addr + "说: " + temp);
}
frame.text_area_show.append(addr + "说: " + temp + "\n");
}
catch (IOException ex)
{
frame.socketlist.Delete(mysocket);
frame.text_area_show.append(addr + "退出服务器\n");
for(int i = 0;i frame.socketlist.length;i++)
{
try
{
DataInputStream in_temp = new DataInputStream(frame.socketlist.socketlist[i].getInputStream());
}
catch (IOException ex1)
{
Logger.getLogger(ClientThread.class.getName()).log(Level.SEVERE, null, ex1);
}
DataOutputStream out_temp = null;
try
{
out_temp = new DataOutputStream(frame.socketlist.socketlist[i].getOutputStream());
}
catch (IOException ex1)
{
Logger.getLogger(ClientThread.class.getName()).log(Level.SEVERE, null, ex1);
}
try
{
out_temp.writeUTF(addr + "退出服务器");
}
catch (IOException ex1)
{
Logger.getLogger(ClientThread.class.getName()).log(Level.SEVERE, null, ex1);
}
}
return;
}
}
}
}
class myframe extends JFrame implements ActionListener,WindowListener,KeyListener
{
List list = new List(16);
TextArea text_area_show = new TextArea(15,40);
TextField text_send = new TextField(50);
Button button_send = new Button("发送");
ServerSocket server = null;
FrameThread thread;
SocketList socketlist = new SocketList();
myframe() throws IOException
{
Panel panel1 = new Panel();
panel1.setLayout(new FlowLayout());
panel1.add(text_area_show);
panel1.add(list);
list.addActionListener(this);
Panel panel2 = new Panel();
panel2.setLayout(new FlowLayout());
panel2.add(text_send);
panel2.add(button_send);
setLayout(new FlowLayout());
add(panel1);
add(panel2);
text_send.addKeyListener(this);
button_send.addActionListener(this);
addWindowListener(this);
server = new ServerSocket(8888);
thread = new FrameThread(this);
setTitle("服务器");
setBounds(200,200,450,330);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == list)
{
text_area_show.append(list.getSelectedItem() + "\n");
}
if(e.getSource() == button_send)
{
for(int i = 0;i socketlist.length;i++)
{
try
{
DataInputStream in = new DataInputStream(socketlist.socketlist[i].getInputStream());
}
catch (IOException ex)
{
Logger.getLogger(myframe.class.getName()).log(Level.SEVERE, null, ex);
}
DataOutputStream out = null;
try
{
out = new DataOutputStream(socketlist.socketlist[i].getOutputStream());
}
catch (IOException ex)
{
Logger.getLogger(myframe.class.getName()).log(Level.SEVERE, null, ex);
}
try
{
out.writeUTF(text_send.getText());
text_send.setText(null);
// text_area_show.append(text_send.getText() + "\n");
}
catch (IOException ex)
{
Logger.getLogger(myframe.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
public void windowOpened(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void keyTyped(KeyEvent e) {}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_ENTER)
{
for(int i = 0;i socketlist.length;i++)
{
try
{
DataInputStream in = new DataInputStream(socketlist.socketlist[i].getInputStream());
}
catch (IOException ex)
{
Logger.getLogger(myframe.class.getName()).log(Level.SEVERE, null, ex);
}
DataOutputStream out = null;
try
{
out = new DataOutputStream(socketlist.socketlist[i].getOutputStream());
}
catch (IOException ex)
{
Logger.getLogger(myframe.class.getName()).log(Level.SEVERE, null, ex);
}
try
{
out.writeUTF(text_send.getText());
text_area_show.append(text_send.getText() + "\n");
}
catch (IOException ex)
{
Logger.getLogger(myframe.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
public void keyReleased(KeyEvent e) {}
}
public class mywindow
{
public static void main(String argv[]) throws IOException
{
myframe f = new myframe();
}
}
Q3: 有没有交流Java或者c语言,或者电脑方面的qq群啊,求介绍一个,新手求带...
86435203 91513074 千人java群。
如果我的回答对您有帮助,请在我的回答下面选择为满意答案。祝您每天好心情。
java源代码QQ群的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java开发私活群、java源代码QQ群的信息别忘了在本站进行查找喔。







