Articles of networking

如果通过计划任务调用BAT文件,则无法将文件复制到UNC目标

我有一个bat文件将文件从当前机器复制到映射的networking驱动器(一行xcopy命令)。 它适用于我的RDP到服务器。 然而,当我作为一个计划任务运行,并将其configuration为在我login的同一用户下运行,它不起作用,并给出错误0x4。 有什么办法可以做到这一点? 我也尝试dsynchronize,它在我单击同步时工作。 当我运行它作为服务相同的问题。

从GetAdaptersAddresses()获取IP_ADDRESS_STRING?

GetAdaptersAddresses()将以IP_ADAPTER_UNICAST_ADDRESS格式获取地址,其格式如下: typedef struct _IP_ADAPTER_UNICAST_ADDRESS { union { struct { ULONG Length; DWORD Flags; } ; } ; struct _IP_ADAPTER_UNICAST_ADDRESS *Next; SOCKET_ADDRESS Address; IP_PREFIX_ORIGIN PrefixOrigin; IP_SUFFIX_ORIGIN SuffixOrigin; IP_DAD_STATE DadState; ULONG ValidLifetime; ULONG PreferredLifetime; ULONG LeaseLifetime; UINT8 OnLinkPrefixLength; } IP_ADAPTER_UNICAST_ADDRESS, *PIP_ADAPTER_UNICAST_ADDRESS; 似乎build议人类可读IP地址string的唯一字段是Address,它是一个SOCKET_ADDRESS结构,定义如下: typedef struct _SOCKET_ADDRESS { LPSOCKADDR lpSockaddr; INT iSockaddrLength; } SOCKET_ADDRESS, *PSOCKET_ADDRESS; 其中,反过来,使用另一种结构,SOCKADDR,定义为: 对不起,这是复杂的方式张贴在这里,因为它取决于IPv4与IPv6和Windows版本…所以这里是一个链接到定义: http://msdn.microsoft.com/en-us/library/ms740496%28v=VS.85%29.aspx 如果你还没有像我那样头晕目眩,并通过这个定义的迷宫,你可能会注意到,这是一个噩梦来检索一个IP地址的旧的虚线string样式,因为它使用GetAdaptersInfo()更容易, […]

为什么我的客户端套接字不能连接到我的ServerSocket?

在这个非常基本的客户端/服务器套接字程序中,为什么我的客户端套接字从不连接并抛出java.net.ConnectException ? 我在一台计算机上运行MessageServer程序,在同一networking上的另一台笔记本电脑上运行ClientServer程序。 我已经validation,正在运行服务器程序的计算机的本地IP是10.0.0.1在该计算机上的Windows cmd中使用ipconfig命令。 服务器: package server; import java.net.*; import java.io.*; public class MessageServer { public static void main(String args[]) { ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(4302); } catch (Exception e) { System.out.println("well bad news…"); } boolean noConnection = true; while(noConnection == true) { try { Socket client = serverSocket.accept(); […]

Windows上networking接口准备就绪的通知

如何在Windows XP下启动并准备好networking接口时收到通知? 就绪意味着接口已经通过DHCP获得了一个networkingIP地址,并准备使用。

如何根据设备实例ID可靠快速地获取网卡的MAC地址

给定一个网卡的设备实例ID ,我想知道它的MAC地址。 集成英特尔千兆位卡的系统示例设备实例ID: PCI\VEN_8086&DEV_10CC&SUBSYS_00008086&REV_00\3&33FD14CA&0&C8 到目前为止,我使用的algorithm如下所示: 用DIGCF_DEVICEINTERFACE调用DIGCF_DEVICEINTERFACE 。 调用SetupDiEnumDeviceInfo来获取SP_DEVINFO_DATA的返回设备。 使用GUID_NDIS_LAN_CLASS调用SetupDiEnumDeviceInterfaces以获取设备接口。 为此返回的设备接口调用SetupDiGetDeviceInterfaceDetail 。 这将得到设备path为string: \\?\pci#ven_8086&dev_10cc&subsys_00008086&rev_00#3&33fd14ca&0&c8#{ad498944-762f-11d0-8dcb-00c04fc3358c}\{28fd5409-15bd-4c06-b62f-004d3a06f852} 在这一点上,我们有一个地址到网卡驱动程序的界面。 使用#4的结果使用CreateFile打开它。 使用IOCTL_NDIS_QUERY_GLOBAL_STATS和OID_802_3_PERMANENT_ADDRESS调用DeviceIoControl以获取MAC地址。 这通常起作用,并且已经在相当多的机器上成功使用。 但是,看起来只有less数机器具有networking驱动程序,它们在步骤#6中没有正确响应DeviceIoControl请求; 即使将网卡驱动程序更新到最新,问题仍然存在。 这些更新,基于Windows 7的计算机。 具体来说, DeviceIoControl成功完成,但返回零字节,而不是包含MAC地址的预期的六个字节。 一个线索似乎在IOCTL_NDIS_QUERY_GLOBAL_STATS的MSDN页面上: 此IOCTL将在以后的操作系统版本中被弃用。 您应该使用WMI接口来查询微型端口驱动程序信息。 有关更多信息,请参阅NDIS对WMI的支持。 – 也许更新的网卡驱动程序不再实现这个IOCTL? 那么,我应该如何做到这一点? 是否有可能在我的方法中有一个疏忽,我正在做一些微小的错误? 还是我需要采取更多不同的方法? 一些替代方法似乎包括: 查询Win32_NetworkAdapter WMI类:提供所需的信息,但由于可怕的性能而被拒绝。 请参阅Win32_NetworkAdapter WMI类的快速replace以获取本地计算机的MAC地址 查询MSNdis_EthernetPermanentAddress WMI类:看起来是IOCTL_NDIS_QUERY_GLOBAL_STATS的WMIreplace,并直接从驱动程序查询OID – 这个工作在麻烦的networking驱动程序上。 不幸的是,返回的类实例只提供MAC地址和InstanceName ,这是一个本地化的string,如Intel(R) 82567LM-2 Gigabit Network Connection 。 查询MSNdis_EnumerateAdapter生成一个将InstanceName关联到DeviceName的列表,如\DEVICE\{28FD5409-15BD-4C06-B62F-004D3A06F852} 。 我不知道如何从DeviceName转到即插即用设备实例ID( PCI\VEN_8086…… )。 调用GetAdaptersAddresses或GetAdaptersInfo (不build议使用)。 […]

.NET SqlConnection网卡使用情况

有一台计算机与多个网卡,我需要指定一个用于连接到SQL Server的。

如何使用套接字重叠I / O?

我想在我的服务器中使用重叠I / O,但是我无法find关于这个主题的很多教程(大多数教程都是关于重叠I / O与完成端口,我想使用callback函数)。 我的服务器最多可同时连接400个客户端,并且只能长时间发送和接收数据(每30秒钟,服务器和客户端之间交换几千字节的数据)。 我想使用重叠I / O的主要原因是select()最多只能处理64个套接字(我有400个!)。 所以我会告诉你我是如何理解重叠的I / O,并纠正我,如果我错了: 如果我想从一个客户端接收数据,我使用WSARecv()并提供套接字句柄和一个缓冲区来填充接收到的数据, 同时我也提供一个callback函数 。 当数据被接收并填充到缓冲区时,callback函数将被调用,并且我可以处理这些数据。 当我想发送数据时我使用WSASend() ,我也提供套接字句柄和callback函数,并且当数据被发送时(不确定是否放置在底层的发送缓冲区中或实际放置在线上),callback也会被称为告诉我数据已发送,我可以发送下一个数据。