问题列表 - 第23310页

Socket是否打开另一个线程?它会返回一些东西吗?

在客户端应用程序中我调用new Socket(serverIP,serverPort). 结果,客户端应用程序向服务器应用程序发送打开套接字的请求。它会启动一个新线程吗?我的意思是以下哪项是正确的?

  1. 客户端应用程序发送请求并立即开始执行以下命令(不等待应答)。

  2. 客户端发送请求并等待答复。一旦获得答案,客户端应用程序就会继续执行以下命令。

第二种情况对我来说似乎更现实、更符合逻辑。但是,我不明白如果服务器不打开套接字并且它没有说它不“想要”打开第二个套接字(如果服务器不存在或网络损坏,则可能会发生这种情况)会发生什么。在这种情况下会发生什么?服务器会永远等待吗?

一般来说,客户端最好知道其对套接字的请求的结果是什么。例如我可以想象以下情况:

  1. 套接字由服务器打开。

  2. 服务器拒绝打开套接字。所以,服务器存在,它收到了客户端的请求,但它说“不”。

  3. 服务器没有响应。

我知道new Socket(serverIP,serverPort)不会“返回”此类信息。但它会引发异常。其中之一是“UnkownHostException”。什么时候抛出?当服务器有一段时间没有响应时(多长时间)?

添加:

我刚刚发现抛出UnknownHostException表示无法确定主机的IP地址。因此,它与上述情况无关(服务器没有响应,服务器拒绝打开套接字)。

java sockets networking client

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

以下两个语句在语义上是否相同?

以下两个语句在语义上是否相同?

#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);

c++ initialization semantics

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

检查String听起来像Java中的另一个

我想知道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)

java string

13
推荐指数
3
解决办法
9175
查看次数

在Windows和Linux上使用Python获取唯一的计算机ID

我想获得一个在Windows和Linux上使用Python的计算机独有的ID.它可能是CPU ID,主板串口,......或其他任何东西.

没有运气,我看了几个模块(pycpuid,psi,...).

有关如何做到这一点的任何想法?

python hardware

29
推荐指数
9
解决办法
5万
查看次数

ActiveMQ - 向特定消费者发送消息

拥有单个AMQ经纪商和100个连接的消费者.我会将消息发送给某个特定的消费者,因此其他消费者不会收到它(客户端过滤将无法正常工作).

最简单的方法是创建虚拟目标(例如将它们命名为queue:consumer-)并在那里发送消息.然而,这将导致100个新队列,这使得监视更加复杂.有没有其他方法可以做到单队列?

activemq-classic

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

Python中的树实现

如何在Python中实现树?

我是Python初学者.

给我一个大致的想法!

python

0
推荐指数
3
解决办法
5593
查看次数

为什么GetWindowThreadProcessId从服务调用时返回0?

在控制台应用程序中使用以下类,并且至少有一个记事本实例正在运行时,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)

c# pinvoke winapi

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

大型项目中的最佳IoC实践

您发现哪些技术对于使用Inversion of Control容器管理大型项目的依赖性很有用?

你是在一个地方引导所有东西,还是将它拆分?

你有没有使用过多个容器?

dependency-injection inversion-of-control

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

为什么接口上的Dictionary <k,v>是一个坏主意?

为什么Dictionary<k,v>界面上的主意不好?

谢谢

c#

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

Java IndexOutOfBoundsException

我做了一个小小的射击游戏..它工作正常,但我想要实施,如果火相交,他们将消失.我有两个玩家子弹和计算机项目符号列表...但如果我有更多的计算机子弹或反向.这是我的循环

     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

java

5
推荐指数
2
解决办法
606
查看次数