我们有一个Java客户端,可以保持对远程服务器的持久套接字连接.客户端每15秒轮询一次DB表,如果有新项,则将其序列化并将其写入套接字.
在写入输出流之前,我想检查套接字连接是否仍然良好.对于特定的应用程序逻辑,执行此主动检查比捕获异常和重新连接更为简单.
我使用下面的代码弄清楚当连接断开时哪种方法可以让我知道:
LOG.debug("Socket status: bound=" + _socket.isBound() + ", closed=" + _socket.isClosed() + ", connected=" + _socket.isConnected() + ", outputShutdown=" + _socket.isOutputShutdown() + ", inputShutdown=" + _socket.isOutputShutdown());
Run Code Online (Sandbox Code Playgroud)
我暂时禁用了我的网络适配器,并在下次轮询期间,正如预期的那样,写入套接字时出现异常.
但是,debug语句打印了以下内容:
"Socket status: bound=true, closed=false, connected=true, outputShutdown=false, inputShutdown=false"
Run Code Online (Sandbox Code Playgroud)
我希望关闭是真实的或连接是假的.我得到的实际价值似乎是一个谎言.
有没有办法可靠地检查套接字的连接状态?
如何设置值/文本div?
<div id="numberOf"></div>
$("#btn").click(function (event) {
$.getJSON('http://host/myServiceImpl.svc/GetCount?method=?',
{ id '1' },
function (data) {
alert(data);
$("#numberOf").val = data;
}
);
});
Run Code Online (Sandbox Code Playgroud) 通常,创建可从多种方法访问的实例变量或创建仅作为参数传递给这些方法的实例变量的最佳实践和优点/缺点是什么。从功能上讲,它们是等效的,因为方法仍然可以使用变量来完成工作。虽然如果您正在更新变量并想返回更新的值,我会看到一个好处,但是在我的特定情况下,变量永远不会更新,只能由每种方法读取以决定如何操作。
示例代码要清楚:
class Test
@foo = "something"
def self.a
if @foo == "something"
puts "do #{@foo}"
end
end
a()
end
Run Code Online (Sandbox Code Playgroud)
与
class Test
foo = "something"
def self.a(foo)
if foo == "something"
puts "do #{foo}"
end
end
a(foo)
end
Run Code Online (Sandbox Code Playgroud) 我有一个运行命令的makefile可能需要一段时间.如果构建是从交互式shell启动的话,我希望这些命令是健谈的,但如果没有(特别是cron)则更安静.(伪代码)的一些东西:
foo_opts = -a -b -c
if (make was invoked from an interactive shell):
foo_opts += --verbose
all: bar baz
foo $(foo_opts)
Run Code Online (Sandbox Code Playgroud)
这是GNU make.如果我所做的具体细节,我可以编辑问题.
我想用递归级别3来检索数据.问题是它添加了所有8个链接模型,但我只需要来自三个数据模型的数据.有没有办法忽略某些模型或特别问一些模型,但不是全部.像useModel('Model1','Model2')?
我正在开发一个项目,其中异常处理是由不再在这里提供帮助的其他人创建的.
他们创建了以下bean,它捕获所有未捕获的异常并转发到JSP View.
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<map>
<entry key="java.lang.Exception" value="error"/>
</map>
</property>
<property name="defaultErrorView" value="error" />
</bean>
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是如果我想获得抛出的异常并在我们的日志中报告它会怎么样?如何将其转发到Java类而不是View?
有没有人知道Silverlight 4中的排序集合类?SortedSet <T>,SortedList <T>和SortedDictionary <T>似乎都缺失了.
当然我可以使用List <T> .Sort()或IEnumerable <T> .OrderBy()扩展方法.但是每次添加或删除元素时,我宁愿不必进行O(n log n)排序.
谢谢你的帮助,
理查德
我在几个不同的论坛上搜索过,似乎无法找到答案.我已将一个条形按钮项添加到导航控制器并将其样式设置为UIBarButtonItemStyleDone.当这是导航堆栈上的第一个控制器时,该按钮正确显示蓝色.但是,当创建控制器并将其推入堆栈时,样式将被忽略并显示为黑色.
我知道更改tintColor时会出现此问题,但我使用的是标准UIBarStyleBlack而不是设置tintColor.我已经尝试将tintColor设置为nil,但这也不起作用.
相关代码:
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationItem.rightBarButtonItem =
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(createNew:)];
self.navigationItem.rightBarButtonItem.style = UIBarButtonItemStyleDone;
}
Run Code Online (Sandbox Code Playgroud)
任何想法或解决方法将不胜感激.
我刚刚找到了一个适当的解决方案,如何找到所有列中按键重复但不重复的行?编码存储过程,然后了解到数据库卡在SQL Server 2000上.
当然,我的解决方案很大程度上依赖于公用表表达式.
任何人都可以为我提供一套转换回SQL Server 2000方言的文件吗?
请注意,我有像这样的东西:
;
WITH CTE1 AS ( ... ),
CTE2 AS (SELECT ... FROM CTE1 ... ),
CTE3 AS (SELECT ... FROM CTE1 INNER JOIN CTE2 ...)
SELECT * FROM CTE3
WHERE criteria
ORDER BY sequence
Run Code Online (Sandbox Code Playgroud)
这似乎会让事情变得更有趣......
更新:没有CTE是递归的.
如果我理解正确,bindService()和BIND_AUTO_CREATE将启动一个服务,并且在所有绑定全部解除绑定之前不会消亡.
但是如果我在onCreate()上绑定Service(BIND_AUTO_CREATE)并按回按钮来关闭活动,那么服务也会调用onDestroy()并死掉.
我不会随时调用unbind().那么这意味着当Activity被破坏时,绑定也被破坏了,服务也被破坏了吗?
如果我希望服务始终在运行,并且在活动开始的同时我想绑定它以便我可以访问该服务,该怎么办?
如果我在onCreate()上调用StartService()然后调用bindService(),它将在每次启动Activity时重新启动服务.(我不想要).
所以我可以开始服务一次,然后在下次启动活动时绑定?