草庐IT

my_socket

全部标签

c++ - 模仿 socket.h (C++) 的 OpenSSL 包装器

我正在处理这个大型自定义网络应用程序。它是用C++(linux)编写的,使用sockets.h---代码涉及传递文件(套接字)描述符、使用结构、设置套接字选项等。与其全部重写,不如想知道是否有任何可用的功能原型(prototype)与socket.h相同,但使用openSSL来保护通信channel。显然,仍然需要设置诸如key、验证位置等内容,但最好避免将所有内容更改为BIO或其他...谢谢!! 最佳答案 SSL_set_fd和SSL_get_fd让您设置/检索文件描述符并避免BIO。您仍然需要使用SSL_read/SSL_wri

c++ - boost socket读写函数线程安全吗?

我使用boost.asio来实现网络通信。在主线程中,我创建了TCP套接字并连接了远程机器。然后启动一个工作线程从套接字中读取数据。在主线程中,使用同一个套接字发送数据。这意味着同一个套接字在两个没有互斥锁的线程中使用。代码贴在下面。socket的读写功能有没有问题?boost::asio::io_servicem_io_service;boost::asio::ip::tcp::socketm_socket(m_io_service);boost::thread*m_pReceiveThread;voidReceive();voidConnect(){boost::asio::ip:

c++ - 跟进: Boost serialized custom C++ object passed over ZeroMQ pull socket

这是我之前在Boost:De-serializingacustomC++objectpassedoverZeroMQpullsocket的另一个线程中提出的后续问题。该线程中的问题已根据提供的答案得到解决。现在我在运行时遇到了另一个问题。请看下面的说明。我是C++领域的新手,所以如果您告诉我除了我在问题陈述中描述的内容之外,对所提供代码的任何部分有任何改进的必要性,我将不胜感激。描述:我有一个名为GenericMessage的C++类,它只包含一个id和数据作为其成员(参见下面的代码片段2-GenericMessage.hxx)。我的目的是序列化此类的实例并通过实现推送模式的ZeroM

c++ - Socket connect() 总是成功(TCP over ActiveSync)

我在ActiveSync上使用TCP/IP从WindowsCE设备连接到WindowsXP桌面。WinSockconnect()函数总是成功,无论桌面服务器应用程序是否实际运行。下面的简化代码演示了这个问题:#include"stdafx.h"#includeint_tmain(intargc,_TCHAR*argv[]){constintPort=5555;constchar*HostName="ppp_peer";WSADATAwsadata;if(WSAStartup(MAKEWORD(1,1),&wsadata)!=0)return1;structhostent*hp=geth

javascript - 在 C++ 服务器中处理使用 WebRTC (Socket.IO) 捕获的视频数据

我正在尝试找出执行以下操作的最佳方法:(A)使用网络浏览器(例如Chrome/Chromium)在客户端PC中捕获视频帧。(B)将它们发送到运行C++处理算法(例如,基于OpenCV的突变松鼠检测例程)的服务器计算机。(C)将处理结果发送回客户端PC中的浏览器以显示它们(实时会很好,但总体延迟当然是预期的)。到目前为止,我发现WebRTC非常适合做(A)(getUserMedia()等),理论上,(B).当涉及到将数据发送到C++服务器时,我的问题就出现了。我一直在寻找WebRTC的基础知识(包括P2P通信示例和nativeC++API文档),但我仍然不知道如何开始构建我的服务器并从浏

c++ - 为什么需要 sleep(1) 来让 socket 耗尽?

我下载了一个简单的静态网络服务器的源代码http://www.ibm.com/developerworks/systems/library/es-nweb/sidefile1.html但是,我对第130行感到困惑:#ifdefLINUXsleep(1);/*toallowsockettodrain*/#endifexit(1);既然套接字没有关闭,是否意味着我需要等待客户端关闭套接字? 最佳答案 无论作者的意图如何,它都是不必要的和不正确的。exit()就足够了。当在TCP套接字上调用close()或调用exit()终止进程时,除非

c++ - 非常基本的 : Why won't my makefile work with common suffix

objects=hello.oname.oprinting.oexename=himake$(exename):$(objects)$(CC)-o$(exename)$(objects)%.o:%.cpp$(CC)-c$^我正在尝试使用通用后缀,因此我不需要先将3个文件编译成.o。这应该使用%通配符完成所有这三个操作。当我做很长的路时它工作正常但不是这个。运行上面的makefile会出现以下错误:[alex@pccDir]$makecc-ohimakehello.oname.oprinting.ohello.o:Infunction`__static_initialization_an

C++ UDP Socket 端口多路复用

如何在C++中创建客户端UDP套接字,以便它可以监听另一个应用程序正在监听的端口?换句话说,我如何在C++中应用端口多路复用? 最佳答案 Iwanttolistenononlyoneport你可以用嗅探器做到这一点。忽略来自不同端口的数据包即可。Imightneedtostopitfromsendingoutsomeparticularpackets,becausemyprogramwillsenditinsteadoftheoriginalapplication好吧,我建议你放弃嗅探器,使用MITM技术。您需要依靠PREROUTI

ios - swift - 我可以连接到 socket.io 服务器,但我无法发出事件

我是socket.io的初学者现在我可以连接到套接字服务器和服务器记录我的连接但我无法向服务器发送事件这是我的代码:letsocket=SocketIOClient(socketURL:URL(string:"http://xxxxxxx:3000")!)socket.connect()letusername="yay"socket.emit("add",username) 最佳答案 终于解决了这个问题:socket.on("connect"){data,ackinprint("socketconnected")socket.emi

iphone - iOS 开发 : How can I run my iPhone 4. iPhone 3.2 模拟器上的 2 个应用程序?

我正在深入研究iOS开发,我正在构建一个支持iOS3.2到4.2版本的简单应用程序。我已经在4.2模拟器上的最新版本的Xcode中很好地测试了它,但我还想模拟它在iOS3.2设备上运行。在阅读了一些关于此的教程之后,我设法下载并安装了旧版本的xcode以及旧的3.2SDK,但是当我在旧版本的Xcode中构建我的项目时,由于所有iOS4.2,我遇到了很多错误旧版本的Xcode不支持的功能。我正在弱链接所有4.2框架,但我仍然遇到错误。我怎样才能让我的4.2应用程序在这个旧版本的Xcode中成功构建并让它在3.2iPhone模拟器中运行?非常感谢您的智慧! 最佳