博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
即时通讯系统探究
阅读量:6081 次
发布时间:2019-06-20

本文共 642 字,大约阅读时间需要 2 分钟。

(1)多个线程访问服务端的时候,服务端应该怎样进行多个线程的管理与处理

一个号一个进程一个线程多个包发送

不管是客户端还是服务端,只要连上了之后,可以看做在两端连上了一个来去的双传送带,传动装置只有一个,即只有一个线程。这个线程只有在传送装置不转的时候才会停下来。传送装置是这样工作的:

一对一:
在传送装置的两端有一个智能的数据包处理器,当向我方来的数据包,我会先接收,然后拆包处理;对于我要发送的数据,也要先装包再发送。
多对多:
我们可以这样想象,有很多个传送装置的某一端都连着一个超级处理器(服务端),可以快速处理你与别人的信息;

 

所以,为什么能做到一个服务端,能服务多个客户端,其实是因为socket虽然会收到很多包,但是在某一个时刻只收到一个包,那么服务端处理的就是这个包。

(2)关于套接字(socket)传输中的序列化和反序列化:
1.Serializable
2.以前用的Arayy ar = new ArrayList();或者Map map = new HashMap();
这样用的原因都是因为ArrayList和HashMap实现了Serializable这个接口,这样在进行网络传输中就能对数据进行序列化和反序列化
3.关于利用ObjectOutputStream.writeObject()和ObjectInputStream.readObject()进行接收发送数据的序列化

everyone的那个userbean是用来群聊的,即数据库那个“0000”

转载地址:http://lozwa.baihongyu.com/

你可能感兴趣的文章
android.view.WindowManager$BadTokenException: Unable to add window
查看>>
HDU5012:Dice(bfs模板)
查看>>
iphone openssh
查看>>
Linux下MEncoder的编译
查看>>
Javascript中闭包(Closure)的探索(一)-基本概念
查看>>
spark高级排序彻底解秘
查看>>
ylbtech-LanguageSamples-PartialTypes(部分类型)
查看>>
福建省促进大数据发展:变分散式管理为统筹集中式管理
查看>>
开发环境、生产环境、测试环境的基本理解和区别
查看>>
tomcat多应用之间如何共享jar
查看>>
Flex前后台交互,service层调用后台服务的简单封装
查看>>
MySQL入门12-数据类型
查看>>
Windows Azure 保留已存在的虚拟网络外网IP(云服务)
查看>>
修改字符集
查看>>
HackTheGame 攻略 - 第四关
查看>>
js删除数组元素
查看>>
带空格文件名的处理(find xargs grep ..etc)
查看>>
华为Access、Hybrid和Trunk的区别和设置
查看>>
centos使用docker下安装mysql并配置、nginx
查看>>
关于HTML5的理解
查看>>