小白求教,关于JAVA socket客户端 和服务端的通信
1个回答
展开全部
1、客户端连接一般是与用户绑定的,无用户数据的socket就算能区分连接也毫无意义。一般做法是客户端利用HTTP登录,登录服务器分析各个socket服务器的负载后发送给客户端应该连接哪个socket服务器,客户端拿到登录成功后的用户ID后再连接socket服务器,此用户ID就可以用于socket服务器区分客户端连接。
2、如果自建socket服务器,建议最好不用SSH、SSM之类的框架,可控性更高,更加轻量,但工作量稍显繁多,且复杂;建议使用Netty做scoket基础框架。
3、客户端服务端通信可以用json格式的文本行(字符流,以\r\n自动做粘包断包解码),还有自定义数据格式的字节流(比如 数据包内容长度+数据包内容,以数据包内容长度手动编写代码做粘包断包解码),还可以用时下流行的protobuf。
2、如果自建socket服务器,建议最好不用SSH、SSM之类的框架,可控性更高,更加轻量,但工作量稍显繁多,且复杂;建议使用Netty做scoket基础框架。
3、客户端服务端通信可以用json格式的文本行(字符流,以\r\n自动做粘包断包解码),还有自定义数据格式的字节流(比如 数据包内容长度+数据包内容,以数据包内容长度手动编写代码做粘包断包解码),还可以用时下流行的protobuf。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询