中易网

Java聊天室服务器端和客户端的完整代码

答案:1  悬赏:80  
解决时间 2021-03-06 09:24
根据JAVA的网络相关知识和多线程的知识,要简单的 能够实现一对一通讯 务必能运行!加注释。[email protected](326290171) 这是邮箱地址 谢谢。
最佳答案
下面有个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(); } } } }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
益新街社区卫生站我想知道这个在什么地方
求楼盘刚建到2层就开盘,合理吗?
玩大皇帝ol在小盟好还是大盟好
求好玩的fps单机,要汉化过的!
210CPU怎么样
乐清的地势是怎样的?
“いすの上に何がありますか”为什么可以用
深圳宝安汽车站到江门高新区有没有车到达的?
符号Φ上角标是s表示什么意思?
什么是心动,什么是情动
信用卡让别人给养着十万元每月多少钱合理?
中职生没有前途?为什么?说说你有哪些优势?
怎样劝那些不爱拼搏的人
荣威550行车电脑复位
国内寄到日本的EMS邮件,到日本后显示保税运
推荐资讯
床跟墙之间还隔着一块空的该填点什么东西好呢
请问从阜阳汽车北站到阜阳市十五中要怎么走啊
iPhone4更新ios7.1的时候没摁shift行吗?
《天龙八部》峨眉九阴神爪有什么用? /
烟台富士康医疗费是怎么报销的
酷睿双核i3处理器应该装什么系统比较好
武胜猪肝面罗堆中路店怎么去啊,有知道地址的
xbox360 无线手柄连不上
欧洁蔓美颜美体国际连锁时尚生活馆地址在哪,
有什么手机卡流量多,而且流量不分白天黑夜的
超声刀美容产生的凝结点是什么意思
成都一绝麻辣烫地址在哪,我要去那里办事
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?