问题列表 - 第40604页

为什么.Net Socket.Disconnect需要两分钟?

我正在使用.Net的socket类,我使用以下代码:

socket.Shutdown(SocketShutdown.Both);
socket.Disconnect(true);
Run Code Online (Sandbox Code Playgroud)

然后这会阻塞两分钟.我已经指定了true,因为我将立即重用套接字并重新建立连接.我是否在那里有关机呼叫,它会阻塞两分钟.我唯一能做的就是传递false来断开连接.但我想重用套接字.

有任何想法吗?

更新:

我看过这些代码.我已经设置了DontLinger选项.它没有帮助.

更新2:

我已根据请求添加了网络跟踪:

跟踪1:使用DontLinger选项

System.Net.Sockets Verbose: 0 : [4668] Socket#5009246::Socket(InterNetwork#2)
System.Net.Sockets Verbose: 0 : [4668] Exiting Socket#5009246::Socket() 
System.Net.Sockets Verbose: 0 : [4668] Socket#5009246::Connect(eee:nnnn#-2063562120)
System.Net.Sockets Information: 0 : [4668] Socket#5009246 - Created connection from aaa.bbb.ccc.ddd.eee:nnnnn to www.xxx.yyy.zzz.:mmmm.
System.Net.Sockets Verbose: 0 : [4668] Exiting Socket#5009246::Connect() 
System.Net.Sockets Verbose: 0 : [4668] Socket#5009246::Disconnect()
System.Net.Sockets Verbose: 0 : [4668] Exiting Socket#5009246::Disconnect() 
Run Code Online (Sandbox Code Playgroud)

跟踪2:使用关机(SocketShutdown.Both);

System.Net.Sockets Verbose: 0 : [0300] Socket#5009246::Socket(InterNetwork#2)
System.Net.Sockets Verbose: 0 : [0300] Exiting Socket#5009246::Socket() 
System.Net.Sockets Verbose: 0 : …
Run Code Online (Sandbox Code Playgroud)

.net sockets

8
推荐指数
2
解决办法
3649
查看次数

STL字符串类可以容纳多少个字符?

我需要处理一系列角色.字符数最多可达10 11.在通常的阵列中,这是不可能的.我该怎么用?我想使用gets()函数来保存字符串.但是,这可能是STL容器吗?如果没有,那么方式是什么?

示例:输入:AMIRAHID输出:AMIRAHID

如果在32位机器中字符数减少到10 ^ 10,如何才能实现这一点?

先感谢您.

c++ string stl

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

如何在Xcode中更改构建线程的数量?

我在xcode中构建了几个C++文件,需要大量内存才能编译(+ 1 GB /文件).因为我在双核笔记本电脑上执行此操作,xcode使用2个线程进行构建.这两个线程最终将构建同时占用大量内存的文件,因此系统遭受内存不足,编译即将停止.

对我来说一个充分的解决方案是强制Xcode只使用一个构建线程.有没有人知道改变Xcode使用的构建线程数的方法?

对于那些感兴趣的人,C++文件包含一个相当大的boost :: spirit :: qi解析器.

c++ xcode multithreading compilation building

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

IllegalMonitorStateException-CyclicBarrier

我有一个使用CyclicBarrier的方法,如下所示:

