搞不懂的链接错,vc。net一个查看tcp网络连接的程序
#include "stdafx.h"
#include "HttpServer.h"
#include "TcplinkDlg.h"
#include <iphlpapi.h>
// CTcplinkDlg 对话框
IMPLEMENT_DYNAMIC(CTcplinkDlg, CDialog)
CTcplinkDlg::CTcplinkDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTcplinkDlg::IDD, pParent)
{
}
CTcplinkDlg::~CTcplinkDlg()
{
}
void CTcplinkDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TCP_LIST, m_list);
}
BEGIN_MESSAGE_MAP(CTcplinkDlg, CDialog)
END_MESSAGE_MAP()
// CTcplinkDlg 消息处理程序
BOOL CTcplinkDlg::OnInitDialog()
{
CDialog::OnInitDialog();
RECT rect;
PMIB_TCPTABLE tcpTable = NULL;
BYTE pBuffer[100*20+4];
DWORD dwTableSize = 0;
in_addr addrLoc, addrRem;
// Setup the list box
m_list.ModifyStyle(LVS_TYPEMASK, LVS_REPORT);
ListView_SetExtendedListViewStyle(m_list.m_hWnd, LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT );
m_list.DeleteAllItems();
m_list.InsertColumn(0, "本地地址");
m_list.InsertColumn(1, "本地端口");
m_list.InsertColumn(2, "远程地址");
m_list.InsertColumn(3, "远程端口");
m_list.InsertColumn(4, "连接状态");
m_list.GetWindowRect(&rect);
int nTotalX = rect.right - rect.left;
m_list.SetColumnWidth(0, nTotalX/5);
m_list.SetColumnWidth(1, nTotalX/5);
m_list.SetColumnWidth(2, nTotalX/5);
m_list.SetColumnWidth(3, nTotalX/5);
m_list.SetColumnWidth(4, nTotalX/5);
dwTableSize = 100*20+4;
// Get the TCP Table
// if the buffer is small this function returns the required size in dwTableSize
DWORD dwRet = GetTcpTable((PMIB_TCPTABLE)pBuffer, &dwTableSize, TRUE);
if(dwRet == NO_ERROR)
{
tcpTable = (PMIB_TCPTABLE)pBuffer;
for(DWORD i=0; i<tcpTable->dwNumEntries; i++)
{
char szTemp[100];
char szLocAddr[100], szRemAddr[100];
DWORD dwRemIP = htonl(tcpTable->table[i].dwRemoteAddr);
unsigned short nRemPort = htons(tcpTable->table[i].dwRemotePort);
DWORD dwLocIP = htonl(tcpTable->table[i].dwLocalAddr);
unsigned short nLocPort = htons(tcpTable->table[i].dwLocalPort);
addrLoc.S_un.S_addr = ntohl(dwLocIP);
addrRem.S_un.S_addr = ntohl(dwRemIP);
strcpy(szLocAddr, inet_ntoa(addrLoc));
strcpy(szRemAddr, inet_ntoa(addrRem));
m_list.InsertItem(i, "");
m_list.SetItemText(i, 0, szLocAddr);
sprintf(szTemp, "%u", nLocPort);
m_list.SetItemText(i, 1, szTemp);
m_list.SetItemText(i, 2, szRemAddr);
sprintf(szTemp, "%u", nRemPort);
m_list.SetItemText(i, 3, szTemp);
switch(tcpTable->table[i].dwState)
{
case MIB_TCP_STATE_CLOSED:
m_list.SetItemText(i, 4, "Closed");
break;
case MIB_TCP_STATE_LISTEN:
m_list.SetItemText(i, 4, "Listening");
break;
case MIB_TCP_STATE_SYN_SENT:
m_list.SetItemText(i, 4, "SYN Sent");
break;
case MIB_TCP_STATE_SYN_RCVD:
m_list.SetItemText(i, 4, "SYN Received");
break;
case MIB_TCP_STATE_ESTAB:
m_list.SetItemText(i, 4, "Established");
break;
case MIB_TCP_STATE_FIN_WAIT1:
m_list.SetItemText(i, 4, "Waiting for FIN");
break;
case MIB_TCP_STATE_FIN_WAIT2:
m_list.SetItemText(i, 4, "Waiting for FIN");
break;
case MIB_TCP_STATE_CLOSE_WAIT:
m_list.SetItemText(i, 4, "Waiting for Close");
break;
case MIB_TCP_STATE_CLOSING:
m_list.SetItemText(i, 4, "Closing");
break;
case MIB_TCP_STATE_LAST_ACK:
m_list.SetItemText(i, 4, "Last ACK");
break;
case MIB_TCP_STATE_TIME_WAIT:
m_list.SetItemText(i, 4, "Time Wait");
break;
case MIB_TCP_STATE_DELETE_TCB:
m_list.SetItemText(i, 4, "TCB deleted");
break;
default:
m_list.SetItemText(i, 4, "Unknown status");
}
}
}
else
{
m_list.SetItemText(0, 0, "Unable to get TCP Connections");
}
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
错误提示为:
TcplinkDlg.obj : error LNK2019: 无法解析的外部符号 _GetTcpTable@12 ,该符号在函数 "protected: virtual int __thiscall CTcplinkDlg::OnInitDialog(void)" (?OnInitDialog@CTcplinkDlg@@MAEHXZ) 中被引用
.\Debug/HttpServer.exe : fatal error LNK1120: 1 个无法解析的外部命令
相关推荐
Vc.net TCP多服务端
Vc.net TCP多服务端 一个端口可以同时接收多个客户端的访问。
Windows下OpenClaw+飞书生产级接入实战指南
Windows系统中部署本地智能体框架(如OpenClaw)并对接企业协作平台(如飞书),本质是解决进程守护、HTTPS回调验证、网络栈兼容与权限隔离四大基础问题。其核心原理在于绕过公网依赖,利用本地回环(127.0.0.1)+自签名证书+Hosts绑定构建可信内网通信链路;技术价值体现在低延迟(<120ms)、高可用(Windows Service自动恢复)、强安全(专用服务账户沙箱);典型应用于制造业IT告警、金融私有知识库问答、销售线索自动分发等需数据不出域的场景;本文聚焦win环境下的OpenCla
PyMongo连接失败的7大根因与10分钟排障指南
MongoDB与Python的连接本质上是TCP网络通信、TLS加密协商、身份认证和权限校验的综合过程。其底层依赖Wire Protocol协议栈,受Python版本、PyMongo驱动版本、MongoDB服务器版本三者兼容性严格约束。技术价值在于:稳定连接是数据应用可信运行的前提,避免CI/CD中‘本地通线上挂’等环境漂移问题。典型应用场景包括Docker微服务间通信、MongoDB Atlas云集群接入、Kubernetes有状态应用初始化及高校IoT数据采集管道搭建。本文聚焦PyMongo同步连接这一
VC++构建高性能HTTPSERVER:IOCP模型与Windows原生开发实践
网络编程中的I/O模型是构建高性能服务器的核心技术基础,它决定了程序处理并发连接的能力与效率。在Windows平台下,IOCP(I/O完成端口)机制通过异步非阻塞与线程池调度,实现了高并发网络请求的高效处理,成为开发高性能服务的首选方案。这项技术的核心价值在于能够以少量系统资源支撑上万并发连接,特别适合需要深度集成Windows系统特性的专用服务场景。例如,在开发需要常驻Windows服务器的监控Agent、对实时性要求极高的工业控制软件管理界面时,基于VC++和IOCP构建的原生HTTP服务器,能够实现零
Vc.net/CLR TCP通讯客户端
Vc.net/CLR TCP通讯客户端


VC.NET
