问题列表 - 第14046页

为给定方案投票选择最佳协议

我有一个设计决定.我需要你的建议.

要求:

  • 服务器和客户端.客户端通常是手机.
  • 通过互联网连接.
  • 服务器和客户端希望相互通信.
  • 在客户端和服务器之间交换文本,多媒体.
  • 文本将是一些标准格式.这是预先确定的.
  • 实时要求
  • 会话通常会持续5-15分钟.在某些情况下,不到一分钟.假设会话持续时间为5分钟.
  • 该协议应遵守标准.
  • 它必须是有效的.

选项1 我为我的应用程序设计的二进制协议.

选项2将 我的服务器实现为HTTPServlet.客户端发送post请求,post消息中的查询和servlet在消息中发送响应.但是,我认为对于实时交互,这不是一个好的选择,因为即使对于同一个客户端和会话,也会为每个帖子请求创建一个新线程.请评论一下这个效率.

选项3 使用普通的servlet.将面临与上述相同的问题.

选项4 使用SOAP

选项5 使用REST

选项6 使用Google Wave(我尚未阅读规范)

选项7 建议其他一些协议

现在,我没有与网络服务的经验,但如果是选项,那么我不介意投资于它的时间.

基本上,我希望选项1的速度和效率具有标准的处理方式.

谢谢

java web-services protocols vote

9
推荐指数
3
解决办法
1039
查看次数

Java:Reader.close()关闭任何链接的读者吗?

说我做的事情如下:

Reader r = new BufferedReader(new FileReader(file));

... read ...

r.close()
Run Code Online (Sandbox Code Playgroud)

这是否会关闭底层的FileReader(并释放打开的文件句柄)?

戴夫

java

12
推荐指数
1
解决办法
6137
查看次数

用户使用单个查询和每用户密码盐登录

我决定使用存储在数据库中的每用户盐实现用户登录.盐的前缀为密码,密码用SHA进行哈希处理并存储在数据库中.

在过去我没有使用salt时,我会使用典型的方法来计算查询返回的行数,使用用户输入的用户名和密码.但是,对于每用户salt,您需要先获取salt,然后才能将其与存储的密码哈希进行比较.

因此,为了避免有两个查询(1获取盐和另一个验证输入凭据),我决定根据输入的用户名在单个查询中获取salt和散列密码.就像是

SELECT users.salt, users.password
        FROM users   
        WHERE username = ?'
Run Code Online (Sandbox Code Playgroud)

然后在服务器端代码(PHP)中,我将salt与输入的密码连接起来,哈希并将其与已经从数据库中获取的密码进行比较.

如果不清楚,我想关键的区别在于,在后一种方法中,我在数据库中完成此操作之前检查PHP中的凭据.

在安全性或其他方面,这种方法是否有任何缺点

php mysql passwords login salt

3
推荐指数
1
解决办法
1844
查看次数

查看由xsl转换的xml文档的html源代码

这是一个相当简单的案例.我有一个链接到xsl样式表的xml文档,可以在Web浏览器中查看.既然输出并不是我所期望的,那么我想查看(输出)html代码以查看发生了什么.但是,当我说"查看源代码"时,浏览器只会向我发送原始的xml文件.
请告诉我如何查看html源代码:)

更新
其实我可以用浏览器查看它(右击并说"检查元素"),但这是有点依赖于浏览器.另外,我不想为这个小礼物安装任何东西.是否有任何通用解决方案(即适用于所有(或大多数)浏览器的东西)?

html xml browser xslt debugging

7
推荐指数
1
解决办法
3794
查看次数

JQuery按ID选择

AFAIK,JQuery ID选择器:

var ctlId = $('#' + strControlId);
Run Code Online (Sandbox Code Playgroud)

被翻译成一个电话document.getElementById.

问题:

  • document.getElementById由所有的浏览器支持?
  • 我目前正在使用下面找到的查找对象函数来选择ID.JQuery选择器基本上会做同样的事情吗?

javascript jquery

1
推荐指数
1
解决办法
232
查看次数

Python聊天:删除变量以清除函数中的内存?

我正在python和扭曲的框架中创建一个聊天守护进程.我想知道是否必须删除我的函数中创建的每个变量,以便在连接多个用户时长期保存内存,或者这些变量是否自动清除?这是我的代码的精简版,以说明我的观点:

