如果使用端口0而不是非零端口创建TCP客户端套接字,则操作系统会为您选择任何空闲的临时端口.大多数操作系统从IANA动态端口范围 49152-65535中选择短暂端口.但是,在Windows Server 2003及更早版本(包括XP)中,根据其bind()文档,Microsoft使用端口1025-5000作为临时范围.
我在同一硬件上运行多个Java服务.在极少数情况下,此范围与我用于其他服务的众所周知的端口(例如,端口4160用于Jini发现)相冲突.虽然很少见,但却造成了实际问题.有没有简单的方法告诉Windows或Java为客户端套接字使用不同的端口范围?微软的文档表明我可以通过MaxUserPort TcpIP注册表设置更改该范围的高端,但我认为没有办法改变低端.
更新:我在这方面取得了一些进展.看起来微软有一个保留端口的概念,它是短暂端口范围的例外.有一个注册表设置,允许你永久地更改它,显然必须有一个API来做同样的事情,因为有一个数据结构保存保留端口范围的高/低值,但我无法在任何地方找到实际的函数调用. ..注册表解决方案可能有效,但现在我已经注意到了这个API.
Update2:我在ServerFault上接受了一个解决方案,了解如何通过Windows注册表执行此操作.我仍然想通过API来做到这一点,但我想我现在很满意.
我正在尝试使用httplib的HTTPSConnection进行客户端验证,使用PKCS#12证书.我知道证书很好,因为我可以在MSIE和Firefox中使用它连接到服务器.
这是我的连接功能(证书包含私钥).我把它简化为基础知识:
def connect(self, cert_file, host, usrname, passwd):
self.cert_file = cert_file
self.host = host
self.conn = httplib.HTTPSConnection(host=self.host, port=self.port, key_file=cert_file, cert_file=cert_file)
self.conn.putrequest('GET', 'pathnet/,DanaInfo=200.222.1.1+')
self.conn.endheaders()
retCreateCon = self.conn.getresponse()
if is_verbose:
print "Create HTTPS connection, " + retCreateCon.read()
Run Code Online (Sandbox Code Playgroud)
(注意:请不要对硬编码路径发表评论 - 我试图让它首先工作;之后我会做得很好.硬编码路径是正确的,因为我在MSIE和Firefox中连接它我更改了帖子的IP地址.)
当我尝试使用PKCS#12证书(.pfx文件)运行它时,我得到了似乎是openSSL错误.这是整个错误回溯:
File "Usinghttplib_Test.py", line 175, in
t.connect(cert_file=opts["-keys"], host=host_name, usrname=opts["-username"], passwd=opts["-password"])
File "Usinghttplib_Test.py", line 40, in connect
self.conn.endheaders()
File "c:\python26\lib\httplib.py", line 904, in endheaders
self._send_output()
File "c:\python26\lib\httplib.py", line 776, in _send_output
self.send(msg)
File "c:\python26\lib\httplib.py", line 735, in send
self.connect()
File "c:\python26\lib\httplib.py", line 1112, … 我经常遇到处理数据的问题,foreach这些数据既可以是数组也可以是null变量,并且可以为这些数据提供一些数据.
$values = get_values();
foreach ($values as $value){
...
}
Run Code Online (Sandbox Code Playgroud)
当您使用非数组的数据提供foreach时,您会收到警告:
警告:为[...]中的foreach()提供的参数无效
假设无法重构get_values()函数以始终返回数组(向后兼容性,不可用的源代码,无论其他原因),我想知道哪种方法是最简洁,最有效的方法来避免这些警告:
$values到阵列$values为数组foreach用一个包裹着ifvoid main()
{
typedef boost::ptr_map<int, char> MyMap;
//typedef std::map<int, char *> MyMap; // in contrast with std type it works
MyMap mymap;
mymap[1] = new char('a');
mymap[2] = new char('b');
mymap[3] = new char('c');
BOOST_FOREACH(MyMap::value_type value, mymap)
{
std::cout << value.first << " " << value.second << std::endl;
}
MyMap const & const_mymap = mymap;
BOOST_FOREACH(const MyMap::value_type value, const_mymap)
{
std::cout << value.first << " " << value.second << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
以下错误消息来自第二个BOOST_FOREACH的GCC
error: conversion from 'boost::ptr_container_detail::ref_pair<int, const char* const>' …Run Code Online (Sandbox Code Playgroud) 我有两个列表,一个ID为"vlist",另一个ID为"hlist"."vlist"包含应该可见的元素,而"hlist"包含应该保持隐藏的项目.这里的想法是允许系统管理员指定应该在注册页面上显示哪些元素/字段,哪些不应该.这两个列表使用"connectWith"连接,因此管理员可以将项目从可见列表拖动到隐藏列表(反之亦然).
我的困境是我想要锁定到可见列表中的一些字段,但仍然可以在该列表中排序.例如,"用户名","电子邮件"和"密码"字段应锁定在可见列表中(因为它们始终需要用于注册).
这甚至可能吗?也许我还没有发现它是一个明智的选择.我已经浏览了jQuery的文档一段时间,似乎无法找到与此场景相关的任何内容.我已经找到了如何"取消"列表中的特定元素完全可以排序,甚至禁止成为可丢弃的目标,但这不能做到.用户仍应能够在"可见"列表中拖动这些项目,以防他们想要调整锁定字段的顺序.我也知道你可以在特定元素或DOM对象中包含可排序元素,但这也不能使用,因为这似乎只适用于整个可排序列表,而不适用于该列表的特定元素.
在构建可排序列表之后,我甚至试图看看这样的东西是否会起作用:
$('#vlist > #slist-li-username').sortable('option', 'containment', '#vlist');
Run Code Online (Sandbox Code Playgroud)
显然,这也没有用,或者我不会发布这个.
如果它可能有所帮助,我想我会抛出我现在使用的代码; 这是jQuery代码:
$(function()
{
$('#vlist, #hlist').sortable
({
connectWith: '.signup-set_flist',
forcePlaceholderSize: true,
receive: function (event, ui)
{
var itemID = ui.item.attr('id');
var fID = itemID.replace(/slist-li-/g, '');
var hID = 'slist-' + fID;
if (ui.sender.attr('id') == 'vlist')
{
$('#'+hID).val('');
}
else
{
$('#'+hID).val(fID);
}
}
}).disableSelection();
$('#vlist > #slist-li-username').sortable('option', 'containment', '#vlist');
});
Run Code Online (Sandbox Code Playgroud)
至于HTML,我会将它上传到这里(因为当我将它粘贴到这里时,StackOverflow似乎会中断 - 即使在代码模式下):
在Python中,有一个最大的递归深度.似乎这是因为Python是一个解释器,而不是编译器.C++有相同的概念吗?或者它只与RAM限制连接?
我有一个查询,将大量数据返回到CSV文件中.事实上,Excel无法打开它 - 行数太多了.有没有办法控制spool在每次处理65000行时假脱机到新文件?理想情况下,我想有我在输出顺序命名的文件,如large_data_1.csv,large_data_2.csv,large_data_3.csv,等...
我可以dbms_output在PL/SQL块中使用来控制输出多少行,但是我如何切换文件,因为spool似乎无法从PL/SQL块访问?
(Oracle 10g)
更新:
我无法访问服务器,因此将文件写入服务器可能无法正常工作.
更新2:
一些字段包含自由格式文本,包括换行符,因此在写入文件后计算换行符并不像在返回数据时计算记录一样简单...
我已经让ELMAH在我的(Cassini)开发服务器上工作了,并且非常满意它,但是现在我正试图将所有东西都移到我的生产服务器(IIS7),蜜月看起来就像结束了.
我已经超越了IIS7的"陷阱",坦率地说可以在文档中更好地突出显示,如果我只是使用内存中的日志,那么它可以工作.
但是,我试图让它使用SQL Server日志(就像我在我的开发系统上那样),并且我得到了一个错误:
对象ELMAH_GetErrorsXml上的EXECUTE权限被拒绝
好吧,好吧.我知道如何授予数据库权限,但我真的很难理解我需要授予访问权限的用户和哪些存储过程/表.
让我感到困惑的是,我没有做任何这样的事情让它在我的开发服务器上工作.我能看到的唯一区别是,在我的开发服务器上它似乎连接为NT AUTHORITY\IUSR,而在我的生产服务器上它似乎连接为NT AUTHORITY\NETWORK SERVICE.(它只是使用可信连接,所以我没有明确配置它来做到这一点 - 我认为它与Web服务器有关).更新:我已经确定,因为我正在使用Cassini,它实际上是以我(管理员)而不是IUSR登录,这解释了为什么我没有得到任何权限问题.
在我的开发服务器上,IUSR帐户是公共数据库角色的成员,并且可以访问所需的数据库(再次作为"公共").没有明确授予对象级权限.[见上面的更新 - 这是无关紧要的].
在我的生产服务器上,我以完全相同的方式添加了NETWORK SERVICE(公共数据库角色,显式访问数据库为"public").然而,我得到了这个权限错误.为什么?!![请参阅上面的更新 - 我没有获得权限错误的唯一原因是因为我作为管理员运行].
而且,当然,如果它在本地工作的事实只是"运气",我将需要知道授予访问权限的SP /表.我的猜测是所有3个SP而不是表,但是(再次)看到一些使这个显式的文档会很好.
所以这就是问题所在.我正在写一些StyleCop插件组件,供我工作的公司使用.因此,这些程序集需要引用Microsoft.StyleCop.CSharp.dll,例如强名称.
问题在于,如果我构建它并将其传递给我的组中的开发人员,则它们必须具有相同版本的StyleCop dll(当前为4.3.3.0)或者无法加载.
使我的附加规则DLL更独立的最佳方法是什么?我应该在GAC中安装我的4.3.3.0版本的那些从属StyleCop dll吗?程序集(与应用程序)可以使用策略文件吗?
哦,其中一个主要问题是我希望它可以与客户安装的任何版本的StyleCop(或至少4.3.3.0或更高版本)一起使用.
提前谢谢了.
我们目前正在寻求在一个严重依赖Soap webservice的网站上进行一些性能调整.但是......我们的服务器位于比利时,我们连接的网络服务位于旧金山,所以这是一个长途连接,至少可以说.
我们的网站是PHP驱动的,使用PHP内置的SoapClient类.平均而言,对Web服务的调用需要0.7秒,而我们每页大约需要3-5个请求.所有可能的请求/响应缓存已经实现,因此我们现在正在寻找其他方法来提高连接速度.
这是实例化SoapClient的代码,我现在正在寻找的是提高单个请求速度的其他方法/方法.有人有想法或建议吗?
private function _createClient()
{
try {
$wsdl = sprintf($this->config->wsUrl.'?wsdl', $this->wsdl);
$client = new SoapClient($wsdl, array(
'soap_version' => SOAP_1_1,
'encoding' => 'utf-8',
'connection_timeout' => 5,
'cache_wsdl' => 1,
'trace' => 1,
'features' => SOAP_SINGLE_ELEMENT_ARRAYS
));
$header_tags = array('username' => new SOAPVar($this->config->wsUsername, XSD_STRING, null, null, null, $this->ns),
'password' => new SOAPVar(md5($this->config->wsPassword), XSD_STRING, null, null, null, $this->ns));
$header_body = new SOAPVar($header_tags, SOAP_ENC_OBJECT);
$header = new SOAPHeader($this->ns, 'AuthHeaderElement', $header_body);
$client->__setSoapHeaders($header);
} catch (SoapFault $e){
controller('Error')->error($id.': Webservice connection error '.$e->getCode());
exit; …Run Code Online (Sandbox Code Playgroud) c++ ×2
foreach ×2
php ×2
asp.net ×1
assemblies ×1
boost ×1
c# ×1
certificate ×1
elmah ×1
httplib ×1
java ×1
jquery ×1
jquery-ui ×1
limit ×1
oracle ×1
performance ×1
pkcs#12 ×1
plsql ×1
python ×1
recursion ×1
soap ×1
soap-client ×1
sockets ×1
spool ×1
sqlplus ×1
stylecop ×1
versioning ×1
windows ×1