问题列表 - 第25305页

为什么我的Perl TCP服务器脚本会挂起许多TCP连接?

我接受TCP连接的服务器有一个奇怪的问题.即使通常有一些进程在等待,但在某些连接数量下它会挂起.

长版:

服务器是用Perl编写的,并$srv使用重用标志绑定套接字并监听== 5.然后,它将循环分配到10个进程中.$clt=$srv->accept(); do_processing($clt); $clt->shutdown(2);

用C语言编写的客户端也很简单 - 它发送一些行,然后接收所有可用的行,并且执行shutdown(sockfd, 2);没有任何异步,最后发送和接收队列都是空的(如报告所示netstat).

连接仅持续约20ms.所有客户端的行为方式相同,实现方式相同,等等.现在假设我接受X来自客户端1的连接和X来自客户端2的连接.进程仍然报告它们一直处于空闲状态.如果我X从客户端3 添加另一个连接,突然服务器进程在接受后立即开始挂起.他们之后做的第一个阻塞accept();while (<$clt>) ...- 但他们没有获得任何数据(在第一次尝试时已经).突然间,所有10个进程都处于此状态,并且不会停止等待.在strace,服务器进程似乎挂起read(),这是有道理的.

TIME_WAIT属于该服务器的状态中存在大量连接(问题开始显示时为~100),但这可能是一个红色的鲱鱼.

这可能发生什么?


经过一些更多的分析:结果发现客户端有问题,在尝试下一个连接之前没有正确关闭先前的连接.负载平衡列表开头的服务器是旧的连接.

c sockets linux perl tcp

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

确定最小数量的样品,准确度达到99%

我正在尝试将本地数据库(L)上的100,000条记录与远程数据库(R)上的100,000条记录进行比较.