class Chat(LineOnlyReceiver):

    LineOnlyReceiver.MAX_LENGTH = 500

    def lineReceived(self, data):

            self.sendMessage(data)

    def sendMessage(self, data):

            try:
                message = data.split(None,1)[1]
            except IndexError:
                return

            self.factory.sendAll(message)

            #QUESTION : do i have to delete message and date??????????????????

            del message
            del data


class ChatFactory(Factory):
    protocol = Chat

    def __init__(self):
        self.clients = []

    def addClient(self, newclient):
        self.clients.append(newclient)

    def delClient(self, client):
        self.clients.remove(client)

    def sendAll(self, message):
        for client in self.clients:
            client.transport.write(message + "\n")
Run Code Online (Sandbox Code Playgroud)

python class function twisted

11
推荐指数
2
解决办法
3万
查看次数

如何在调用Add-PSSnapin之前检查是否已加载PowerShell管理单元

我有一组PowerShell脚本有时可以一起运行,有时一次运行.每个脚本都要求加载某个管理单元.

现在每个脚本都Add-PSSnapin XYZ在开头调用.

现在,如果我背靠背地运行多个脚本,则后续脚本会抛出:

无法添加Windows PowerShell管理单元XYZ,因为它已添加了alerady.验证管理单元的名称,然后重试.

在调用Add-PSSnapin之前,如何检查每个脚本以查看是否已加载管理单元?

powershell

90
推荐指数
2
解决办法
7万
查看次数

使用ExternalInterface和IE从JavaScript获取Flash中的当前URL

我正在尝试获取Flash播放器所在的当前URL.不是.swf文件的URL,而是浏览器指向的URL.到目前为止我用过:

var st:String = ExternalInterface.call("window.location.href");
Run Code Online (Sandbox Code Playgroud)

不幸的是,这在IE中不起作用.从我的研究中,我可以看出它无论如何都不适用于IE.

我在互联网上发现的唯一另一件事就是在标签上加上"id"标签.

所以我试图找出是否和/或如何:

  1. 以某种方式使用IE和其他浏览器中的ExternalInterface进行调用,以返回给我当前的URL.

    要么

  2. 在标记上标记id ="PA"属性,让AS3读取该标记并将其作为String引入,而不使用JavaScript

我的限制是我只能将标记添加到HTML中,并且不能添加任何JavaScript函数.这必须在AS3中严格完成.

不管怎样,我需要知道我在哪个URL.任何帮助是极大的赞赏.

javascript internet-explorer actionscript-3 externalinterface

2
推荐指数
1
解决办法
6231
查看次数

C#获取控件在表单上的位置

当控件可能在其他控件(如Panel)中时,有没有办法检索控件在窗体中的位置?

控件的Left和Top属性只给出了它在父控件中的位置,但如果我的控件位于五个嵌套面板中,我需要它在窗体上的位置怎么办?

快速举例:

按钮btnA位于面板pnlB内的坐标(10,10)上.
面板pnlB位于形式frmC内的坐标(15,15)上.

我想要btnA在frmC上的位置,这是(25,25).

我可以获得这个位置吗?

c# controls winforms

65
推荐指数
5
解决办法
11万
查看次数

最低位的索引

我想找到获得long long最低位的索引的最快方法.即:

00101001001000 -> 3
Run Code Online (Sandbox Code Playgroud)

涉及循环和移位的解决方案太慢了.即:

int i;
if(bits == 0ULL) {
  i = 64;
} else {
  for(i = 0;!(bits & 1ULL);i++)
    bits >>= 1;
}
Run Code Online (Sandbox Code Playgroud)

编辑:使用信息

使用ffsll的函数不能真正减少它的用法,但在这里(当然简化).它只是遍历索引并对它们做了一些事情.这个函数可能是我整个应用程序中使用最广泛的函数,尽管有很多缓存它的价值.它是我的alpha-beta搜索引擎中的合法移动生成器.

while(bits){
  index = ffsll(bits);
  doSomething(index);
  index &= index-1;
}
Run Code Online (Sandbox Code Playgroud)

c binary

7
推荐指数
2
解决办法
5382
查看次数