小编Chr*_* P.的帖子

正确的方法来停止TcpListener

我目前正在使用TcpListener来处理传入的连接,每个连接都有一个用于处理通信的线程,然后关闭该单个连接.代码如下:

TcpListener listener = new TcpListener(IPAddress.Any, Port);
System.Console.WriteLine("Server Initialized, listening for incoming connections");
listener.Start();
while (listen)
{
     // Step 0: Client connection
     TcpClient client = listener.AcceptTcpClient();
     Thread clientThread = new Thread(new ParameterizedThreadStart(HandleConnection));
     clientThread.Start(client.GetStream());
     client.Close();
}
Run Code Online (Sandbox Code Playgroud)

listen变量是一个布尔值,是在类的字段.现在,当程序关闭时,我希望它停止监听客户端.设置听false会阻止它承担更多的连接,但由于AcceptTcpClient是一个阻塞调用,它将在最低采取下一个客户端,然后退出.有没有办法迫使它简单地突破并停止,就在那时?调用listener.Stop()有什么影响,而另一个阻塞调用正在运行?

c# sockets networking tcplistener

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

C#中的带宽限制

我正在开发一个程序,在后台不断发送数据流,我希望允许用户为上传和下载限制设置上限.

我已经阅读了令牌桶漏桶的算法,看起来后者似乎符合描述,因为这不是最大化网络带宽而是尽可能不引人注目的问题.

然而,我对如何实现这一点有点不确定.一种自然的方法是扩展抽象Stream类,使扩展现有流量变得简单,但是这不需要额外线程的参与来发送数据,同时接收(漏桶)吗?任何有关其他实现的提示都将受到赞赏.

此外,虽然我可以修改程序接收的数据量,但带宽限制在C#级别的工作情况如何?计算机是否仍会接收数据并将其保存,有效取消限制效果还是等到我要求接收更多数据?

编辑:我感兴趣的是限制传入和传出数据,我无法控制流的另一端.

c# throttling bandwidth

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

Django:从根开始的多个url模式跨文件传播

我想知道是否有可能将标准网址模式分布在多个文件中(在这种情况下是项目范围urls.py和几个特定于应用程序urls.py).

想象一下,该项目urls.py看起来像这样(得到了这个工作):

