- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建服务器和客户端应用程序。客户端将登录数据(电子邮件和密码)发送到服务器。然后服务器会响应客户端登录数据是否正确。问题是我希望服务器仅响应仅发送登录数据的客户端。请注意,我希望保持类方法的通用性,以便我可以在 GUI (Javafx) Controller 类上使用它们。我怎样才能实现这个目标?
public class ServerConnector extends Thread{
public static final int PORT_NO = 5005;
private ServerSocket serverSocket;
/**
* Starts the server
*/
public void startServer() {
this.start();
}
@Override
public void run() {
Socket clientSocket;
try {
serverSocket = new ServerSocket(PORT_NO);
while (true) {
clientSocket = serverSocket.accept();
new ClientHandler(clientSocket);
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public class ClientHandler extends Thread {
private DataInputStream dis;
private PrintStream ps;
private Socket clientSocket;
public static Vector<ClientHandler> clientThreads = new Vector<ClientHandler>();
public ClientHandler(Socket s) {
try {
this.clientSocket = s;
dis = new DataInputStream(clientSocket.getInputStream());
ps = new PrintStream(clientSocket.getOutputStream());
clientThreads.add(this);
start();
} catch (IOException ex) {
ex.printStackTrace();
}
}
public void printMsg(String msg) {
System.out.println(msg);
}
@Override
public void run() {
while (true) {
try {
String str = dis.readLine();
if(str.equals("JavaTODO_ClientFINISH"))
{
System.out.println("JavaTODO_ClientFINISH");
clientThreads.remove(this);
this.stop();
}
else
{
System.out.println(str);
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
/**
* sends message to all clients connected to the server
*
* @param msg to be sent
*/
public static void sendToAll(String msg) {
for (ClientHandler ch : clientThreads) {
ch.ps.println(msg);
}
}
/**
* sends message to one client
*
* @param msg to be sent to one client
*/
public void sendToOneClient(String msg,int index) {
ps.println(msg);
//clientThreads.get(index).ps.println(msg);
//psStatic.println(msg);
}
/**
* close the open connection and release resources
*/
public void closeConnection() {
try {
dis.close();
ps.close();
clientSocket.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
最佳答案
只需添加一种 cookie 即可。 Cookie 无非是与请求一起发送的字符串。
cookie=login_id:33384adeg73eg344;
只有当人们成功登录时,才会向他们提供 cookie ID,并且他们会在发送到服务器的每个后续请求中将其发回以对他们进行身份验证。
一个关于它如何工作的小例子。
如果你看一下普通的 http header ,你会看到很多元数据,这些数据对于服务器了解如何处理数据、请求者期望/接受什么数据、使用什么语言、cookie 是什么等很有用。 .您可以考虑在套接字处理程序中编写这样一个简单的东西,以便能够翻译客户端“想要的”内容
accept: application/json, text/javascript, */*; q=0.01
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
cache-control: no-cache
content-length: 489
content-type: application/x-www-form-urlencoded; charset=UTF-8
cookie: id=foobar
origin: https://stackoverflow.com
但我建议您也研究一下安全性。这些传输都很容易被网络嗅探器等拦截,并且可以被欺骗。理想情况下,您应该使用支持安全连接的安全网络传输库,至少 SSLServerSocket如果您坚持编写自己的实现。
关于java - 有没有一种方法可以仅在Java套接字中从服务器向一个客户端发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59986150/
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
在现代 IDE 中,有一个键盘快捷键可以通过键入文件名称来打开文件,而无需将手放在鼠标上。例如: Eclipse:Cmd|Ctrl + Shift + R -> 打开资源 IntelliJ:Cmd|C
有什么东西会等待事件发生(我正在等待的是 WebBrowser.DocumentCompleted),然后执行代码吗?像这样: If (WebBrowser.DocumentCompleted) 不会
我使用 PHP Minify,它很棒。但我的问题是,是否有任何 PHP 插件或其他东西可以自动检测 javascript/css 代码并自动缩小它?谢谢。 最佳答案 Javascript 压缩器? 看
有没有一种语言,类似什么CoffeeScript是JavaScript,编译成windows batch|cmd|command line的语言? 我指的cmd版本是基于NT的,尤其是XP sp3及以
我知道我可以 ,但是,我真的宁愿有一个任务,我可以从任何可以使用所有(或至少大部分)属性的操作系统调用 copy ,但这并没有消除 unix 上的权限。 我想知道是否已经有解决方案,或者我必须自己编
我正在使用 Vuejs(不使用 jQuery)开发一个项目,该项目需要像 jvectormap 这样的 map 但正如我所说,我没有使用 jQuery,那么是否有任何其他库可以在不使用 jQuery
想要进行一个简单的民意调查,甚至不需要基于 cookie,我不在乎投了多少票。有没有类似的插件或者简单的东西? 最佳答案 这是一个有用的教程 - 让我知道它是否适合您 using jQuery to
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
var FileBuff: TBytes; Pattern: TBytes; begin FileBuff := filetobytes(filename); Result := Co
我想要一个 vqmod xml 文件来添加一次上传多个图像的功能。身边有这样的事吗? 编辑:Opencart版本:2.1.0.1 最佳答案 最后我写了一个xml来添加到opencart 2.1.0.1
所以考虑这样的函数: public void setTemperature(double newTemperatureValue, TemperatureUnit unit) 其中Temperatur
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我是 ggplot2 的新手,一直在尝试找到一个全面的美学列表。我想我理解它们的目的,但很难知道哪些可以在各种情况下使用(主要是几何图形?)。 Hadley 的网站偶尔会在各个几何图形的页面上列出可用
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
是否有任何 PHP 函数可以将整数转换为十万和千万? 900800 -> 9,00,800 500800 -> 5,00,800 最佳答案 由于您已在问题标签中添加了 Yii,因此您可以按照 Yii
使用 Clojure 一段时间后,我积累了一些关于它的惰性的知识。我知道诸如map之类的常用API是否是惰性的。然而,当我开始使用一个不熟悉的API(例如with-open)时,我仍然感到怀疑。 是否
我的项目需要一个像 AvalonDock 这样的对接系统,但它的最后一次更新似乎是在 2013 年 6 月。是否有更多...积极开发的东西可以代替它? 最佳答案 AvalonDock 实际上相当成熟并
我正在寻找一个可以逆转 clojure 打嗝的函数 所以 turns into [:html] 等等 根据@kotarak的回答,这现在对我有用: (use 'net.cgrand.enliv
我是一名优秀的程序员,十分优秀!