小编dct*_*lay的帖子

通过NAT连接P2P?

我开始探索使用p2p连接与其他连接的选项,所以我在JAVA中为Android设备编写了一个简单的套接字程序,其中用户可以共享简单的消息p2p(我当时对NAT没有任何想法).我了解了NAT,所以我现在需要与另一个用户建立TCP连接,该用户使用服务器进行发现,但有效载荷是p2p传输的.我也看了一下XMPP(协议如何工作的一个很好的和详细的说明是这里)和UPnP,但我不知道如何实现它们.

另一个有趣的问题是BitTorrent,因为它们可以在任何设备上工作,甚至可以在NAT后面工作.我无法解释BitTorrent的工作原理.

我研究了很多,但我被卡住了.

我的问题是:

  1. BitTorrent的详细解释(就像这里,不是种子如何工作)以及如何解决NAT问题?
  2. 有没有办法以编程方式进行NA​​T输入?
  3. 套接字编程是否足以支持p2p?
  4. 创建自己的协议有多难,我该如何建立?
  5. 如果两个设备D1和D2想要通信p2p并且他们知道彼此的IP.D1向D2发送请求并且无法通过D2的NAT,但是应该在D1的NAT中创建一个条目.所以当D2尝试发送一些东西时,D1的NAT应该会发现一个带有D2的IP的条目.那么为什么数据包不被它允许呢?

networking p2p bittorrent network-protocols nat

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

Symfony - >如何使用Doctrine使创建和修改的字段动态化?

我是Symfony2(或Symfony3)的新手,我找不到如何设置doctrine(带注释配置),以便在"创建"或"修改"字段时自动将其保存在我的实体中.

orm date symfony doctrine-orm

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

在Linux可执行文件中嵌入图标

我用Java编写了一个应用程序,并使用gcj成功编译了它.

在(X)ubuntu的文件管理器中,我的应用程序出现了默认的Linux可执行文件图标,我想用自己的图标替换它.

我已经看到其他应用程序显示自定义图标作为可执行文件,如Firefox,但不知道如何解决问题.Linux二进制文件是否有某种资源编辑器?

桌面输入

我已经尝试创建一个执行应用程序的桌面条目文件,如下所示:

[Desktop Entry]
Version=1.0
Type=Application
Name=MyJavaApp
Comment=
Exec=./MyJavaApp
Path=./../../libs/
Terminal=true
Icon=./icon.png
X-KDE-Library=./../../libs/libswt.so
Run Code Online (Sandbox Code Playgroud)

双击它会使终端弹出并再次消失,就是这样.我很确定应用程序没有启动,因为它无法找到所需的SWT库.我希望看到终端的输出,但我不能从那里启动它.

此外,Ubuntu似乎并不承认Icon.我尝试了各种分辨率的PNG; 没有骰子.

linux icons executable

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

剃刀页面:继承模型以在创建过程中添加字段

这些实体在虚拟上相当于我要完成的工作(实际上更复杂)。

我只需要在创建Article(SendToSubscribers字段)时才需要在表单中显示其他字段,这些字段就不是实体本身的一部分。

public class Article {
    public string Title { get; set }
}

public class ArticleCreateForm : Article {
    public bool SendToSubscribers { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在cshtml中,用于创建/更新:

@model Article
...
@if (string.IsNullOrEmpty(Model.Id))
{
    <admin-input asp-for="SendToSubscribers" />
Run Code Online (Sandbox Code Playgroud)

不幸的是,这是我得到的错误:

'Article'不包含'SendToSubscribers'的定义,找不到可以接受的扩展方法'SendToSubscribers'接受类型为'Article'的第一个参数(您是否缺少using指令或程序集引用?)

如果方法根本不好,很抱歉,我来自PHP背景。

我猜这不是一个好的解决方案,那么我该如何纠正呢?谢谢。

c# asp.net-mvc razor asp.net-core

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