Java聊天室服务器端和客户端的完整代码
根据JAVA的网络相关知识和多线程的知识,要简单的能够实现一对一通讯务必能运行!加注释。hey_tear@yeah.net(326290171)这是邮箱地址谢谢。...
根据JAVA的网络相关知识和多线程的知识,要简单的 能够实现一对一通讯 务必能运行!加注释。hey_tear@yeah.net(326290171) 这是邮箱地址 谢谢。
展开
1个回答
展开全部
下面有个IP你把它设成对方的ip地址就可以了,在他的电脑上也把ip设为你自己的就可以实现QQ聊天了,就是界面有点丑!!希望能帮助到你!你可以查考下!! import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.TextArea; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollBar; import javax.swing.JScrollPane; public class UDPChat extends JFrame implements ActionListener{ public TextArea textmessage = null ; public TextArea sendtext = null ; public DatagramSocket socket; public JScrollBar vsBar; public UDPChat() { super (); setTitle("小型聊天程序"); setBounds(200,150,350,280); JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBackground(Color.BLACK); textmessage = new TextArea(); sendtext = new TextArea(); textmessage.setEditable( false ); textmessage.setColumns(35); textmessage.setRows(10); // textmessage.setLineWrap(true); sendtext.setColumns(35); sendtext.setRows(2); JButton buttonOK = new JButton("确定"); JButton buttonclean = new JButton("清空"); JButton buttonquit = new JButton("退出"); GridLayout grid = new GridLayout(3,1); grid.setHgap(10); grid.setVgap(10); panel1.setLayout(grid); // panel1.setLayout(new GridLayout(3,1)); panel1.add(buttonOK); panel1.add(buttonclean); panel1.add(buttonquit); panel2.setLayout( new FlowLayout()); panel2.add(textmessage); panel2.add(sendtext); getContentPane().add(panel1,BorderLayout.EAST); getContentPane().add(panel2,BorderLayout.CENTER); setVisible( true ); buttonOK.addActionListener( this ); buttonclean.addActionListener( this ); buttonquit.addActionListener( this ); server(); } public void server() { try { socket = new DatagramSocket(9527); byte [] buf = new byte [1024]; final DatagramPacket dp1 = new DatagramPacket(buf,buf.length); Runnable run = new Runnable(){ public void run() { while ( true ) { try { Thread.sleep(100); socket.receive(dp1); int len = dp1.getLength(); String message = new String(dp1.getData(),0,len); String ip = dp1.getAddress().getHostAddress(); System.out.println(ip); if (!InetAddress.getLocalHost().getHostAddress().equals(ip)) textmessage.append(ip+"\n"+message+'\n'); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } } }; new Thread(run).start(); } catch (SocketException e) { e.printStackTrace(); } } public static void main(String[] args) { UDPChat udp = new UDPChat(); } @Override public void actionPerformed(ActionEvent e) { // JButton button = (JButton) e.getSource(); String buttonname =e.getActionCommand(); if (buttonname.equals("退出")) System.exit(0); if (buttonname.equals("清空")) { textmessage.setText(""); } if (buttonname.equals("确定")) { String iP = "192.168.8.15"; try { InetAddress address =InetAddress.getByName(iP); byte []data = sendtext.getText().getBytes(); DatagramPacket dp = new DatagramPacket(data,data.length,address,9527); String myip = InetAddress.getLocalHost().getHostAddress(); textmessage.append(myip +" \n"+sendtext.getText() +"\n"); socket.send(dp); sendtext.setText(""); } catch (UnknownHostException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } }
快又稳
2024-10-28 广告
2024-10-28 广告
数据库服务器作为广州快又稳网络科技有限公司的核心基础设施之一,承载着公司海量数据的存储、处理与访问需求。我们采用高性能、高可用性的服务器架构,确保数据的安全性、完整性和快速响应能力。通过先进的数据库管理系统,优化查询效率,支持复杂业务场景下...
点击进入详情页
本回答由快又稳提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询