问题标签 [mfc-networking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
412 浏览

mfc-networking - 获取连接到机器的共享列表

考虑到我已经连接到远程机器的多个共享(\\machineA\share1、\\machineA\share2....)以及其他远程机器上的共享。

现在我的问题是如何只找到那些连接到特定机器的共享。例如,只有那些连接到 machineA 的共享。

我已经遇到了 WNetOpenEnum 和 WNetEnumResource。但是这些效率非常低,它们将返回连接到我的机器的所有共享,然后我将不得不搜索连接到 machineA 的共享的结果:(

我需要知道是否有其他功能,使用它我可以找到共享。

我正在研究 VC++ 6.0。

编辑:嘿家伙有另一个麻烦。每当我尝试连接到机器上的共享时,我都会收到以下错误: “引用的帐户当前被锁定,可能无法登录” 有没有人遇到过这个问题以及如何解决

0 投票
1 回答
1085 浏览

c++ - 为什么 MFC::CHttpFile 'PUT' 不适合我?

我的代码与供应商提供的一个小型 Java 应用程序对话。这个 Java 应用程序在 localhost:57000 设置了一个 Web 服务器,用于控制“机器”的状态。出于这个问题的目的,我需要将“机器”的状态从“关闭”更改为“开启”。为了实现这一点,我应该将以下字符串 HTTP PUT 到http://localhost:57000/settings.xml的“机器” :

此 Curl 命令完美运行:

curl -X PUT -H "Content-Type:application/xml" -d @settings.xml http://localhost:57000/settings.xml "

其中本地文件“settings.xml”中包含上述 xml 字符串。

我想做 Curl 对 MFC 的 WININET 类所做的事情。恕我直言,以下代码应该与 curl 所做的完全相同。遗憾的是,尽管 localhost Web 服务器返回代码 200,但它忽略了我的 xml 字符串。我错过了什么小东西?

提前致谢。

0 投票
1 回答
3672 浏览

c++ - CAsyncSocket and threading

I'm using a MFC CAsyncSocket to do some network communication in a multi-threaded environment. After several hours of trying to get the accepted sockets to accept incoming data I came across a page that states that for a CAsyncSocket's OnReceive function to be called the socket has to be in the context of the main GUI thread. Moving it to the main GUI thread has allowed the socket to start receiving data.

My question is this: does anyone know of a workaround for this? The socket was on a GUI thread before and the OnAccept was being called fine. The accepted socket could be used to send data no problem, just couldn't receive anything. I'd rather not have to re-architect this part of the software if I can avoid it.

0 投票
3 回答
6372 浏览

visual-studio - 在 Windows 服务中使用 MFC?

我开始开发 Windows 服务。我想使用我自己的一些类,它们对某些 MFC 类(如 CString、CSocket、CArchive、CMemFile 和 CObject)几乎没有依赖关系。MSDN说您需要非常小心您在 Windows 服务中使用哪些 MFC,但不要指定它,也不要描述可能出现的问题。

我的问题是:

  • 可以使用哪些MFC?
  • 使用 MFC 会出现什么问题?
  • Windows 服务的哪些部分对 MFC 的使用至关重要?
  • 是否建议对 Windows 服务使用 ATL 而不是 MFC?
0 投票
2 回答
2128 浏览

sockets - MFC CSocket keepalive数据包未发送

当我连接到远程服务器时,我试图为我的应用程序找到一种通过 TCP 检测断开连接的方法。我在想最明显的方法是使用 TCP keepalive 选项。这是一个 MFC C++ 应用程序,MySock 类继承自 CSocket。我曾尝试在调用 Connect 之前和之后设置 SO_KEEPALIVE 选项,但我从未见过通过wireshark 发送keepalive 数据包。我可以看到我在连接上发送的所有数据都很好,所以我知道它已经连接并且正在工作。

在调用 SetSockOpt 之前调用 GetSockOpt 时 optval 的值为 0,调用之后为 1。连接后的值仍设置为 1。我在调用 GetSockOpt 之前将 optval 设置为 0,以确保没有发生任何奇怪的事情。Get 或 Set 都没有返回错误。任何帮助或想法将不胜感激。我目前的理论是客户端连接(我正在连接到侦听套接字)不发送保活。keepalives 是否仅来自作为侦听器的连接?谢谢你的时间。

0 投票
1 回答
2556 浏览

c# - 如何创建 C# 事件以处理来自 PostMessage() 的 MFC Windows 消息

我有一个使用 WINSOCK 的托管 C++ DLL。在接收时,它通过 PostMessage() 将自定义消息发送到 CWnd *。当从非托管 C++ 调用时,这可以正常工作。使用以下代码构造后,目标 CWnd * 在 C++ 类中注册:

这是将消息发布到 CWnd 的代码 *

我现在使用 C# Windows 窗体应用程序中的这个 CUdpRetrySocket 类。问题:

  1. 从 C# Forms 类我如何获得一个 CWnd * 来注册我的 C++ CUdpRetrySocket 类

    在这里找到答案#1

  1. 如何在我的 C# 窗口中创建事件以捕获此自定义 MFC 样式消息?

  2. 即使窗口最小化,我也需要 C# 应用程序来处理数据包。如果 C# Forms 窗口最小化,它还会收到这些消息吗?

  3. 有一个更好的方法吗?

0 投票
1 回答
371 浏览

c++ - 访问已传递给线程的套接字

我是 MFCCWinThread和的新手CAsyncSocket,并尝试通过基于对话框的应用程序自己学习它们。
这是我想要做 的:制作服务器/多客户端模型:当客户端数量连接到服务器时,服务器将根据客户端数量创建线程并通过套接字连接到线程。我已经参考了这篇文章来传递: https: //support.microsoft.com/en-us/kb/175668

我已经成功地在每个连接上创建线程,但是......
我的问题是:我可以从主窗口(GUI)重新访问已传递给线程的所有套接字以向所有客户端发送(广播)数据吗?

这就是我传递的方式:
在服务器端:


注意:m_Listener是派生自CAsyncSocketCSocketThread派生自的类的对象CWinThread
在线程标题内,我添加了 2 行:

在线程类 .cpp 中:



有人可以告诉我接下来要做什么将数据发送到这些套接字吗?