Articles of networking

将Web应用程序加载为Windows桌面应用程序的简单/最佳方法?

你好基本上我有一个使用HTML5 / PHP等build立的Web应用程序,它是一个音乐播放器,类似于Spotify和潘多拉。 我想分发作为桌面应用程序的Web应用程序,以便人们可以直接从桌面运行它,而无需打开浏览器。 我不喜欢像系统的浏览器,只是加载网页视图(类似于在iOS中加载web视图)(没有标签没有url栏等) 我听说棱镜,但已停产,我无法find任何地方的下载链接。 你有什么build议吗? 对于Mac OS X,我发现了FluidApp,它似乎工作得很好,因为它build立了一个独立的应用程序。 对于iOS,我可以简单地通过webview加载web应用程序,它工作的很好,正是我所需要的。 对于android我基本上加载一个webview。 Windows让我停下来通过一个独立的桌面应用程序加载Web应用程序。 所以如果有人能够帮助我,将不胜感激!

Windows防火墙编程

我GOOGLE了很多次,直到我创build了这个问题,所以请原谅,如果有一些教程。 我没有find他们。 如何在Windows中编写防火墙应用程序? 我想过在每个进程中使用内联钩子的用户模式fiewall,但是有一个问题,我不能在Windows 7中挂钩csrss.exe(它创build新的进程)。第二件事是它不是很干净,确定为恶意软件。 所以我认为我应该把内核模式的API作为一个驱动程序。 但是有三个问题。 首先,我不知道Windows套接字的内核API。 其次我没有任何有关内核模式钩子的经验。 第三,我不知道这是否正确。 别担心,我知道这不是一件容易的事情,我不是初学者,只是一个想法;)。 如果有人有好的信息,请分享。 哦,我想写的x86系统;)。

监听传入数据时,“现有连接被远程主机强制closures”

在使用boost asio时,我偶然发现了一些奇怪的行为,我不太明白。 我写了一个最小的testing程序来复制这个问题: #include <boost/asio.hpp> #include <iostream> using boost::asio::ip::udp; int main(int argc,char *argv[]) { boost::asio::io_service ioService; udp::resolver resolver(ioService); udp::resolver::query queryListen("127.0.0.1","50001"); auto epListen = *resolver.resolve(queryListen); udp::socket socket(ioService,epListen); udp::resolver::query querySend("127.0.0.1","55006"); auto epSend = *resolver.resolve(querySend); boost::system::error_code err; std::array<char,12> buffer = {'1','2','3','4','5','6','7','8','9','10','11','12'}; socket.send_to( boost::asio::buffer(&buffer[0],buffer.size()), epSend,0,err ); if(!err) { std::cout<<"Sent successfully!"<<std::endl; auto numBytes = socket.receive( boost::asio::buffer(&buffer[0],buffer.size()),0, err ); if(!err) std::cout<<"Received […]

寻找物理适配器的MAC地址

我想使用一个唯一的标识符来确定我的应用程序是否移动到不同的计算机。 MAC地址似乎适合于这个目的。 我使用的代码是这样的: Procedure TForm4.GetMacAddress; var item: TListItem; objWMIService : OLEVariant; colItems : OLEVariant; colItem : OLEVariant; oEnum : IEnumvariant; iValue : LongWord; wmiHost, root, wmiClass: string; i: Int32; function GetWMIObject(const objectName: String): IDispatch; var chEaten: Integer; BindCtx: IBindCtx;//for access to a bind context Moniker: IMoniker;//Enables you to use a moniker object begin OleCheck(CreateBindCtx(0, bindCtx)); […]

创build自定义协议(Windows 7)

