Java网络编程之Tcp实现多人聊天

网络编程

用Tcp实现多人聊天窗口

实现思路

在这里插入图片描述

具体思路:

​ 1、写一个server服务器,用于监听10001端口,以及处理接收和向客户端发出数据。

​ 2、客户端寻找服务器的ip地址与服务器端口。建立连接。

​ 3、每个客户端与服务器建立连接后,创建一个InputStream流和一个OutputStream流用于传输数据。

同时客户端将自己的用户信息对象通过ObejcetOutputStream流传输过来。

​ 4、服务器同时为客户端开启一个线程,用于while(true)死循环接收所发来的信息。

​ 5、服务器根据用户信息的不同权限,处理信息,并将消息发送给每个客户端,使每个客户端可见。

补充内容:

​ 1、编写一个登陆界面,用于输入你的用户名。(已实现)

​ 2、编写一个聊天窗口,用于收发数据。(已实现)

​ 3、用户分为两种不同的权限,普通用户与管理员。(已实现)

​ 4、管理员拥有踢人、禁言功能,普通用户拥有私聊功能(待实现)。

运行界面

在这里插入图片描述
在这里插入图片描述

具体代码

​ 写的乱七八糟- -!,看看就好

服务器
package chat;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;

public class Login extends Thread{
   
	static JTextArea user,psd;
	static JButton jbLogin, jbExit;
	static String usname="";
	static ObjectOutputStream os;
	static DataInputStream dis;
	static DataOutputStream dos;
	static String ReadIn=" ";
	static Login thread;
	static User u1;
	public void show() {
   
		JFrame Loginmenu=new JFrame();
		Loginmenu.setLayout(null);
		
		user=new JTextArea();//新建一个文本框
		user.setBorder(BorderFactory.createTitledBorder("你的名字"));//给这个文本框添加标题
		Loginmenu.add(user);//将一个文本框加入面板之中
		user.setBounds(120, 75, 260, 50);//设置这个文本框的(x轴,y轴,长,宽)
		
		psd=new JTextArea();//新建一个文本框
		psd.setBorder(BorderFactory.createTitledBorder("待定"));//给这个文本框添加标题
		Loginmenu.add(psd);//将一个文本框加入面板之中
		psd.setBounds(15, 380, 660, 200);//设置这个文本框的(x轴,y轴,长,宽)
		
		jbLogin=new JButton("登录");//新建一个按钮
		jbLogin.setBounds(280, 250, 100, 50);//设置这个按钮的位置大小
		Loginmenu.add(jbLogin);//将一个组件加入面板之中
		
		jbExit=new JButton("退出");//新建一个按钮
		jbExit.setBounds(120, 250, 100, 50);//设置这个按钮的位置大小
		Loginmenu.add(jbExit);//将一个组件加入面板之中
		
		
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值