SWMM深度二次开发专题7:网络分析-获取网络

1 网络分析功能简介

武理排水管网模拟分析系统可以通过模型(projectClass)获得模型的网络拓扑对象(networkClass),networkClass可以实现多种网络分析功能,例如查找最短路径、管网简化、管网提取、混错接分析等操作。使用步骤可以分为三步:

  • 使用 projectClass实例的swmm_getNetwork获得模型的网络拓扑对象networkClass实例。
  • 使用networkClass实例的各种函数实现网络分析功能。
  • 使用ReleaseSwmmNetwork函数释放networkClass实例。

2 案例项目内容

本专题对应的开发案例为\software\tutorial\exp_network_getNetwork文件夹中的内容,其中SWMMCPP_network_getNetwork子文件夹为VS2022 C++项目内容, swmm_network子文件夹为管网模型数据,即network.inp文件。建议按照本文内容自己新建项目,编写代码以便通过练习掌握"武理排水管网模拟分析系统"相关使用方法。按照专题1内容在\software\tutorial\exp_network_getNetwork文件夹中新建项目,并添加头文件及库文件。对于新建项目的:配置属性->常规->输出目录设置为:

"(SolutionDir)(SolutionDir)(SolutionDir)(Platform)$(Configuration)\",

这样可执行文件会生成于\software\tutorial\x64\Debug文件夹下面,将\software\bin文件夹中内容全部拷贝至Debug文件夹,可以直接编译运行案例项目,方便统一进行调试运行。

3 路径处理相关函数

在main.cpp文件的最上面中添加路径处理相关函数,由于本案例会采用接口的实现类projectClass进行模拟计算,所以需要添加projectClass.h。

c 复制代码
#include <windows.h>
#include <filesystem>
#include <shlwapi.h>
// TODO:  在此处引用程序需要的其他头文件
#include "swmm_cs.h"
#include "projectClass.h"//该文件引用了"networkClass.h"
#pragma comment(lib, "Shlwapi.lib")
std::string GetExecutablePath()
{
	std::vector<char> buffer(MAX_PATH);
	DWORD len = GetModuleFileNameA(NULL, buffer.data(), MAX_PATH);
	if (len == 0 || len == MAX_PATH) {
		// 缓冲区不够,动态扩容
		while (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
			buffer.resize(buffer.size() * 2);
			len = GetModuleFileNameA(NULL, buffer.data(), buffer.size());
		}
	}
	return std::string(buffer.data(), len);
}
// 获取 exe 所在目录
std::string GetExecutableDirectory()
{
	std::string exePath = GetExecutablePath();
	char dir[MAX_PATH];
	lstrcpyA(dir, exePath.c_str());
	PathRemoveFileSpecA(dir);  // 去掉文件名,留下目录
	return std::string(dir);
}

4 networkClass使用示例

下面的代码显示了如何通过projectClass实例获得对应模型的网络拓扑实例,并且利用该实例获得节点连接数量,以及节点的上下游相邻管段和节点的度的信息。

c 复制代码
/**
 * @brief 本示例利用swmm_getNetwork函数获得模型的拓扑结构对象pnetwork,并且利用pnetwork输出所有节点的上游管段及下游
 * 管段,再利用swmm_nodeDegree函数计算节点的度并输出。
*/
int SWMM_network_getNetwork(std::string inpFilePath, std::string rptFilePath, std::string outFilePath)
{
	//这里使用智能指针,如果使用原始指针,需要使用ReleaseSwmmSimulation显式释放资源
	std::unique_ptr<SWMMCPP::projectClass> pswmm = std::make_unique<SWMMCPP::projectClass>();
	if (pswmm->swmm_open((char*)inpFilePath.data(), (char*)rptFilePath.data(),
		(char*)outFilePath.data()) != 0)//打开swmm的inp文件
	{
		printf("swmm_open failed\n");
		pswmm->swmm_close();//关闭swmm模型
		return 1;
	}
	if (pswmm->swmm_start(1) != 0)//打开swmm的inp文件
	{
		printf("swmm_start failed\n");
		pswmm->swmm_close();//关闭swmm模型
		return 1;
	}
	//创建networkClass对象
	networkClass* pnetwork = nullptr;
	if (pswmm->swmm_getNetwork((void**)&pnetwork) != 0)
	{
		pswmm->swmm_close();//关闭swmm模型
		return 1;
	}
	//输出数量信息
	printf("nodeCount = %d; linkCount = %d; subcatchCount = %d\n",
		pnetwork->Nnode, pnetwork->Nlink, pnetwork->Nsubcatch);
	//输出节点上下游管段信息
	for (int i = 0; i < pnetwork->Nnode; i++)
	{
		int j, linkIndex;
		std::string upLinks = "";
		std::string dwLinks = "";
		for (j = 0; j < pnetwork->nodeArray[i].uplinks.size(); j++)
		{
			linkIndex = pnetwork->nodeArray[i].uplinks[j];
			upLinks += pnetwork->linkArray[linkIndex].ID;
			upLinks += " ";
		}
		for (j = 0; j < pnetwork->nodeArray[i].dwlinks.size(); j++)
		{
			linkIndex = pnetwork->nodeArray[i].dwlinks[j];
			dwLinks += pnetwork->linkArray[linkIndex].ID;
			dwLinks += " ";
		}
		printf("node %s; upstream links: %s; downstream links: %s\n",
			pnetwork->nodeArray[i].ID.data(), upLinks.data(), dwLinks.data());
	}
	//计算节点的度
	int* nodeDegreeArray = new int[pnetwork->Nnode];
	if (pnetwork->nodeDegree(0, nodeDegreeArray) == 0)
	{
		for (int i = 0; i < pnetwork->Nnode; i++)
		{
			printf("node %s; degree %d;\n",
				pnetwork->nodeArray[i].ID.data(), nodeDegreeArray[i]);
		}
	}
	//释放networkClass对象
	ReleaseSwmmNetwork((void*&)pnetwork);
	pswmm->swmm_close();//关闭swmm模型,由于使用的是智能指针,所以不需要显式释放pswmm
	delete[] nodeDegreeArray;
	return 0;
}

5 main函数

main函数内容如下