基本上我想知道L中的元素是否存在于R中.为了确定这一点,我必须针对每个L对R做出请求,这需要很长时间(我知道,应该有更好的方法,没有' t,这是我得到的API).

因此,我想测试L对R的一小部分样本,然后以一定程度的信心推断整个R中存在多少个样本.我必须测试多少才能获得99%的置信水平?

statistics

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

Python通配符导入Vs命名导入

好吧,我的一个项目中有一些相当奇怪的行为,我希望有人可以告诉我原因.我的文件结构如下所示:

MainApp.py
res/
  __init__.py
  elements/
    __init__.py
    MainFrame.py
Run Code Online (Sandbox Code Playgroud)

在MainFrame.py中,我定义了一个名为RPMWindow的类,它扩展了wx.Frame.

在MainApp.py中,这有效:

from res.elements.MainFrame import *
Run Code Online (Sandbox Code Playgroud)

而这不是:

from res.elements.MainFrame import RPMWindow
Run Code Online (Sandbox Code Playgroud)

我意识到外卡导入不会伤害任何东西,但我更感兴趣的是理解为什么命名导入在外卡成功时失败.

使用类名时,我得到了这个回溯:

Traceback (most recent call last):
  File "C:\myApps\eclipse\plugins\org.python.pydev.debug_1.5.6.2010033101\pysrc\pydevd.py", line 953, in <module>
    debugger.run(setup['file'], None, None)
  File "C:\myApps\eclipse\plugins\org.python.pydev.debug_1.5.6.2010033101\pysrc\pydevd.py", line 780, in run
    execfile(file, globals, locals) #execute the script
  File "C:\Documents and Settings\Daniel\workspace\RPM UI - V2\src\MainApp.py", line 2, in <module>
    from res.elements.MainFrame import RPMWindow
  File "C:\Documents and Settings\Daniel\workspace\RPM UI - V2\src\res\elements\MainFrame.py", line 2, in <module>
    from res.elements.MenuBar import MenuBarBuilder
  File "C:\Documents and Settings\Daniel\workspace\RPM …
Run Code Online (Sandbox Code Playgroud)

python import wildcard named

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

JAXB required = true似乎并不需要

我们有这个JAXB注释:

 @XmlElement(name = "Strategy", required = true)
 protected List<Strategy> strategy;
Run Code Online (Sandbox Code Playgroud)

如果没有Strategy元素存在,则不会抛出任何异常..为什么会这样?我们不应该得到例外吗?

java xml jaxb

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

事件惯例 - 我不明白

我的班级有一个事件:

public class WindowModel
{
    public delegate void WindowChangedHandler(object source, WindowTypeEventArgs e);
    public event WindowChangedHandler WindowChanged;  

    public void GotoWindow(WindowType windowType)
    {
        this.currentWindow = windowType;
        this.WindowChanged.Invoke(this, new WindowTypeEventArgs(windowType));
    }
}
Run Code Online (Sandbox Code Playgroud)

派生事件类:

public class WindowTypeEventArgs : EventArgs
{
    public readonly WindowType windowType;

    public WindowTypeEventArgs(WindowType windowType)
    {
        this.windowType = windowType;
    }
}
Run Code Online (Sandbox Code Playgroud)

其他一些将它注册到事件的类:

private void SetupEvents()
{
   this.WindowModel.WindowChanged += this.ChangeWindow;
}

private void ChangeWindow(object sender, WindowTypeEventArgs e)
{
   //change window
}
Run Code Online (Sandbox Code Playgroud)

我从遵循.Net惯例中获得了什么?签订这样的合同会更有意义

public delegate void WindowChangedHandler(WindowType windowType);
public event WindowChangedHandler WindowChanged;
Run Code Online (Sandbox Code Playgroud)

这样做,我不需要创建一个新类,更容易理解.我不是在编写.Net库.此代码仅用于此项目.我喜欢惯例,但是当我说在这个例子中它没有意义或者我没有理解某些东西时,我是对的吗?

c# events conventions

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

从没有iTunes或XCode的已停用设备获取UDID?

我在我的朋友iPod Touch第三代上安装了iPhone OS 4.0,忘了将udid添加到配置门户.设备被锁定,我似乎无法找到恢复它以获取UDID的方法.我这里没有XCode.使用iTunes,我该如何还原它?

iphone firmware ios4

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

Rails before_filter和动作识别

我想在我的控制器中编写一个before_filter来识别接下来要执行的操作.这是出于授权目的(这有点像role_requirement插件那样做..)

例如:如果用户键入此URL http://localhost:3000/users,则默认为用户/索引操作.在我的用户控制器中,我有一个前过滤器方法说'check_permission',我希望该方法将'index'作为动作.

ruby-on-rails before-filter

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

C++中虚函数的行为

我有一个问题,这里有两个类:

  class Base{
      public:
          virtual void toString();       // generic implementation
  }

  class Derive : public Base{
      public:
          ( virtual ) void toString();   // specific implementation
  }
Run Code Online (Sandbox Code Playgroud)

问题是:

  • 如果我想要使用类型为Base的指针执行多态性的类Derive的子类,那么括号中的关键字virtual是否必要?

  • 如果答案是否定的,那么带有和不带虚拟的类派生的成员函数toString有什么区别?

c++ virtual-functions

10
推荐指数
3
解决办法
1056
查看次数

PHP:将两个单独的mysql查询连接到同一个json数据对象中

我正在尝试将下面的mysql查询结果网格化为单个json对象,但不太确定如何正确地执行它.

$id = $_POST['id'];

$sql = "SELECT contracts.po_number, contracts.start_date, contracts.end_date, contracts.description, contracts.taa_required, contracts.account_overdue, jobs.id AS jobs_id, jobs.job_number, companies.id AS companies_id, companies.name AS companies_name
FROM contracts
LEFT JOIN jobs ON contracts.job_id = jobs.id
LEFT JOIN companies ON contracts.company_id = companies.id
WHERE contracts.id = '$id'
ORDER BY contracts.end_date";

$sql2 = "SELECT types_id
FROM contracts_types
WHERE contracts_id = '$id'";

//return data
$sql_result = mysql_query($sql,$connection) or die ("Fail.");
$arr = array();
while($obj = mysql_fetch_object($sql_result)) { $arr[] = $obj; }
echo json_encode($arr); //return json

//plus …
Run Code Online (Sandbox Code Playgroud)

php mysql arrays json

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

为什么Google会在(1)之前提前; 他们的JSON回复?

为什么Google会while(1);在其(私人)JSON响应前加上?

例如,这是在Google日历中打开和关闭日历时的响应:

while(1);[['u',[['smsSentFlag','false'],['hideInvitations','false'],
  ['remindOnRespondedEventsOnly','true'],
  ['hideInvitations_remindOnRespondedEventsOnly','false_true'],
  ['Calendar ID stripped for privacy','false'],['smsVerifiedFlag','true']]]]
Run Code Online (Sandbox Code Playgroud)

我认为这是为了防止人们eval()对它进行操作,但你真正需要做的就是更换while然后你就可以了.我认为eval预防是为了确保人们编写安全的JSON解析代码.

我已经在其他几个地方看到了这种情况,但谷歌(邮件,日历,通讯录等)的情况更是如此.奇怪的是,谷歌文档开始了&&&START&&&,谷歌联系人似乎开始while(1); &&&START&&&.

这里发生了什么?

javascript security ajax json

3940
推荐指数
7
解决办法
51万
查看次数