public void getMessage(Message obj){
    CyclicBarrier barrier = new CyclicBarrier(1, new Runnable() {
        @Override
        public void run() {
            synchronized(obj){ 
                System.out.println("--The End --");
            }
        }
    });

    executor.execute(new Runnable() {
        @Override
        public void run() {
            synchronized(obj){
                //Perform some routine with message object
            }
            try {
                barrier.wait();//java.lang.IllegalMonitorStateException thrown on this line
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

在等待例程完成执行的时刻,我得到:

Exception in thread "pool-2-thread-3"
java.lang.IllegalMonitorStateException
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
Run Code Online (Sandbox Code Playgroud)

有人知道我在这里做错了吗?

java concurrency spring spring-mvc

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

UIViewController:调用viewWillAppear,而不是viewDidAppear

在UIViewController子类中,我有以下方法:

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    // do something
    myTextField.text = @"Default";
}

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    // do something
    [myTextField selectAll:self];
    [myTextField becomeFirstResponder];
}

- (void)viewDidLoad {
    [super viewDidLoad];    
    // do something
    myTextField.delegate = self;
}
Run Code Online (Sandbox Code Playgroud)

NIB是使用Interface Builder创建的.导航控制器通过pushViewController推送相应的视图控制器对象.

意图行为是在文本字段中显示默认文本条目,以选择整个文本并将文本字段设置为第一响应者.[编辑:我注意到选择所有做出第一响应者没有意义,因为选择会消失; 不过,我想知道为什么这些方法的行为如下所述.

但是,在调用方法viewDidLoad和viewWillAppear时,不会调用viewDidAppear方法.谁能告诉我为什么?我在网上找到的大多数问题和这里处理viewWillAppear/viewDidAppear都没有用; 我也明白,在子视图或以编程方式创建的视图中,这些方法不会被引发; 但是这不适用于案例,我也想知道为什么这些"生命周期"方法中的一个被引发而另一个没有.

任何的想法?谢谢!

iphone lifecycle uiviewcontroller

16
推荐指数
2
解决办法
8913
查看次数

是否存在在XAML中使用任意C#表达式的现有方法?

我希望能够在XAML中使用任意C#表达式.通常,这将是基于两个绑定值计算UI元素的属性.

例如,基于另外两个属性计算UI元素的宽度.

这是我希望XAML看起来像一个人为的例子:

<TextBox
   x:Name="textBox1"
   />

<TextBox
   x:Name="textBox2"
   />

<Rectangle
    Height={Double.Parse(textBox1.Text) + Double.Parse(textBox2.Text)}
    />
Run Code Online (Sandbox Code Playgroud)

当然,在XAML中没有内置的方法.

我知道我可以使用MultiBinding结合自定义转换器,这通常是我做这种事情的方式.然而,在我看来,在XAML中包含一些C#代码会简单得多,我想知道是否有人已经用XAML扩展或其他东西解决了这个问题.

c# wpf xaml

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

如何确定函数是否为空

我希望能够检查给定的函数是否为空.也就是说,它的身体里没有任何东西,例如:

function foo() {}
function iAmEmpty(a) {
    // yep, empty
}
Run Code Online (Sandbox Code Playgroud)

通过一些初步的游戏,我有一些我认为可能没问题的东西,通过使用toString()和一些正则表达式.

function foo(a, b, c) {}

/^function[^{]+\{\s*\}/m.test(foo.toString());  // true

function bar(a, b, c) { var d; }

/^function[^{]+\{\s*\}/m.test(bar.toString());  // false
Run Code Online (Sandbox Code Playgroud)

我只是想知道是否有更好的方法?你可以看到上面有什么问题吗?

javascript reflection

25
推荐指数
2
解决办法
2338
查看次数

探索/调查/理解新项目的阶层结构和工作原理的最佳方式

想象一下这种情况.您将获得一些遗留代码或获得一些新框架.您需要尽快调查并了解如何使用此代码.没有机会向以前的开发者寻求帮助.有哪些最佳实践/方法/方法/步骤/工具(首选.NET Framework工具堆栈)可用于最大限度地提高调查新代码库的效率.

如果它是框架并且没有太多文档和单元测试,那么您通常使用哪些工具来探索类层次结构,方法,事件?它是默认的对象浏览器,MS Visual Studio的体系结构浏览器还是Resharper层次结构/文件视图等其他工具?

.net c# visual-studio

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

将浮点数舍入为ruby中最接近的整数

如果我有一个49.967的浮点数并且我做.to_i它会将它砍成49,这对我使用磁盘空间分析.967超过900mb的空间不会在显示器中占用.

是否有一个函数将数字舍入到最接近的整数,或者我必须像我这样定义它自己:

class Float
  def to_nearest_i
    (self+0.5).to_i
  end
end
Run Code Online (Sandbox Code Playgroud)

这样我就可以这样做:

>> 5.44.to_nearest_i
=> 5
>> 5.54.to_nearest_i
=> 6
Run Code Online (Sandbox Code Playgroud)

ruby

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

我如何从内存中读取,就像使用iostream的文件一样?

我有简单的文本文件加载到内存中.我想从内存中读取,就像我从像这里的光盘中读到的那样:

ifstream file;
string line;

file.open("C:\\file.txt");
if(file.is_open())
{
    while(file.good())
    {
        getline(file,line);         
    }
}   
file.close();
Run Code Online (Sandbox Code Playgroud)

但我有记忆中的档案.我在内存中有一个地址和这个文件的大小.

我必须做些什么才能获得与上述代码中处理文件相同的流畅度?

c++ memory iostream

7
推荐指数
4
解决办法
7768
查看次数