草庐IT

socket_handle

全部标签

java - 使用 JAVA 和 C++ 通过 Socket 发送结构

我有一个套接字,其中服务器使用JAVA,但客户端使用C++。Struct{floatlength;char[]name;}myStruct;如何将结构体转换为Server端发送的字节流,并能被Client端正确解析?任何示例代码都会有所帮助!(我听说XML是一个选项,但我不熟悉它)谢谢。 最佳答案 尝试使用Google的protocolbuffers,托管于ProtocolBuffers谷歌代码页面。小巧、高效、python、Java和C++支持。听起来很适合您的需求。开销比XML方法少,而且比自己动手更好-它比您想象的要难。

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

c++ - 命名管道 CreateFile() 返回 INVALID_HANDLE_VALUE,GetLastError() 返回 ERROR_PIPE_BUSY

我已经编写了一个类来处理命名管道连接,如果我创建了一个实例,关闭它,然后尝试创建另一个实例,调用CreateFile()返回INVALID_HANDLE_VALUE,并且GetLastError()返回ERROR_PIPE_BUSY。这里发生了什么?我该怎么做才能确保对Connect()的调用成功?PipeAsyncA,B;A.Connect("\\\\.\\pipe\\test",5000);A.Close();cout这是我对Connect()和Close()的实现BOOLPipeAsync::Connect(LPCSTRpszPipeName,DWORDdwTimeout){th

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

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

c++ - GUI 库 : how to correctly handle focus?

我正在为我的游戏开发项目制作一个非常小的游戏内GUI库,但我无法找到一种干净的处理焦点的方法。我的库支持嵌套的列表框和小部件层次结构,但我似乎无法找到一种方法来防止在处理小部件焦点时出现奇怪的行为。示例表单:|------------||Form[X]||------------||||[Button01]||||[List1][v]||||[Button02]||||------------|我的设计有一个Context对象,它存储一个Widget对象列表。Widget可以有任意数量的child。我可以递归地迭代Widget的所有子级/父级。我目前的焦点逻辑是:如果上下文很忙(拖动、

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++ UDP Socket 端口多路复用

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