当前位置: 代码迷 >> J2SE >> 关于Socket ,登录信息和发送其他信息,服务器要怎么区分
  详细解决方案

关于Socket ,登录信息和发送其他信息,服务器要怎么区分

热度:175   发布时间:2016-04-23 19:48:51.0
关于Socket ,登录信息和发送其他信息,服务器要如何区分
关于Socket ,登录信息和发送其他信息,服务器要如何区分。

我的想法是这样的,一个客户端登录服务端,服务器处理了用户的登录请求,登录成功之后,用户可以向服务端发送文本信息,图片信息等,这就是不同的请求,请问这个问题要如何解决? 服务端肯定要能够判断用户传递过来的是是 登录信息,还是已经登录的用户发送文本信息,图片信息等?这个应该如何判断?我从来没做过这方面的,希望大家多多指点。

还有一个疑问就是,我socket服务端用的是多线程,这个能承受多少人链接?
------解决思路----------------------
协议..
客户端和服务器是要规定发送消息的规则的.
比如在每个消息前面 都先写一个 int 值. 来规定这个消息是做什么的.
1 是登陆. 2是发信息, 3是发图片.. 之类的..
服务器读消息的时候, 先根据这个值, 来判断用什么逻辑处理.

大概就是这么个意思, 我说的是一种很简单的方式. 但是当项目比较大, 逻辑比较复杂的时候, 是要在中间加一些管理类的代码的.. 不可能所有的消息都在一个类里处理对吧...
------解决思路----------------------
能接受多少个连接就不光是这个软件的代码的事了。
------解决思路----------------------
引用:
关于Socket ,登录信息和发送其他信息,服务器要如何区分。

我的想法是这样的,一个客户端登录服务端,服务器处理了用户的登录请求,登录成功之后,用户可以向服务端发送文本信息,图片信息等,这就是不同的请求,请问这个问题要如何解决? 服务端肯定要能够判断用户传递过来的是是 登录信息,还是已经登录的用户发送文本信息,图片信息等?这个应该如何判断?我从来没做过这方面的,希望大家多多指点。

还有一个疑问就是,我socket服务端用的是多线程,这个能承受多少人链接?


这些,需要你设计一个两边的通信规则(协议来实现),一般socket长连接的,比较用TLV 的方式定义各种命令。例如,用3个INT代表消息头,分别为消息类型(登录,查询,消息发送请求或响应等),然后一个 int的序列号,一个int的长度,然后后面跟着这个长度的数据内容。

差的java程序,估计几百到1500;好一点的,一台服务器承受10-20W连都可以的。
  相关解决方案