我正在为我的客户端到服务器应用程序创建一个登录服务器.
基本上有5台服务器,所有这些服务器都连接到一台登录服务器.
客户端可以连接到这5个服务器中的任何一个,但需要使用用户名和密码进行身份验证.身份验证应该在登录服务器中完成,登录服务器应该返回应该将答案返回给客户端的实际服务器的答案.
就像那样:
客户端 - >服务器 - >登录服务器 - >服务器 - >客户端(响应代码)
现在,我使用的是Netty,它是NIO,它不是每个客户端的线程.现在,要通过NIO进行身份验证,我们必须等待从登录服务器到达的响应,这可能需要一段时间并延迟其他想要登录的客户端,实际上您不能只是等待NIO的回答,就像那样.所以我想到了如何让它发挥作用的想法.我的想法是在不同的线程上运行请求并使用onResponse(String key, int responseCode)方法生成事件,然后将客户端的通道放在带有生成密钥的映射中,这样我们就可以知道响应属于谁.因此,当我们进行身份验证时,我们会发送密钥和用户的数据.
但我觉得这是一种糟糕的方式,并且有一种更有效的方法来做到这一点.有任何想法吗?
我为MyClass重载了'<<'运算符。
friend std::ostream& operator << (std::ostream& out, const MyClass& Obj);
Run Code Online (Sandbox Code Playgroud)
现在,我想将std :: ostream转换为QDataStream,而不是将MyClass转换为QDataStream。
friend QDataStream operator << (QDataStream& out, std:ostream&);
Run Code Online (Sandbox Code Playgroud)
这样的事情。您的帮助将不胜感激。
我正在详细研究http协议并遇到本教程.我认为,当发出http请求时,将建立一个TCP连接,即客户端(浏览器)和服务器.在该TCP连接上发送http请求数据,在服务器端解析http请求并在相同的TCP连接上发送http响应.发送响应后,TCP连接终止.对于下一个http请求,将建立新的TCP连接.但是在教程下面说了别的话.我是对还是错?
我有一个像string []句子一样的字符串数组,它包含每个索引中的一个句子,如This is the first messagein sentences[0]和This is the second messagein sentences[1]等等.我的java代码将信息发送到服务器进行情绪分析是这样的:
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
out.write(
"[ " +
"\"Can't wait for the movie\"," +
"\"Countdown! Only ten days remaining!\" " +
"]");
out.flush();
out.close();
Run Code Online (Sandbox Code Playgroud)
如何用字符串数组替换代码中的上述文本,因为它的长度为n?