from django.conf.urls import patterns, include, url
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^user/signup/', 'registration.views.signup'),
    url(r'^user/confirm/(?P<code>\w{20})/', 'registration.views.confirm'),
    url(r'^user/profile/(\d+)/', 'profile.views.show'),
    url(r'^user/profile/edit/', 'profile.views.edit'), 
)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我有两个不同的应用程序都希望使用/ user/*的URL,因此我不能只使用r'^user/'include.

我的问题是:我可以将上面的内容分成两个单独的urls.py文件,每个文件都进入各自的应用程序吗?

注意:忽略输入的任何语法错误

python django django-urls

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

随机球队的球员评分

我正在研究一种算法,以便在基于团队的游戏中对各个玩家进行评分.问题是没有固定的球队 - 每次有10名球员想要比赛,他们被分成两个(有些)甚至是球队并且相互比赛.因此,对球队进行评分毫无意义,相反,我们需要依靠个人球员评分.

我希望考虑许多问题:

  • 在他们的评级与经验丰富的玩家相同之前,新玩家需要某种临时排名以达到他们的"真实"评级.
  • 系统需要考虑到团队可能包含各种玩家技能等级 - 例如.一个非常好,一个好,两个平庸,一个真的很穷.因此,玩家评级的简单"平均"可能是不够的,它可能需要以某种方式加权.
  • 在每场比赛之后调整评级,因此算法需要基于每场比赛,而不是每个"评级期".如果出现一个好的解决方案,这可能会改变(我知道Glicko使用评级期).

请注意,作弊不是此算法的问题,因为我们还有其他验证玩家的措施.

我已经看过TrueSkill,GlickoELO(这是我们目前正在使用).我喜欢TrueSkill/Glicko的想法,你有一个偏差,用于确定评级的准确程度,但没有一个算法考虑随机团队的观点,似乎主要基于1v1或FFA游戏.

有人建议你在某个地方对玩家进行评分,好像每个获胜球队的球员都击败了失败球队中的所有球员(25次"决斗"),但我不确定这是否是正确的方法,因为它可能会大大夸大评级当一个真正糟糕的球员进入胜利球队并获得胜利而对失败球队的一名非常出色的球员.

欢迎任何和所有建议!

编辑:我正在寻找一个针对老牌玩家的算法+一些排名新手的方法,而不是两个组合.对困惑感到抱歉.

没有AI,玩家只能互相玩耍.游戏由赢/输决定(没有平局).

algorithm rating-system

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

从Flask请求启动新的子进程

我有一个请求来通过一个装饰的功能@app.route('/url/path/to/view').

它可以做一些事情来查找一些数据并进行一些计算,在此过程中函数正常运行.但是,最后我想开始一个新进程(来自python函数,目前正在使用multiprocessing.Process).一旦这个过程开始,我希望函数返回,而新进程独立运行.

我目前的方法的伪代码

def start_process(arguments):
    # some code here that the process will run

p = multiprocessing.Process(target=start_process, args=(...))
p.start()

return app.response("{ 'status': 'ok' }", mimetype='application/json')
Run Code Online (Sandbox Code Playgroud)

这种方法是否有效,Flask应用程序是否可以在不影响新流程的情况下继续运行?

python subprocess multiprocessing flask

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

使用类类型列表(或类似概念)来限制有效输入

我有一些继承自抽象基类的类Airplane,例如:

Airplane

-> F15
-> F16
-> Boeing747
Run Code Online (Sandbox Code Playgroud)

假设我想创建另一个类,AirplaneFactory它需要一个可以构建的可能飞机的列表(在构造函数中):

class AirplaneFactory {
    public AirplaneFactory(List<Type> airplaneTypes) {
        ....
    }
}
Run Code Online (Sandbox Code Playgroud)

如何将这些类型限制为仅包含Airplane和继承的类?最终目标是创建不同的AirplaneFactory实例,这些实例只能"构建"指定的特定飞机子集.

我想将它限制在类本身,而不必通过使用enum或使用字符串表示来复制工作.

.net c#

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

在C代码中实现'-async 1'以纠正不同步的音频

我已经构建了一个分段器,它根据HLS规范将h264/AAC视频和段视为输入.它的源代码可以在这里看到:https://gist.github.com/cpnielsen/f36729c371aac0fe535d

它被实现为python扩展,但有趣的部分在process_video()函数中.它利用libav库(或者ffmpeg)来进行繁重的工作.

它有95%的时间可以工作,但我们已经发现了一些视频,它会产生音频不同步的片段.如果我使用命令行工具,我可以简单地添加-async 1来修复它,但是如何在我的C代码中实现相同的功能?

我在他们启动过滤器的地方找到了一段代码avconv_filter.c(因为libav,不确定ffmpeg等价物是什么),但是没有任何文档,很难弄清楚如何在整个模块化设置之外执行此操作.

我只需要:

  1. 启动正确的过滤器
  2. 将它应用于输入(或输出?不确定)
  3. 了解使用过滤器时的任何缺陷.

欢迎任何帮助; 示例代码,过滤器说明等

video ffmpeg libav

6
推荐指数
0
解决办法
373
查看次数

理想的数据结构,快速查找,快速更新和易于比较/排序

我正在寻找一个良好的数据结构来包含一个带有(hash, timestamp)值的元组列表.基本上,我想以下列方式使用它:

  • 数据进入,检查它是否已经存在于数据结构中(哈希相等,而不是时间戳).
  • 如果是,请将时间戳更新为"now"
  • 如果没有,请将其添加到时间戳为"now"的集合中

我希望定期删除并返回一个早于特定时间戳的元组列表(我需要在它们"过期"时更新各种其他元素).时间戳不必是任何特定的(它可以是unix时间戳,python datetime对象或其他一些易于比较的哈希/字符串).

我使用它来接收传入的数据,如果它已经存在则更新它并清除超过X秒/分钟的数据.

多个数据结构也可以是一个有效的建议(我最初使用优先级队列+集合,但优先级队列不是最佳值,以不断更新值).

其他实现相同目标的方法也是受欢迎的.最终目标是跟踪元素是a)系统的新内容,b)系统中是否存在以及c)何时到期.

python data-structures

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

自定义wordpress页面(使用插件)

我想创建一个自定义页面,其中包含锦标赛括号,而不是通常的内容.我已经阅读了一些Wordpress文档,了解了插件的工作原理以及如何添加管理页面来管理页面.

我的问题是:创建页面本身需要什么(并在网站上列出)?我是否需要创建一个包含大部分工作的自定义模板,我是否需要让插件创建页面或从哪里开始?

另外,模板页面和插件如何互操作?WP是否为插件提供了参考变量,还是我必须"手动"加载它?

谢谢

编辑:我想我会重新提出我的问题.虽然答案很有帮助,但它们并不是我一直在寻找的.

基本上,我想要一个页面,我有一些模块/代码/控制在那里发生的任何事情.这意味着我不能只设置页面,因为那时我只能填写文本.我需要一个页面,我可以决定当我去那个页面时会发生什么,写什么,提交等等.我相当流利的PHP,只是不是Wordpress :)

第二部分是管理员,我需要一个页面(或几个)来控制所述页面的一些管理内容.

我希望这有助于澄清.

php wordpress plugins

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

Postgres: cursor.execute("COMMIT") 与 connection.commit()

我正在运行 postgres 9.2 服务器并且有一个使用 psycopg 2.5 的 python 客户端。

我运行了一些测试,因为我WARNING: there is no transaction in progress在日志文件中遇到了很多条目。

我有一些可以简化为以下代码的代码:

import psycopg2

connection = psycopg2.connect(...)
with connection.cursor() as cursor:
    # Multiple insert statements
    cursor.execute("INSERT INTO ...")

    cursor.execute("COMMIT")
Run Code Online (Sandbox Code Playgroud)

我发现,如果我执行以下操作,只要第一个COMMIT运行(我重用相同的连接,因此上面的代码运行多次)之后的每个语句都会立即提交。但是,如果我改为运行connection.commit()它,它会按预期工作(到目前为止所做的提交语句,未来的语句将不会自动提交)。

这是一个错误还是我在它的工作方式中遗漏了一些细微的区别?这是 postgres 问题还是与 psycopg2 的内部有关?

提前致谢!

python postgresql transactions psycopg2

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