java学习qq群

Python020

java学习qq群,第1张

一。47744390很好的群,我就在里面。虽然也是杂人,但天天有人能够解决你的问题

二。论坛的话非CSDN莫数了,中国最大的程序员论坛。地址是47744390

三。我也是初学者,以后可以一起交流。我QQ是158971310

四。大家一起进步,加油

很久前写的代码了,以前能运行。电脑没装jdk,没试试,自己试一下把。。

---------------服务器------------

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 = 0i <lengthi++)

{

if(socketlist[i] == s)

{

break

}

}

for(int j = ij <lengthj++)

{

socketlist[j] = socketlist[j + 1]

}

length--

/*

for(int k = 0k <lengthk++)

{

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 = 0i <frame.socketlist.lengthi++)

{

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 = 0i <frame.socketlist.lengthi++)

{

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 = 0i <frame.socketlist.lengthi++)

{

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 = 0i <socketlist.lengthi++)

{

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 = 0i <socketlist.lengthi++)

{

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()

}

}

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 List<ServerThread> serverThreads

private ServerSocket serverSocket

public Server() throws IOException {

serverSocket = new ServerSocket(8025)

serverThreads = new ArrayList<ServerThread>()

}

public List<ServerThread> getServerThreads() {

return serverThreads

}

public void setServerThreads(List<ServerThread> 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() + "过程中发生了错误.")

}

}

}

}

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()

}

}

}