Java Socket 多线程聊天室

本来这次作业我是想搞个图形界面的,然而现实情况是我把题意理解错了,于是乎失去了最初的兴致,还是把程序变成了功能正确但是“UI”不友好的console了,但是不管怎么样,前期的图形界面的开发还是很有收获的,毕竟讲真,想要把Java搞得有形有色的也是很不容易的,借助可视化的插件windowsBuilder,这个过程还是既exciting 又tiring的。

好吧 ,然而图形界面已经成为了历史,现在来说说这个功能正确的console 吧

我也是刚知道的Eclipse里面是可以跑好多个程序的,只要你的一个.java文件中有public static void main,他就能给你一个窗口,让你跑起来。只不过这些窗口堆叠在一起,需要自行选择不同的窗口进行IO操作。

总的思路是采用c/s的方式,client借助socket完成向server的发送和接受两个工作,当然了,为了体现出真实情况下的双工的特点,发送和接受是需要开两个线程的,也就是说,一个用户需要自己管理两个线程。server则相对来讲比较复杂,因为这里面涉及到了调度,server需要有发送消息给在线client的线程(这个线程要做的事情就是只要有消息就要把消息发到所有的用户的窗口),以及接受client发来的消息的线程(这个线程要做的事情就是将接收到的消息全部交给发送消息的线程,于是这两个线程之间的通信问题也是实现上的一个关键~),为了使得所有的用户消息是同步的,server需要管理一个用户线程的列表,用以实现用户的行为的控制,于是乎这就要求只要有用户请求连接服务器,服务器就要为用户新建一个线程,那么client 和server 之间靠什么来进行联系呢,那就是我们的socket了。

时间: 2024-11-08 12:24:37

Java Socket 多线程聊天室的相关文章

字节码学院之Java socket 控制台聊天室

学了个把月基础,终于写出了一个双工通信的控制台版本的聊天室了,废话不说啦,直接上代码:服务端代码 package com.zijiemaedu.socketdemo; import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; /** * @author: Mr-zhang * @create: 2019-05-30 09:48 * @emall: [email

java Socket多线程聊天程序(适合初学者)

一个非常简单的java聊天程序,有客户端和服务器端,目前只有群聊功能,其他的所有功能都可以在这个基础上添加,现在我分享出来主要是为了保持一个最简单的java聊天程序便于初学者学习,界面也非常的简洁,只有两个文件,主要是用了socket,java多线程,知识点不是很多,很适合初学者 下面是服务器端代码 package tk.socket; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.Act

多线程聊天室

基于Java的多线程聊天室 客户端: public class MultiThreadClient { private static class RecMsg implements Runnable{ private Socket client; public RecMsg(Socket client) { this.client = client; } @Override public void run() { Scanner sc = null; try { sc = new Scanner

MFC笔记之多线程聊天室

新手刚接触,跟着孙鑫老师视频一步一步的做.从VC6.0到VS2010好像并不是那么顺利,下面记录下一点收获. 网络编程的一般步骤: 1声明套接字版本(WSAStartup);2创建套接字(socket);3绑定套接字(bind);4发送接收(sendto/recvfrom);5关闭(closesocket) 第1~3步代码如下: 1 CString error; 2 WORD wver; 3 wver=MAKEWORD(1,1); 4 WSAData data; 5 if(0!=WSAStart

Python Socket 编程——聊天室示例程序

原文:Python Socket 编程--聊天室示例程序 上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的理解. 聊天室程序需求 我们要实现的是简单的聊天室的例子,就是允许多个人同时一起聊天,每个人发送的消息所有人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.如下图: 图来自:http://www.ibm.com/de

nodejs+socket.io聊天室

nodejs+socket.io 聊天室 Node.js v0.12.6 Socket.io v1.3.5 RequireJS v2.1.18 Materialize v0.97.0 聊天室演示地址 项目地址 版权声明:本文为博主原创文章,未经博主允许不得转载.

Socket.IO聊天室

小编心语:大家过完圣诞准备迎元旦吧~小编在这里预祝大家元旦快乐!!这一次要分享的东西小编也不是很懂啊,总之小编把它拿出来是觉地比较稀奇,而且程序也没有那么难,是一个比较简单的程序,大家可以多多试试~ Socket.IO聊天室 简介:Socket.IO实现了实时双向的基于事件的通讯机制.旨在让各种浏览器与移动设备上实现实时app功能,模糊化各种传输机制.下面我们使用Node.js和Socket.IO来做一个简单的聊天室.一.初始化项目 (这个是在实验楼网站的虚拟平台需要实现的~可自动略过这一环节,

java socket 多线程网络传输多个文件

http://blog.csdn.net/njchenyi/article/details/9072845 java socket 多线程网络传输多个文件 2013-06-10 21:26 3596人阅读 评论(1) 收藏 举报  分类: JAVA(158)  由于需要研究了下用 java socket 传输文件,由于需要传输多个文件,因此,采用了多线程设计.客户端每个线程创建一个 socket 连接,每个 socket 连接负责传输一个文件,服务端的ServerSocket每次 accept

Python Socket 编程——聊天室演示样例程序

上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和client的代码了解主要的 Python Socket 编程模型.本文再通过一个样例来加强一下对 Socket 编程的理解. 聊天室程序需求 我们要实现的是简单的聊天室的样例,就是同意多个人同一时候一起聊天.每一个人发送的消息全部人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.例如以下图: 图来自:http://www.ibm.com/developerworks/linux/tu