社区
Java
帖子详情
如何更改socket去实现多人聊天
LOCO1993
2015-10-25 10:32:53
2楼上代码,新人刚刚学习socket,下面的代码只能实现单个客户端与服务器聊天,但是把服务器的监听设置了随时之后发现不能看了,看了两天还没完成,希望各位大神能讲解下思路,最后能在原代码上加以更改的讲解,谢谢
...全文
85
2
打赏
收藏
如何更改socket去实现多人聊天
2楼上代码,新人刚刚学习socket,下面的代码只能实现单个客户端与服务器聊天,但是把服务器的监听设置了随时之后发现不能看了,看了两天还没完成,希望各位大神能讲解下思路,最后能在原代码上加以更改的讲解,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LOCO1993
2015-10-25
打赏
举报
回复
client: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net.*; import java.io.*; public class MyClient { public static void main(String[] args){ JFrame f=new JFrame("AA"); JPanel p1=new JPanel(); JPanel p2=new JPanel(); JTextArea ta=new JTextArea(15,30); ta.setEditable(false); //文本域只读 JScrollPane sp=new JScrollPane(ta); //滚动窗格 JTextField tf=new JTextField(20); JButton b=new JButton("发送"); p1.add(sp); p2.add(tf); p2.add(b); f.add(p1,"Center"); f.add(p2,"South"); f.setBounds(300,300,360,300); f.setVisible(true); f.setResizable(false); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Socket socket=null; BufferedInputStream bis=null; BufferedOutputStream bos=null; try{ socket=new Socket("127.0.0.1",5000); bis=new BufferedInputStream(socket.getInputStream()); bos=new BufferedOutputStream(socket.getOutputStream()); MyThread01 mt=new MyThread01(bis,ta); mt.start(); }catch(Exception e){ e.printStackTrace(); } b.addActionListener(new ButtonActionListener01(tf,ta,bos)); } } class ButtonActionListener01 implements ActionListener{ JTextField tf; JTextArea ta; BufferedOutputStream bos; public ButtonActionListener01(JTextField tf,JTextArea ta,BufferedOutputStream bos){ this.tf=tf; this.ta=ta; this.bos=bos; } public void actionPerformed(ActionEvent e){ String message=tf.getText(); if(!message.equals("")){ tf.setText(""); //清空文本框 ta.append("AA:"+message+"\n"); //添加到文本域并换行 try{ bos.write(message.getBytes()); bos.flush(); }catch(Exception ex){ System.out.println("发送失败"); } } } } class MyThread01 extends Thread{ BufferedInputStream bis; JTextArea ta; public MyThread01(BufferedInputStream bis,JTextArea ta){ this.bis=bis; this.ta=ta; } public void run(){ try{ while(true){ byte[] b=new byte[100]; int length=bis.read(b); String message=new String(b,0,length); ta.append("BB:"+message+"\n"); } }catch(Exception e){ e.printStackTrace(); } } }
LOCO1993
2015-10-25
打赏
举报
回复
server: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net.*; import java.io.*; public class MyServer { public static void main(String[] args) { JFrame f = new JFrame("BB"); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JTextArea ta = new JTextArea(12, 30); // 文本域,第一个参数为行数,第二个参数为列数 ta.setEditable(false); // 文本域只读 JScrollPane sp = new JScrollPane(ta); // 滚动窗格 JTextField tf = new JTextField(20); JButton b = new JButton("发送"); p1.add(sp); p2.add(tf); p2.add(b); f.add(p1, "Center"); f.add(p2, "South"); f.setBounds(300, 300, 360, 300); f.setVisible(true); f.setResizable(false); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ServerSocket server = null; Socket socket = null; BufferedInputStream bis = null; BufferedOutputStream bos = null; try { server = new ServerSocket(5000); // ta.append("等待AA连接...\n"); socket = server.accept(); // ta.append("AA已连接\n"); bis = new BufferedInputStream(socket.getInputStream()); bos = new BufferedOutputStream(socket.getOutputStream()); MyThread1 mt = new MyThread1(bis, ta); mt.start(); } catch (Exception e) { e.printStackTrace(); } b.addActionListener(new ButtonActionListener1(tf, ta, bos)); } } class ButtonActionListener1 implements ActionListener { JTextField tf; JTextArea ta; BufferedOutputStream bos; public ButtonActionListener1(JTextField tf, JTextArea ta, BufferedOutputStream bos) { this.tf = tf; this.ta = ta; this.bos = bos; } public void actionPerformed(ActionEvent e) { String message = tf.getText(); // 获取文本框中的内容 if (!message.equals("")) { tf.setText(""); // 清空文本框 ta.append("BB:" + message + "\n"); // 添加到文本域并换行 try { bos.write(message.getBytes()); bos.flush(); } catch (Exception ex) { System.out.println("发送失败!"); } } } } class MyThread1 extends Thread { BufferedInputStream bis; JTextArea ta; public MyThread1(BufferedInputStream bis, JTextArea ta) { this.bis = bis; this.ta = ta; } public void run() { try { while (true) { byte[] b = new byte[100]; int length = bis.read(b); String message = new String(b, 0, length); ta.append("AA:" + message + "\n"); } } catch (Exception e) { e.printStackTrace(); } } }
基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip
【项目介绍】 基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip 基于tkinter和
socket
tcp
实现
的
多人
在线
聊天
系统python源码.zip 【说明】 1、项目源码在上传前,都经过本地成功运行,功能测试无误。请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、机械电子信息等相关专业背景的在校大学生、专业老师 行业从业人员等下载使用。 3、用途:项目代表性强,具有创新性和启发性,故具有挺高的学习借鉴价值。不仅适合小白入门进阶,还可作为毕设项目、课程设计、大作业、比赛初期项目立项演示等。 4、如果基础还不错,又热爱学习钻研,也可基于此项目基础上进行修改进行二次开发。 本人也是技术狂热者,如果觉得此项目对您有价值,欢迎下载使用! 无论您是运行还是二次开发,遇到问题或困惑,欢迎私信交流学习。
socket
多人
聊天
室代码+详细解释
计算机网实验大作业,
socket
多人
聊天
室代码+详细解释md文件为本人对该代码的详细解释,很详细,每一部分写的都很明白
windows环境下C语言多线程
实现
网络编程,
多人
聊天
室,[总结].pdf
windows环境下C语言多线程
实现
网络编程,
多人
聊天
室,[总结].pdf
操作系统与Linux程序设计团队作业,基于
Socket
编程的
多人
聊天
室 <C语言
实现
>+源代码+文档说明
操作系统与Linux程序设计团队作业,基于
Socket
编程的
多人
聊天
室
实现>+源代码+文档说明 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以
实现
其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
安卓XMPP
聊天
通讯
Socket
相关-androidasmack注册登陆
聊天
多人
聊天
室文件传输ASmack.zip
android asmack 注册 登陆
聊天
多人
聊天
室 文件传输ASmack.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Java
51,411
社区成员
86,019
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章