免责声明:我在这里仔细阅读了每一个类似的主题,并进行了谷歌搜索。这些都没有回答我的问题,所以我想积累这方面的信息。我的英语可能不太好,很抱歉。
我想制作一个p2p应用程序(一个游戏)。显然,很多人会在一台机器上运行这个程序,这台机器是本地网络的一部分,有一个互联网接入点(路由器),如果没有端口转发,应用程序就无法工作。因此,我做了一项研究,发现我可以使用UPnP进行自动端口转发。微测试代码是用来访问端口转发的:
bool CPortController::Init() {
HRESULT result = CoInitialize(NULL); // Must be NULL
if
我需要在用C#编写的桌面应用程序中执行端口转发。
我使用了这个代码:
using System;
using System.Threading;
using NATUPNPLib;
namespace iSpyApplication
{
public static class NATControl
{
public static UPnPNAT NAT = new UPnPNAT();
private static IStaticPortMappingCollection _mappings;
public static IS
我设置了一个简单的套接字,它将接受端口1337上的连接。它通过本地主机接受连接:
$ nc -vv localhost 1337
found 0 associations
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif lo0
src ::1 port 57224
dst ::1 port 1337
rank info not available
TCP aux info available
Connection to localhost port 1337 [tcp/menandmice-dns] suc
我知道,当我们键入一个域名,除非它是缓存在pc或路由器,它要求DNS到外部服务器,以获得IP地址。
显然,来自路由器的DHCP服务器正在为DNS (192.168.1.254)设置自己。发出systemd-resolv --status或resolverctl status
Link 3 (wlp1s0)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setti