c 复制代码
int main()
{
	//获得当前路径
	std::string exeFileDic = GetExecutableDirectory();
	std::filesystem::path p(exeFileDic);
	std::filesystem::path parent = p.parent_path();  // 获取父目录
	parent = parent.parent_path();  // 获取父目录
	//根据当前路径获得模型文件位置,并根据模型文件名,生成报告文件及结果文件的
	//文件名
	std::string inpFilePath = parent.string() + "\\exp_network_getNetwork\\swmm_network\\network.inp";
	std::string rptFilePath = inpFilePath;
	rptFilePath.replace(rptFilePath.length() - 3, 3, "rpt");
	std::string outFilePath = inpFilePath;
	outFilePath.replace(outFilePath.length() - 3, 3, "out");
	//调用函数
	SWMM_network_getNetwork(inpFilePath, rptFilePath, outFilePath);
}

6 编译运行

编译运行结果如下:

c 复制代码
nodeCount = 463; linkCount = 464; subcatchCount = 587
node J304451; upstream links: L6116433 ; downstream links: L3112157
node J304466; upstream links: L6114461 L3112157 ; downstream links: L3112160
node J304470; upstream links: L3112160 ; downstream links: L3112178
node J304488; upstream links: L3112178 ; downstream links: L3112177
node J604752; upstream links: L6113663 ; downstream links: L6113689
node J604754; upstream links: L6113667 ; downstream links: L6113663
node J604775; upstream links: L6113689 L6113690 ; downstream links: L6113688
node J604791; upstream links: ; downstream links: L6113667
node J604847; upstream links: ; downstream links: L6113757
node J604856; upstream links: L6113772 L6113757 ; downstream links:
node J604860; upstream links: ; downstream links: L6113771 L6113772
node J604862; upstream links: L6113776 L6113771 ; downstream links:
node J604865; upstream links: ; downstream links: L6113775 L6113776
node J604866; upstream links: L6113780 L6113775 ; downstream links:
node J604870; upstream links: L6113782 ; downstream links: L6113781 L6113780
node J604891; upstream links: L6113781 ; downstream links: L6113690
node J604892; upstream links: L6113806 L6113805 ; downstream links: L6113782
node J604901; upstream links: L6113818 ; downstream links: L6113805
node J604906; upstream links: ; downstream links: L6113818
node J604928; upstream links: L6113861 ; downstream links: L6113843 L6113842
node J604946; upstream links: ; downstream links: L6113861 L6113862
node J604948; upstream links: L6113868 L6113862 ; downstream links: L6113864
node J604950; upstream links: L6113864 L6113873 ; downstream links:
node J604952; upstream links: L6113871 ; downstream links: L6113868 L6113869
node J604954; upstream links: L6113874 ; downstream links: L6113871
node J604956; upstream links: ; downstream links: L6113874 L6113873
node J604959; upstream links: L6113869 L6113888 ; downstream links:
node J604971; upstream links: ; downstream links: L6113888
node J605012; upstream links: L6113842 L6113948 L6113932 ; downstream links:
node J605017; upstream links: ; downstream links: L6113932
node J605033; upstream links: L6113949 ; downstream links: L6113948
node J605047; upstream links: L6113973 ; downstream links: L6113949
node J605057; upstream links: L6113974 ; downstream links: L6113973
node J605067; upstream links: L6114006 L6113983 ; downstream links: L6113974
node J605069; upstream links: L6113989 ; downstream links: L6113983
node J605075; upstream links: ; downstream links: L6113989
node J605090; upstream links: L6114007 ; downstream links: L6114006
node J605114; upstream links: L6114033 L6114030 ; downstream links: L6114007
node J605116; upstream links: L6114031 L6114034 ; downstream links: L6114033
node J605128; upstream links: L6114046 ; downstream links: L6114031
node J605130; upstream links: ; downstream links: L6114047 L6114046
node J605135; upstream links: L6114047 ; downstream links:
node J605154; upstream links: L6114076 ; downstream links: L6114034
node J605160; upstream links: L6114077 ; downstream links: L6114076
node J605163; upstream links: L6114085 ; downstream links: L6114077
node J605169; upstream links: L6114104 ; downstream links: L6114085
node J605187; upstream links: L6114105 ; downstream links: L6114104
node J605194; upstream links: ; downstream links: L6114105
node J605256; upstream links: L6114179 ; downstream links: L6114030
node J605265; upstream links: ; downstream links: L6114179
node J605324; upstream links: ; downstream links: L6116194
node J605346; upstream links: L6116194 ; downstream links: L6116195 L6116196
node J605372; upstream links: L6116196 L6116236 ; downstream links:
node J605385; upstream links: L6116235 ; downstream links: L6116236
node J605392; upstream links: L6116241 L6116242 ; downstream links: L6116235
node J605393; upstream links: L6116246 ; downstream links: L6116241
node J605396; upstream links: L6116247 ; downstream links: L6116246
node J605398; upstream links: L6116251 ; downstream links: L6116247
node J605401; upstream links: L6116250 ; downstream links: L6116251
node J605404; upstream links: ; downstream links: L6116250
node J605416; upstream links: L6114231 ; downstream links: L6116242
node J605417; upstream links: ; downstream links: L6114232 L6114231
node J605425; upstream links: L6114232 L6114241 ; downstream links:
node J605427; upstream links: L6114242 ; downstream links: L6114241
node J605429; upstream links: ; downstream links: L6114242
node J605445; upstream links: L6116195 ; downstream links: L6116268
node J605451; upstream links: L6116268 L6116273 ; downstream links: L6116296
node J605453; upstream links: L6116276 ; downstream links: L6116273
node J605455; upstream links: L6116277 ; downstream links: L6116276
node J605458; upstream links: ; downstream links: L6116277
node J605475; upstream links: L6116296 L6116295 ; downstream links: L6116315
node J605495; upstream links: L6114263 ; downstream links: L6116295
node J605503; upstream links: L6114282 ; downstream links: L6114263
node J605516; upstream links: L6114284 L6114283 ; downstream links: L6114282
node J605518; upstream links: ; downstream links: L6114284
node J605551; upstream links: L6114318 ; downstream links: L6114283
node J605552; upstream links: L6114319 ; downstream links: L6114318
node J605556; upstream links: ; downstream links: L6114319
node J605573; upstream links: L6116315 ; downstream links: L6116314
node J605578; upstream links: L6116314 ; downstream links: L6116361
node J605617; upstream links: L6116361 ; downstream links: L6116360
node J605625; upstream links: L6116360 ; downstream links: L6116383
node J605641; upstream links: L6116382 L6116383 ; downstream links: L6116415
node J605654; upstream links: ; downstream links: L6116382
node J605699; upstream links: L6116415 ; downstream links: L6116414
node J605702; upstream links: L6116414 ; downstream links: L6116423
node J605708; upstream links: L6116423 L6116471 ; downstream links: L6116422
node J605717; upstream links: L6116422 L6116432 ; downstream links: L6116433
node J605733; upstream links: L6116450 ; downstream links: L6116432
node J605735; upstream links: L6116451 ; downstream links: L6116450
node J605739; upstream links: ; downstream links: L6116451
node J605791; upstream links: ; downstream links: L6114504
node J605818; upstream links: ; downstream links: L6114438
node J605819; upstream links: L6114438 ; downstream links: L6114437
node J605823; upstream links: L6114437 ; downstream links: L6114448
node J605830; upstream links: L6114448 ; downstream links: L6114447
node J605833; upstream links: L6114447 ; downstream links: L6114460
node J605843; upstream links: L6114512 L6114460 L6114459 ; downstream links: L6114461
node J605867; upstream links: ; downstream links: L6114459
node J605886; upstream links: L6114505 L6114504 ; downstream links: L6114513
node J605892; upstream links: L6114511 L6114513 ; downstream links: L6114512
node J605927; upstream links: ; downstream links: L6114511
node J605978; upstream links: ; downstream links: L6114601
node J605981; upstream links: L6114601 ; downstream links: L6114600
node J605983; upstream links: L6114600 ; downstream links: L6114612
node J605992; upstream links: L6114612 ; downstream links: L6114611
node J605995; upstream links: L6114611 ; downstream links: L6114616
node J605996; upstream links: L6114616 L6114642 L6114615 ; downstream links: L6114505
node J606000; upstream links: L6114621 ; downstream links: L6114615
node J606003; upstream links: ; downstream links: L6114621
node J606021; upstream links: L6114643 L6114641 ; downstream links: L6114642
node J606032; upstream links: L6114654 ; downstream links: L6114641
node J606033; upstream links: L6114656 ; downstream links: L6114654
node J606044; upstream links: ; downstream links: L6114656
node J606097; upstream links: ; downstream links: L6114725
node J606104; upstream links: L6114725 ; downstream links: L6114724
node J606106; upstream links: L6114724 ; downstream links: L6114730
node J606110; upstream links: L6114730 ; downstream links: L6114729
node J606112; upstream links: L6114729 ; downstream links: L6114734
node J606115; upstream links: L6114734 ; downstream links: L6114733
node J606116; upstream links: L6114733 L6114744 ; downstream links:
node J606123; upstream links: L6114749 ; downstream links: L6114643 L6114744
node J606128; upstream links: L6114750 L6114748 ; downstream links: L6114749
node J606135; upstream links: L6114755 L6114757 ; downstream links: L6114750
node J606136; upstream links: L6114759 L6114940 ; downstream links: L6114757
node J606138; upstream links: L6114760 ; downstream links: L6114748
node J606139; upstream links: ; downstream links: L6114760
node J606196; upstream links: L6114827 ; downstream links: L6114755
node J606207; upstream links: L6114829 ; downstream links: L6114827
node J606220; upstream links: ; downstream links: L6114829
node J606309; upstream links: ; downstream links: L6114927
node J606310; upstream links: L6114927 ; downstream links: L6114932
node J606312; upstream links: L6114932 ; downstream links: L6114931
node J606316; upstream links: L6114931 ; downstream links: L6114936
node J606317; upstream links: L6114936 ; downstream links: L6114935
node J606318; upstream links: L6114935 ; downstream links: L6114941
node J606322; upstream links: L6114941 ; downstream links: L6114940
node J606374; upstream links: ; downstream links: L6114995
node J606379; upstream links: L6114995 ; downstream links: L6115000
node J606380; upstream links: L6115000 ; downstream links: L6114999
node J606382; upstream links: L6114999 ; downstream links: L6115005
node J606385; upstream links: L6115005 ; downstream links: L6115004
node J606387; upstream links: L6115004 ; downstream links: L6115010
node J606391; upstream links: L6115010 ; downstream links: L6115009
node J606392; upstream links: L6115009 ; downstream links: L6114759
node J606411; upstream links: ; downstream links: L6115029
node J606415; upstream links: L6115029 ; downstream links: L6115038
node J606418; upstream links: L6115038 ; downstream links: L6115037
node J606422; upstream links: L6115037 ; downstream links: L6115050
node J606430; upstream links: L6115050 ; downstream links: L6115049
node J606435; upstream links: L6115049 ; downstream links: L6115062
node J606444; upstream links: L6115062 ; downstream links: L6115067
node J606447; upstream links: L6115067 ; downstream links: L6115066
node J606449; upstream links: L6115066 ; downstream links: L6115073
node J606454; upstream links: L6115073 L6113843 ; downstream links: L6113806
node J606476; upstream links: ; downstream links: L6116471
node J304375; upstream links: L3112137 ; downstream links: L3112118
node J304396; upstream links: L3115207 ; downstream links: L3112137
node J304414; upstream links: L3115211 ; downstream links: L3115207
node J304418; upstream links: ; downstream links: L3115211
node J306435; upstream links: L4113367 ; downstream links: L4113347
node J401415; upstream links: ; downstream links: L4113003
node J401422; upstream links: L4113053 L4113003 ; downstream links: L4113261
node J401459; upstream links: L4113045 ; downstream links: L4113052
node J401465; upstream links: ; downstream links: L4113045
node J401471; upstream links: L4113060 L4113052 ; downstream links: L4113053
node J401478; upstream links: L4113437 ; downstream links: L4113060
node J401506; upstream links: ; downstream links: L4113100
node J401520; upstream links: L4113100 ; downstream links: L4113532
node J401532; upstream links: L4113153 ; downstream links: L4111979
node J401564; upstream links: L4111979 L4111983 ; downstream links: L4111978
node J401574; upstream links: ; downstream links: L4113153
node J401600; upstream links: ; downstream links: L4111983
node J401603; upstream links: L4113267 ; downstream links: L4113270
node J401618; upstream links: L4113338 ; downstream links: L4113271
node J401647; upstream links: L4113385 ; downstream links: L4113244
node J401674; upstream links: L4113243 ; downstream links: L4113259
node J401675; upstream links: L4113244 ; downstream links: L4113243
node J401691; upstream links: L4113261 L4113259 L4113305 ; downstream links: L4113268
node J401696; upstream links: L4113268 ; downstream links: L4113267
node J401699; upstream links: L4113271 L4113270 ; downstream links: L4113318
node J401735; upstream links: ; downstream links: L4113305
node J401746; upstream links: L4113318 ; downstream links: L4113317
node J401767; upstream links: L4113346 L4113383 ; downstream links: L4113338
node J401776; upstream links: L4113347 ; downstream links: L4113346
node J401797; upstream links: ; downstream links: L4113367
node J401813; upstream links: ; downstream links: L4113385 L4113383
node J401855; upstream links: ; downstream links: L4113436
node J401864; upstream links: L4113438 L4113436 ; downstream links: L4113437
node J401867; upstream links: L4113443 L4113481 ; downstream links: L4113438
node J401872; upstream links: L4113446 L4113463 ; downstream links: L4113443
node J401875; upstream links: ; downstream links: L4113446
node J401892; upstream links: ; downstream links: L4113463
node J401910; upstream links: ; downstream links: L4113481
node J401955; upstream links: ; downstream links: L4113531
node J401960; upstream links: L4113531 L4113532 ; downstream links: L4113606
node J402010; upstream links: L4112012 L4113558 ; downstream links:
node J402016; upstream links: ; downstream links: L4113559
node J402017; upstream links: L4113605 L4113559 ; downstream links: L4113558
node J402163; upstream links: L4113606 ; downstream links: L4113605
node J402168; upstream links: ; downstream links: L4007508
node J402178; upstream links: L4007508 ; downstream links: L4007518
node J402183; upstream links: L4007518 ; downstream links: L4112013 L4112012
node J304730; upstream links: L3112193 L3112188 ; downstream links:
node J304734; upstream links: ; downstream links: L3112189 L3112188
node J304738; upstream links: L3112200 L3112189 ; downstream links: L3112193
node J304745; upstream links: L3112917 L3112204 ; downstream links: L3112200
node J304749; upstream links: L3112263 L3112225 ; downstream links: L3112204
node J304769; upstream links: ; downstream links: L3112225
node J304792; upstream links: ; downstream links: L3112248 L3112250
node J304806; upstream links: L3005483 L3112248 ; downstream links: L3112263
node J304808; upstream links: L3005485 L3006052 ; downstream links: L3005483
node J304810; upstream links: L3005518 L3005503 ; downstream links: L3005485
node J304811; upstream links: L3005505 L3112250 ; downstream links:
node J304831; upstream links: ; downstream links: L3005503 L3005505
node J304845; upstream links: L3005561 L3005531 ; downstream links: L3005518
node J304857; upstream links: ; downstream links: L3005531
node J304888; upstream links: L3005616 L3005570 ; downstream links: L3005561
node J304898; upstream links: L3005571 ; downstream links: L3005570
node J304901; upstream links: L3005576 ; downstream links: L3005571
node J304902; upstream links: ; downstream links: L3005576
node J304943; upstream links: L3005628 ; downstream links: L3005617 L3005616
node J304953; upstream links: L3005630 ; downstream links: L3005628 L3005629
node J304955; upstream links: ; downstream links: L3005630 L3005631
node J304956; upstream links: L3005629 L3005631 ; downstream links:
node J304987; upstream links: ; downstream links: L3005662
node J304989; upstream links: L3005662 L3005664 ; downstream links: L3005735
node J305002; upstream links: L3005617 ; downstream links: L3005664
node J305062; upstream links: L3005735 ; downstream links: L4006544
node J305499; upstream links: L3009295 ; downstream links:
node J305505; upstream links: L3115338 L3009323 ; downstream links: L3009295
node J305533; upstream links: L3115310 L3006025 ; downstream links: L3009323
node J305537; upstream links: L3115313 L3112266 ; downstream links: L3115310
node J305540; upstream links: L3115346 L3115340 ; downstream links: L3115313
node J305565; upstream links: ; downstream links: L3115339 L3115340 L3115338
node J305570; upstream links: L3115350 L3115352 ; downstream links: L3115346
node J305574; upstream links: L3115412 ; downstream links: L3115350
node J305576; upstream links: ; downstream links: L3115352 L3115353
node J305584; upstream links: L3115353 L3115365 ; downstream links:
node J305588; upstream links: ; downstream links: L3115365
node J305625; upstream links: L3115413 ; downstream links:
node J305638; upstream links: L3112348 ; downstream links: L3115412 L3115413
node J305642; upstream links: ; downstream links: L3112266
node J305725; upstream links: ; downstream links: L3006025
node J305797; upstream links: ; downstream links: L3112348
node J305844; upstream links: ; downstream links: L3112395
node J305846; upstream links: L3112395 ; downstream links: L3115427
node J305861; upstream links: L3115427 L3115429 L3115603 ; downstream links:
node J305863; upstream links: L3115470 L3115435 ; downstream links: L3115429
node J305869; upstream links: ; downstream links: L3115435
node J305903; upstream links: L3115473 L3115476 ; downstream links: L3115470
node J305905; upstream links: ; downstream links: L3115472 L3115473
node J305907; upstream links: L3115507 ; downstream links: L3115476
node J305939; upstream links: L3115523 ; downstream links: L3115507
node J305954; upstream links: L3115524 ; downstream links:
node J305956; upstream links: L3115543 ; downstream links: L3115523 L3115524
node J305972; upstream links: L3115542 ; downstream links:
node J305975; upstream links: L3112433 ; downstream links: L3115543 L3115542
node J305989; upstream links: L3115557 L3112495 ; downstream links:
node J305992; upstream links: ; downstream links: L3115557
node J306046; upstream links: ; downstream links: L3115603
node J306066; upstream links: L3112434 ; downstream links:
node J306069; upstream links: L3112449 ; downstream links: L3112433 L3112434
node J306081; upstream links: L3112450 ; downstream links:
node J306084; upstream links: L3112635 ; downstream links: L3112449 L3112450
node J306099; upstream links: L3112706 L3112494 ; downstream links:
node J306130; upstream links: ; downstream links: L3112494 L3112495
node J306169; upstream links: L3112563 ; downstream links:
node J306198; upstream links: L3112909 L3112566 ; downstream links: L3112563
node J306201; upstream links: L3112674 L3112595 ; downstream links: L3112566
node J306230; upstream links: L3112598 ; downstream links: L3112595
node J306233; upstream links: L3112599 ; downstream links: L3112598
node J306234; upstream links: ; downstream links: L3112599
node J306270; upstream links: L3112636 ; downstream links:
node J306272; upstream links: L3112666 ; downstream links: L3112635 L3112636
node J306294; upstream links: L3112667 ; downstream links:
node J306304; upstream links: L3112673 ; downstream links: L3112666 L3112667
node J306310; upstream links: L3112707 ; downstream links: L3112673 L3112674
node J306342; upstream links: ; downstream links: L3112707 L3112706
node J306399; upstream links: L3112912 ; downstream links:
node J306452; upstream links: L3006051 L3112815 ; downstream links:
node J306453; upstream links: ; downstream links: L3112815
node J306473; upstream links: L3006053 ; downstream links: L3006052 L3006051
node J306474; upstream links: L3006056 ; downstream links: L3006053
node J306477; upstream links: L3006078 ; downstream links: L3006056
node J306506; upstream links: ; downstream links: L3006078
node J306598; upstream links: L3112911 L3112918 ; downstream links: L3112909
node J306599; upstream links: ; downstream links: L3112912 L3112911
node J306606; upstream links: L3112930 ; downstream links: L3112918 L3112917
node J306618; upstream links: L3112931 ; downstream links:
node J306619; upstream links: L4113032 ; downstream links: L3112930 L3112931
node J401381; upstream links: L4113033 L4112965 ; downstream links:
node J401383; upstream links: ; downstream links: L4112965
node J401453; upstream links: ; downstream links: L4113032 L4113033
node J402054; upstream links: ; downstream links: L4006133
node J402058; upstream links: L4006132 ; downstream links: L4006198
node J402061; upstream links: L4006133 ; downstream links: L4006132
node J402076; upstream links: L4006145 ; downstream links: L4006199
node J402081; upstream links: L4113582 ; downstream links: L4006145
node J402084; upstream links: ; downstream links: L4113582
node J402145; upstream links: L4006187 ; downstream links: L4006191
node J402148; upstream links: ; downstream links: L4006187
node J402150; upstream links: L4006191 ; downstream links: L4006190
node J402157; upstream links: L4006199 L4006198 L4006190 ; downstream links: L4006326
node J402248; upstream links: L4006261 ; downstream links: L4006238
node J402271; upstream links: ; downstream links: L4006261
node J402326; upstream links: ; downstream links: L4006325
node J402336; upstream links: L4006326 L4006325 ; downstream links: L4006330
node J402341; upstream links: L4006330 L4006340 ; downstream links: L4006556
node J402351; upstream links: ; downstream links: L4006340
node J402377; upstream links: L4006376 ; downstream links: L4006542
node J402388; upstream links: ; downstream links: L4006376
node J402420; upstream links: ; downstream links: L4006429
node J402445; upstream links: L4006543 L4006429 ; downstream links: L4006433
node J402448; upstream links: L4006433 L4006434 ; downstream links: L4006479
node J402449; upstream links: L4006435 ; downstream links: L4006434
node J402477; upstream links: L4006465 ; downstream links: L4006478
node J402480; upstream links: ; downstream links: L4006465
node J402493; upstream links: L4006479 L4006478 ; downstream links: L4006520
node J402530; upstream links: L4006524 L4007561 ; downstream links:
node J402534; upstream links: L4006520 L4006523 ; downstream links: L4006519
node J402537; upstream links: ; downstream links: L4006523 L4006524
node J402548; upstream links: L4006519 ; downstream links: L4007562 L4007561
node J402561; upstream links: L4007585 ; downstream links: L4007574
node J402565; upstream links: L4007574 L4006238 ; downstream links: L4007573
node J402585; upstream links: ; downstream links: L4007586
node J402590; upstream links: L4007586 ; downstream links: L4007585
node J402591; upstream links: L4006544 L4006542 ; downstream links: L4006543
node J409999; upstream links: L4006556 ; downstream links: L4006435
node J602861; upstream links: L6009738 ; downstream links: L6009734
node J602863; upstream links: L6009739 ; downstream links: L6009738
node J602868; upstream links: L6009745 L6009748 ; downstream links: L6009739
node J602872; upstream links: L6009747 ; downstream links: L6009748
node J602874; upstream links: L6009751 ; downstream links: L6009747
node J602876; upstream links: ; downstream links: L6009752 L6009751
node J602883; upstream links: L6006566 L6009752 ; downstream links:
node J602887; upstream links: ; downstream links: L6006565 L6006566
node J602889; upstream links: L6006565 L6006574 ; downstream links:
node J602895; upstream links: ; downstream links: L6006575 L6006574 L6006573
node J602897; upstream links: L6006573 L6007113 ; downstream links:
node J602900; upstream links: L6006575 ; downstream links: L6006581
node J602902; upstream links: L6006581 ; downstream links: L6006580
node J602904; upstream links: L6006580 ; downstream links: L6007592 L6006583
node J602906; upstream links: L6006632 L6006583 ; downstream links:
node J602918; upstream links: L6007592 ; downstream links: L6007591
node J603352; upstream links: L6009765 ; downstream links: L6009745
node J603354; upstream links: L6009766 ; downstream links: L6009765
node J603358; upstream links: L6116053 ; downstream links: L6009766
node J603360; upstream links: L6116051 L3115339 ; downstream links: L6116053
node J603363; upstream links: L6116057 ; downstream links: L6116051
node J603366; upstream links: L6116058 ; downstream links: L6116057
node J603368; upstream links: L3115472 ; downstream links: L6116058
node J603837; upstream links: ; downstream links: L6006632 L6006634
node J603838; upstream links: ; downstream links: L6006636 L6006638
node J603840; upstream links: L6006642 L6006638 ; downstream links: L6006640
node J603842; upstream links: ; downstream links: L6006643 L6006642
node J603844; upstream links: L6006643 ; downstream links:
node J603883; upstream links: L6006640 L6006676 ; downstream links:
node J603888; upstream links: ; downstream links: L6006677 L6006676
node J603908; upstream links: L6006698 L6006636 L6006702 ; downstream links:
node J603912; upstream links: ; downstream links: L6006699 L6006698
node J603913; upstream links: L6006634 L6006699 ; downstream links:
node J603914; upstream links: ; downstream links: L6006702 L6006703
node J603933; upstream links: L6006703 L6006722 ; downstream links:
node J603936; upstream links: ; downstream links: L6006723 L6006722
node J603938; upstream links: L6006723 L6006727 ; downstream links:
node J603940; upstream links: ; downstream links: L6006727
node J603974; upstream links: ; downstream links: L6006761
node J603988; upstream links: L6006783 L6006761 ; downstream links:
node J603993; upstream links: ; downstream links: L6006781 L6006782 L6006783
node J603996; upstream links: L6006785 L6006781 ; downstream links:
node J603997; upstream links: L6007118 ; downstream links: L6006785 L6006784
node J603998; upstream links: L6006784 L6006787 ; downstream links:
node J603999; upstream links: ; downstream links: L6006787 L6006788
node J604001; upstream links: L6006788 ; downstream links: L6006791 L6006790
node J604003; upstream links: L6006790 L6006798 ; downstream links:
node J604005; upstream links: L6006799 L6006804 ; downstream links:
node J604008; upstream links: L6006782 ; downstream links: L6006795
node J604009; upstream links: L6006797 L6006795 ; downstream links:
node J604010; upstream links: ; downstream links: L6006798 L6006799 L6006797
node J604015; upstream links: ; downstream links: L6006804 L6006805
node J604022; upstream links: L6006812 L6006805 ; downstream links:
node J604025; upstream links: ; downstream links: L6006812 L6006813
node J604027; upstream links: L6006813 L6006816 ; downstream links:
node J604029; upstream links: ; downstream links: L6006816 L6006817
node J604030; upstream links: L6006821 L6006817 ; downstream links:
node J604033; upstream links: ; downstream links: L6006821 L6006822
node J604036; upstream links: L6006828 L6006822 ; downstream links:
node J604041; upstream links: ; downstream links: L6006829 L6006828
node J604042; upstream links: L6006829 ; downstream links:
node J604054; upstream links: L6006847 L6006791 ; downstream links:
node J604061; upstream links: ; downstream links: L6006851 L6006847 L6006848 L6006850
node J604065; upstream links: L6006851 L6006859 L6006856 ; downstream links: L6006855
node J604066; upstream links: L6006855 ; downstream links: L6006856
node J604070; upstream links: L6007455 ; downstream links: L6006859 L6006861
node J604071; upstream links: L6006861 ; downstream links:
node J604098; upstream links: L6006848 L6006889 ; downstream links:
node J604100; upstream links: ; downstream links: L6006888 L6006889
node J604103; upstream links: L6006895 L6006888 ; downstream links:
node J604104; upstream links: ; downstream links: L6006894 L6006895
node J604107; upstream links: L6006905 L6006894 ; downstream links:
node J604115; upstream links: ; downstream links: L6006904 L6006905
node J604130; upstream links: L6006922 L6006904 ; downstream links:
node J604132; upstream links: ; downstream links: L6006921 L6006922
node J604134; upstream links: L6006926 L6006921 ; downstream links:
node J604137; upstream links: L6006929 ; downstream links: L6006925 L6006926
node J604138; upstream links: ; downstream links: L6006929
node J604183; upstream links: L6006991 L6006850 ; downstream links: L6006971
node J604184; upstream links: L6006971 ; downstream links:
node J604204; upstream links: ; downstream links: L6006991 L6006993
node J604217; upstream links: L6007008 L6006993 ; downstream links:
node J604221; upstream links: ; downstream links: L6007012 L6007008
node J604239; upstream links: L6007012 ; downstream links:
node J604281; upstream links: L6006925 ; downstream links: L6007075
node J604287; upstream links: L6007075 ; downstream links: L6007074
node J604311; upstream links: L6007074 ; downstream links: L6007112
node J604325; upstream links: L6007114 L6007112 L6007115 ; downstream links: L6007111
node J604327; upstream links: ; downstream links: L6007113 L6007114
node J604328; upstream links: ; downstream links: L6007115 L6007118
node J604348; upstream links: L6007111 L6007149 ; downstream links:
node J604362; upstream links: ; downstream links: L6007149
node J604619; upstream links: L6006677 ; downstream links:
node J604672; upstream links: ; downstream links: L6007455 L6007457
node J604681; upstream links: L6007457 ; downstream links:
node J305017; upstream links: L3005717 L3005749 ; downstream links: L3005689
node J305045; upstream links: ; downstream links: L3005717
node J305065; upstream links: L3005689 L3005802 ; downstream links:
node J305076; upstream links: ; downstream links: L3005749 L3005750
node J305107; upstream links: L3005750 ; downstream links:
node J305130; upstream links: L3005805 L3009122 ; downstream links: L3005802
node J305133; upstream links: L3005849 L3005821 ; downstream links: L3005805
node J305148; upstream links: ; downstream links: L3005821
node J305176; upstream links: L3005889 L3009202 ; downstream links: L3005849 L3005848
node J305216; upstream links: ; downstream links: L3005889
node J305249; upstream links: L3009125 ; downstream links: L3009122
node J305251; upstream links: L3009126 L3009228 L3005947 ; downstream links: L3009125
node J305253; upstream links: ; downstream links: L3009126
node J305334; upstream links: L3009206 ; downstream links: L3009202
node J305338; upstream links: ; downstream links: L3009206
node J305388; upstream links: L3005951 ; downstream links: L3005947
node J305391; upstream links: ; downstream links: L3005951
node J305427; upstream links: L3009227 ; downstream links:
node J305437; upstream links: L3009243 ; downstream links: L3009228 L3009227
node J305452; upstream links: ; downstream links: L3009243
node J603298; upstream links: L6007805 ; downstream links: L6007804
node J603310; upstream links: L6006602 ; downstream links: L6007805
node J603312; upstream links: L6006603 ; downstream links: L6006602
node J603316; upstream links: L6006608 ; downstream links: L6006603
node J603318; upstream links: L6006609 ; downstream links: L6006608
node J603335; upstream links: L6006629 ; downstream links: L6006609
node J603338; upstream links: L6006630 ; downstream links: L6006629
node J603340; upstream links: L3005848 ; downstream links: L6006630
node J304490; upstream links: L3112177 ; downstream links:
node J604776; upstream links: L6113688 ; downstream links:
node J402184; upstream links: L4112013 ; downstream links:
node J401565; upstream links: L4111978 ; downstream links:
node J401747; upstream links: L4113317 ; downstream links:
node J304491; upstream links: L3112118 ; downstream links:
node J602860; upstream links: L6009734 ; downstream links:
node J602919; upstream links: L6007591 ; downstream links:
node J610046; upstream links: L4007562 ; downstream links:
node J402566; upstream links: L4007573 ; downstream links:
node J603297; upstream links: L6007804 ; downstream links:
node J304451; degree 2;
node J304466; degree 3;
node J304470; degree 2;
node J304488; degree 2;
node J604752; degree 2;
node J604754; degree 2;
node J604775; degree 3;
node J604791; degree 1;
node J604847; degree 1;
node J604856; degree 2;
node J604860; degree 2;
node J604862; degree 2;
node J604865; degree 2;
node J604866; degree 2;
node J604870; degree 3;
node J604891; degree 2;
node J604892; degree 3;
node J604901; degree 2;
node J604906; degree 1;
node J604928; degree 3;
node J604946; degree 2;
node J604948; degree 3;
node J604950; degree 2;
node J604952; degree 3;
node J604954; degree 2;
node J604956; degree 2;
node J604959; degree 2;
node J604971; degree 1;
node J605012; degree 3;
node J605017; degree 1;
node J605033; degree 2;
node J605047; degree 2;
node J605057; degree 2;
node J605067; degree 3;
node J605069; degree 2;
node J605075; degree 1;
node J605090; degree 2;
node J605114; degree 3;
node J605116; degree 3;
node J605128; degree 2;
node J605130; degree 2;
node J605135; degree 1;
node J605154; degree 2;
node J605160; degree 2;
node J605163; degree 2;
node J605169; degree 2;
node J605187; degree 2;
node J605194; degree 1;
node J605256; degree 2;
node J605265; degree 1;
node J605324; degree 1;
node J605346; degree 3;
node J605372; degree 2;
node J605385; degree 2;
node J605392; degree 3;
node J605393; degree 2;
node J605396; degree 2;
node J605398; degree 2;
node J605401; degree 2;
node J605404; degree 1;
node J605416; degree 2;
node J605417; degree 2;
node J605425; degree 2;
node J605427; degree 2;
node J605429; degree 1;
node J605445; degree 2;
node J605451; degree 3;
node J605453; degree 2;
node J605455; degree 2;
node J605458; degree 1;
node J605475; degree 3;
node J605495; degree 2;
node J605503; degree 2;
node J605516; degree 3;
node J605518; degree 1;
node J605551; degree 2;
node J605552; degree 2;
node J605556; degree 1;
node J605573; degree 2;
node J605578; degree 2;
node J605617; degree 2;
node J605625; degree 2;
node J605641; degree 3;
node J605654; degree 1;
node J605699; degree 2;
node J605702; degree 2;
node J605708; degree 3;
node J605717; degree 3;
node J605733; degree 2;
node J605735; degree 2;
node J605739; degree 1;
node J605791; degree 1;
node J605818; degree 1;
node J605819; degree 2;
node J605823; degree 2;
node J605830; degree 2;
node J605833; degree 2;
node J605843; degree 4;
node J605867; degree 1;
node J605886; degree 3;
node J605892; degree 3;
node J605927; degree 1;
node J605978; degree 1;
node J605981; degree 2;
node J605983; degree 2;
node J605992; degree 2;
node J605995; degree 2;
node J605996; degree 4;
node J606000; degree 2;
node J606003; degree 1;
node J606021; degree 3;
node J606032; degree 2;
node J606033; degree 2;
node J606044; degree 1;
node J606097; degree 1;
node J606104; degree 2;
node J606106; degree 2;
node J606110; degree 2;
node J606112; degree 2;
node J606115; degree 2;
node J606116; degree 2;
node J606123; degree 3;
node J606128; degree 3;
node J606135; degree 3;
node J606136; degree 3;
node J606138; degree 2;
node J606139; degree 1;
node J606196; degree 2;
node J606207; degree 2;
node J606220; degree 1;
node J606309; degree 1;
node J606310; degree 2;
node J606312; degree 2;
node J606316; degree 2;
node J606317; degree 2;
node J606318; degree 2;
node J606322; degree 2;
node J606374; degree 1;
node J606379; degree 2;
node J606380; degree 2;
node J606382; degree 2;
node J606385; degree 2;
node J606387; degree 2;
node J606391; degree 2;
node J606392; degree 2;
node J606411; degree 1;
node J606415; degree 2;
node J606418; degree 2;
node J606422; degree 2;
node J606430; degree 2;
node J606435; degree 2;
node J606444; degree 2;
node J606447; degree 2;
node J606449; degree 2;
node J606454; degree 3;
node J606476; degree 1;
node J304375; degree 2;
node J304396; degree 2;
node J304414; degree 2;
node J304418; degree 1;
node J306435; degree 2;
node J401415; degree 1;
node J401422; degree 3;
node J401459; degree 2;
node J401465; degree 1;
node J401471; degree 3;
node J401478; degree 2;
node J401506; degree 1;
node J401520; degree 2;
node J401532; degree 2;
node J401564; degree 3;
node J401574; degree 1;
node J401600; degree 1;
node J401603; degree 2;
node J401618; degree 2;
node J401647; degree 2;
node J401674; degree 2;
node J401675; degree 2;
node J401691; degree 4;
node J401696; degree 2;
node J401699; degree 3;
node J401735; degree 1;
node J401746; degree 2;
node J401767; degree 3;
node J401776; degree 2;
node J401797; degree 1;
node J401813; degree 2;
node J401855; degree 1;
node J401864; degree 3;
node J401867; degree 3;
node J401872; degree 3;
node J401875; degree 1;
node J401892; degree 1;
node J401910; degree 1;
node J401955; degree 1;
node J401960; degree 3;
node J402010; degree 2;
node J402016; degree 1;
node J402017; degree 3;
node J402163; degree 2;
node J402168; degree 1;
node J402178; degree 2;
node J402183; degree 3;
node J304730; degree 2;
node J304734; degree 2;
node J304738; degree 3;
node J304745; degree 3;
node J304749; degree 3;
node J304769; degree 1;
node J304792; degree 2;
node J304806; degree 3;
node J304808; degree 3;
node J304810; degree 3;
node J304811; degree 2;
node J304831; degree 2;
node J304845; degree 3;
node J304857; degree 1;
node J304888; degree 3;
node J304898; degree 2;
node J304901; degree 2;
node J304902; degree 1;
node J304943; degree 3;
node J304953; degree 3;
node J304955; degree 2;
node J304956; degree 2;
node J304987; degree 1;
node J304989; degree 3;
node J305002; degree 2;
node J305062; degree 2;
node J305499; degree 1;
node J305505; degree 3;
node J305533; degree 3;
node J305537; degree 3;
node J305540; degree 3;
node J305565; degree 3;
node J305570; degree 3;
node J305574; degree 2;
node J305576; degree 2;
node J305584; degree 2;
node J305588; degree 1;
node J305625; degree 1;
node J305638; degree 3;
node J305642; degree 1;
node J305725; degree 1;
node J305797; degree 1;
node J305844; degree 1;
node J305846; degree 2;
node J305861; degree 3;
node J305863; degree 3;
node J305869; degree 1;
node J305903; degree 3;
node J305905; degree 2;
node J305907; degree 2;
node J305939; degree 2;
node J305954; degree 1;
node J305956; degree 3;
node J305972; degree 1;
node J305975; degree 3;
node J305989; degree 2;
node J305992; degree 1;
node J306046; degree 1;
node J306066; degree 1;
node J306069; degree 3;
node J306081; degree 1;
node J306084; degree 3;
node J306099; degree 2;
node J306130; degree 2;
node J306169; degree 1;
node J306198; degree 3;
node J306201; degree 3;
node J306230; degree 2;
node J306233; degree 2;
node J306234; degree 1;
node J306270; degree 1;
node J306272; degree 3;
node J306294; degree 1;
node J306304; degree 3;
node J306310; degree 3;
node J306342; degree 2;
node J306399; degree 1;
node J306452; degree 2;
node J306453; degree 1;
node J306473; degree 3;
node J306474; degree 2;
node J306477; degree 2;
node J306506; degree 1;
node J306598; degree 3;
node J306599; degree 2;
node J306606; degree 3;
node J306618; degree 1;
node J306619; degree 3;
node J401381; degree 2;
node J401383; degree 1;
node J401453; degree 2;
node J402054; degree 1;
node J402058; degree 2;
node J402061; degree 2;
node J402076; degree 2;
node J402081; degree 2;
node J402084; degree 1;
node J402145; degree 2;
node J402148; degree 1;
node J402150; degree 2;
node J402157; degree 4;
node J402248; degree 2;
node J402271; degree 1;
node J402326; degree 1;
node J402336; degree 3;
node J402341; degree 3;
node J402351; degree 1;
node J402377; degree 2;
node J402388; degree 1;
node J402420; degree 1;
node J402445; degree 3;
node J402448; degree 3;
node J402449; degree 2;
node J402477; degree 2;
node J402480; degree 1;
node J402493; degree 3;
node J402530; degree 2;
node J402534; degree 3;
node J402537; degree 2;
node J402548; degree 3;
node J402561; degree 2;
node J402565; degree 3;
node J402585; degree 1;
node J402590; degree 2;
node J402591; degree 3;
node J409999; degree 2;
node J602861; degree 2;
node J602863; degree 2;
node J602868; degree 3;
node J602872; degree 2;
node J602874; degree 2;
node J602876; degree 2;
node J602883; degree 2;
node J602887; degree 2;
node J602889; degree 2;
node J602895; degree 3;
node J602897; degree 2;
node J602900; degree 2;
node J602902; degree 2;
node J602904; degree 3;
node J602906; degree 2;
node J602918; degree 2;
node J603352; degree 2;
node J603354; degree 2;
node J603358; degree 2;
node J603360; degree 3;
node J603363; degree 2;
node J603366; degree 2;
node J603368; degree 2;
node J603837; degree 2;
node J603838; degree 2;
node J603840; degree 3;
node J603842; degree 2;
node J603844; degree 1;
node J603883; degree 2;
node J603888; degree 2;
node J603908; degree 3;
node J603912; degree 2;
node J603913; degree 2;
node J603914; degree 2;
node J603933; degree 2;
node J603936; degree 2;
node J603938; degree 2;
node J603940; degree 1;
node J603974; degree 1;
node J603988; degree 2;
node J603993; degree 3;
node J603996; degree 2;
node J603997; degree 3;
node J603998; degree 2;
node J603999; degree 2;
node J604001; degree 3;
node J604003; degree 2;
node J604005; degree 2;
node J604008; degree 2;
node J604009; degree 2;
node J604010; degree 3;
node J604015; degree 2;
node J604022; degree 2;
node J604025; degree 2;
node J604027; degree 2;
node J604029; degree 2;
node J604030; degree 2;
node J604033; degree 2;
node J604036; degree 2;
node J604041; degree 2;
node J604042; degree 1;
node J604054; degree 2;
node J604061; degree 4;
node J604065; degree 4;
node J604066; degree 2;
node J604070; degree 3;
node J604071; degree 1;
node J604098; degree 2;
node J604100; degree 2;
node J604103; degree 2;
node J604104; degree 2;
node J604107; degree 2;
node J604115; degree 2;
node J604130; degree 2;
node J604132; degree 2;
node J604134; degree 2;
node J604137; degree 3;
node J604138; degree 1;
node J604183; degree 3;
node J604184; degree 1;
node J604204; degree 2;
node J604217; degree 2;
node J604221; degree 2;
node J604239; degree 1;
node J604281; degree 2;
node J604287; degree 2;
node J604311; degree 2;
node J604325; degree 4;
node J604327; degree 2;
node J604328; degree 2;
node J604348; degree 2;
node J604362; degree 1;
node J604619; degree 1;
node J604672; degree 2;
node J604681; degree 1;
node J305017; degree 3;
node J305045; degree 1;
node J305065; degree 2;
node J305076; degree 2;
node J305107; degree 1;
node J305130; degree 3;
node J305133; degree 3;
node J305148; degree 1;
node J305176; degree 4;
node J305216; degree 1;
node J305249; degree 2;
node J305251; degree 4;
node J305253; degree 1;
node J305334; degree 2;
node J305338; degree 1;
node J305388; degree 2;
node J305391; degree 1;
node J305427; degree 1;
node J305437; degree 3;
node J305452; degree 1;
node J603298; degree 2;
node J603310; degree 2;
node J603312; degree 2;
node J603316; degree 2;
node J603318; degree 2;
node J603335; degree 2;
node J603338; degree 2;
node J603340; degree 2;
node J304490; degree 1;
node J604776; degree 1;
node J402184; degree 1;
node J401565; degree 1;
node J401747; degree 1;
node J304491; degree 1;
node J602860; degree 1;
node J602919; degree 1;
node J610046; degree 1;
node J402566; degree 1;
node J603297; degree 1;
相关推荐
ICT系统集成阿祥3 小时前
OSPF邻居建立失败完整排查指南
网络·网络协议
liulilittle4 小时前
OPENPPP2 Code Analysis One
网络·c++·网络协议·信息与通信·通信
叫致寒吧4 小时前
k8s操作(三)
网络·容器·kubernetes
sww_10264 小时前
Netty原理分析
java·网络
一条咸鱼_SaltyFish6 小时前
[Day10] contract-management初期开发避坑指南:合同模块 DDD 架构规划的教训与调整
开发语言·经验分享·微服务·架构·bug·开源软件·ai编程
星辰烈龙6 小时前
黑马程序员JavaSE基础加强d5
服务器·网络·php
单片机系统设计7 小时前
基于STM32的水质检测系统
网络·stm32·单片机·嵌入式硬件·毕业设计·水质检测
mangge087 小时前
ESP8266 温湿度监测系统教程(SHT30+MAX7219+LeanCloud+HTTP 服务)
网络·网络协议·http
牛奶皮子7 小时前
合并 CSS 文件可以减少 HTTP 请求数,因为每个请求都会带来额外的网络开销
css·网络·http
阿巴~阿巴~7 小时前
“可达”方能“可靠”:深入解析网络层在TCP通信中的基石作用
运维·服务器·网络·网络协议·tcp/ip·ip·tcp