在客户端应用程序中我调用new Socket(serverIP,serverPort)
. 结果,客户端应用程序向服务器应用程序发送打开套接字的请求。它会启动一个新线程吗?我的意思是以下哪项是正确的?
客户端应用程序发送请求并立即开始执行以下命令(不等待应答)。
客户端发送请求并等待答复。一旦获得答案,客户端应用程序就会继续执行以下命令。
第二种情况对我来说似乎更现实、更符合逻辑。但是,我不明白如果服务器不打开套接字并且它没有说它不“想要”打开第二个套接字(如果服务器不存在或网络损坏,则可能会发生这种情况)会发生什么。在这种情况下会发生什么?服务器会永远等待吗?
一般来说,客户端最好知道其对套接字的请求的结果是什么。例如我可以想象以下情况:
套接字由服务器打开。
服务器拒绝打开套接字。所以,服务器存在,它收到了客户端的请求,但它说“不”。
服务器没有响应。
我知道new Socket(serverIP,serverPort)
不会“返回”此类信息。但它会引发异常。其中之一是“UnkownHostException”。什么时候抛出?当服务器有一段时间没有响应时(多长时间)?
添加:
我刚刚发现抛出UnknownHostException表示无法确定主机的IP地址。因此,它与上述情况无关(服务器没有响应,服务器拒绝打开套接字)。
以下两个语句在语义上是否相同?
#1 person p("Rahul", 20);
#2 person const &p = person("Rahul", 20);
编辑:
对不起,我想问一下以下两个语义是否相同:
#1 person const p("Rahul", 20);
#2 person const &p = person("Rahul", 20);
我想知道Java中是否有任何类能够使用自己的标准检查String与另一个相等的多少.示例:
William Shakespeare / William Shakespeare : might be 100%
William Shakespe**a**re / William Shakespe**e**re : might have above 90%
William Shakespeare / Shakespeare, William : might have above 70% (just examples)
我想获得一个在Windows和Linux上使用Python的计算机独有的ID.它可能是CPU ID,主板串口,......或其他任何东西.
没有运气,我看了几个模块(pycpuid,psi,...).
有关如何做到这一点的任何想法?
拥有单个AMQ经纪商和100个连接的消费者.我会将消息发送给某个特定的消费者,因此其他消费者不会收到它(客户端过滤将无法正常工作).
最简单的方法是创建虚拟目标(例如将它们命名为queue:consumer-)并在那里发送消息.然而,这将导致100个新队列,这使得监视更加复杂.有没有其他方法可以做到单队列?
在控制台应用程序中使用以下类,并且至少有一个记事本实例正在运行时,GetWindowThreadProcessId
正确返回非零线程ID.但是,如果Windows服务中包含相同的代码,则GetWindowThreadProcessId
始终返回0
并且不会引发任何异常.将服务启动的用户更改为与运行控制台应用程序的用户相同,不会改变结果.即使提供有效的hwnd GetWindowThreadProcessId
,返回的原因0
是什么?为什么它在控制台应用程序和服务中的功能不同?注意:我正在运行Windows 7 32位并以.NET 3.5为目标.
public class TestClass
{
[DllImport("user32.dll")]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId);
public void AttachToNotepad()
{
var processesToAttachTo = Process.GetProcessesByName("Notepad")
foreach (var process in processesToAttachTo)
{
var threadID = GetWindowThreadProcessId(process.MainWindowHandle,
IntPtr.Zero);
....
}
}
}
Run Code Online (Sandbox Code Playgroud)
控制台代码:
class Program
{
static void Main(string[] args)
{
var testClass = new TestClass();
testClass.AttachToNotepad();
}
}
Run Code Online (Sandbox Code Playgroud)
服务代码:
public class TestService : ServiceBase
{
private TestClass testClass = new TestClass();
static …
Run Code Online (Sandbox Code Playgroud) 您发现哪些技术对于使用Inversion of Control容器管理大型项目的依赖性很有用?
你是在一个地方引导所有东西,还是将它拆分?
你有没有使用过多个容器?
我做了一个小小的射击游戏..它工作正常,但我想要实施,如果火相交,他们将消失.我有两个玩家子弹和计算机项目符号列表...但如果我有更多的计算机子弹或反向.这是我的循环
for (int i = 0; i < cb.size(); i++) {
for (int j = 0; j < b.size(); j++) {
if (b.get(j).rect.intersects(cb.get(i).rect)) {
cb.remove(i);
b.remove(j);
continue;
}
if (cb.get(i).rect.intersects(b.get(j).rect)) {
b.remove(j);
cb.remove(i);
continue;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的游戏,其中包括... http://rapidshare.com/files/364597095/ShooterGame.2.6.0.jar