我一直在尝试创build一个自定义协议(open_php_file://)来通过浏览器打开本地文件。 我创build了以下registry项: HKEY_CLASSES_ROOT open_php_file (Default) = "URL:PHPEd protocol" URL Protocol = "" DefaultIcon (Default) = "phped.exe" shell open command (Default) = "C:\Program Files (x86)\NuSphere\7.0\phped.exe" "%1" 问题是:我无法打开我的浏览器中的文件(例如:open_php_file:// c:\ file.txt),并且该协议没有在Windows默认程序中列出。

Windows默认打印机未设置时,“没有select默认打印机”错误

当没有Windows默认打印机设置时,我需要打开打印机对话框。 当Windows默认打印机设置时,它可以正常工作。 TPrintDialog *dlgPrint = new TPrintDialog(frmDisplayDetail); if( dlgPrint->Execute()) { //code here } 但是,如果在Windows中没有默认的打印机设置,则dlgPrint->Execute()将引发一个exception: 没有select默认打印机 要检查默认的打印机索引,我使用了Printer()->PrinterIndex 。 没有Windows打印机设置时,此值变得不可访问: 错误E2122函数调用在地址XXX处由未处理的exceptionXXX终止 难道我做错了什么? 请提出解决scheme。

如何在多主机之间创builddocker覆盖networking?

我一直在尝试在两台主机之间创build一个覆盖networking,但没有成功。 我不断收到错误消息: mavungu@mavungu-Aspire-5250:~$ sudo docker -H tcp://192.168.0.18:2380 network create -d overlay myapp Error response from daemon: 500 Internal Server Error: failed to parse pool request for address space "GlobalDefault" pool "" subpool "": cannot find address space GlobalDefault (most likely the backing datastore is not configured) mavungu@mavungu-Aspire-5250:~$ sudo docker network create -d overlay myapp [sudo] […]

摄像头访问在C + +

我想访问摄像头,所以我可以在图像上做一些处理,比如追踪光线,但是我找不到访问摄像头的方法。 我GOOGLE了,但我感到困惑。 你能指点我一个可以做到这一点的图书馆(窗口)? 也许还提供一个例子? 如果可能的话,我需要定期获取图像的像素图,大约每秒20次。

JFileChooser和浏览联网机器

我正在开发一个小程序,它需要能够让用户浏览联网机器上的文件和目录以及本地文件系统。 我犯了在Windows机器上开发这个组件的错误……它在那里工作得很好,但隐藏了JFileChooser并不真正“看到”networking驱动器的事实。 在Windows上,“网上邻居”显示在JFileChooser中。 但显然这不是典型的,因为networking驱动器不是文件。 当我将select器组件添加到我的程序并在几台Linux机器上进行testing时,我发现我应该已经知道的… JFileChooser不会浏览networking。 所以现在我处在一个十字路口,真的可以使用一些build议。 有一个(Java)的select,我应该使用? 还是应该继续使用JFileChooser将其强制转换为我需要的行为?

在asynchronous模式下使用WinHttp – ERROR_INTERNET_CANNOT_CONNECT如何干净地closures连接

在请求的callback过程中,我得到了很多ERROR_INTERNET_CANNOT_CONNECT(12029代码)。 我以asynchronous模式(在服务器上)使用WinHttp。 在这种情况下,如何干净地closures连接。 你只是使用这样的东西(就像你通常closures连接?): ::WinHttpSetStatusCallback(handle, NULL, 0, 0); ::WinHttpCloseHandle(this->handle)); 我问这是因为我有一些奇怪的内存泄漏与winhttp dll相关联,在描述的情况发生(想要创build数百个可能被公司内部防火墙或目标服务器丢弃连接的并发连接)。 我已经看了msdn的WinHttpCloseHandle的文档… 以下是我如何处理callback状态: template <typename T> void WinHttp::AsyncRequest<T>::OnCallback(DWORD code, const void* info, DWORD length) { T* pT = static_cast<T*>(this); switch (code) { case WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE: case WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE: { HRESULT result = pT->OnWriteData(); if (FAILED(result)) { throw CommunicationException(::GetLastError()); } if (S_FALSE == result) { if (!::WinHttpReceiveResponse(handle, 0)) […]