草庐IT

c++ - 如何在接受C++中的连接之前获取客户端IP地址

我正在学习C++套接字编程...服务器程序绑定(bind)到套接字并开始监听连接请求...现在我如何列出监听请求的IP地址?我知道我可以在接受连接后获取IP地址,但可以说我不想接受来自特定IP地址的连接... 最佳答案 仅在Windows上,您可以使用WinSock2的WSAAccept()的条件回调功能函数在接受连接之前访问客户端信息,甚至在接受连接之前拒绝连接。 关于c++-如何在接受C++中的连接之前获取客户端IP地址,我们在StackOverflow上找到一个类似的问题:

c++ - 如何通过 C++ 中的升压套接字发送 ostream?

我在使用protobuf进行进程间通信时遇到了一些问题。Protobuf允许一组序列化格式:SerializeToArray(void*data,intsize):boolSerializeToCodedStream(google::protobuf::io::CodeOutputStream*output):boolSerializeToFileDescriptor(intfile_descriptor):boolSerializeToOstream(ostream*output)我的问题是,我不知道如何将它与我正在使用的boostasio套接字一起使用,因为我实现了它们来发送字符串

C++套接字编程: maximize throughput/bandwidth on localhost (I only get 3 Gbit/s instead of 23GBit/s)

我想创建一个C++服务器/客户端,以最大化本地主机上TCP套接字通信的吞吐量。作为准备,我使用了iperf找出我的i7MacBookPro上的最大带宽是多少。------------------------------------------------------------ServerlisteningonTCPport5001TCPwindowsize:256KByte(default)------------------------------------------------------------[4]local127.0.0.1port5001connectedwith

c++ - 用于编码和解码 websocket 帧的 C 或 C++ 库

我有自己的套接字实现,支持来自常规tcp客户端的连接。现在我想在我的服务器程序中添加websocket支持。在这种情况下,我将需要支持主要网络浏览器支持的握手和消息框架协议(protocol)。我能够处理握手部分,但被困在处理消息的框架和取消框架上。是否有任何现有的C或C++库可以处理websocket消息帧的编码和解码,并支持主要网络浏览器使用的主要websocket协议(protocol)?我发现的大多数当前实现(即libwebsocket、websocketpp等)都实现了它们自己的服务器和客户端库,这意味着我需要使用它们的套接字实现。我不想那样做,因为这需要我修改当前程序中的很

c++ - 发送和接收 int C++

如何向服务器发送4字节int并在服务器端将此缓冲区转换为int。客户端:voidsend_my_id(){intmy_id=1233;chardata_to_send[4];//howtoconvertmy_idtodata_send?send(sock,(constchar*)data_to_send,4,0);}服务器端:voidreceive_id(){intclient_id;charbuffer[4];recv(client_sock,buffer,4,0);//howtoconverbuffertoclient_id?itmustbe1233;}

c++ - 套接字发送接收函数

我使用以下代码行创建了一个套接字。现在我像这样更改套接字的值m_Socket++;即使现在sendrecvsocket函数也能成功,不会抛出SOCKET_ERROR。我预计它一定会抛出错误。我是不是做错了什么。structsockaddr_inServerSock;//套接字地址结构绑定(bind)要监听的端口号char*localIP;SOCKETSocServer;//ToSetupthesockaddrstructureServerSock.sin_family=AF_INET;ServerSock.sin_addr.s_addr=INADDR_ANY;ServerSock.si

c++ - 通过 C 套接字发送结构

我正在构建一个UDP聊天应用程序。通过C套接字发送C结构并在另一端memset接收数据是否安全?struct中的所有数据都使用memset进行了空填充,因此我假设struct的大小始终不变。我可能会遇到什么问题?更有经验的程序员如何处理这个问题? 最佳答案 是的,它是安全的,但我们应该首先警告这一点。如果您在不同的平台之间传递它,您可能会遇到问题然后您需要担心字节顺序/打包(可能还有许多其他问题)。话虽这么说,如果您不知道如何执行这些操作,那么假设您将按照发送它的相同顺序可靠地接收struct是不安全的。

c++ - 读取 QTcpSocket

我有一个与UNIXC++套接字的套接字连接,连接后,我有一个逐字节读取的循环,直到我获得完整的消息。我知道我将要接收的消息的前两个字节及其长度(15个字节)。所以函数看起来像:boolmastControl::findPacket(intsockfd,st_messageMastToPc*messageReceived,bool*connected){intn=0;boolmessageFound=false;char*buffer=(char*)messageReceived;unsignedintpos=0;while(((n=read(sockfd,&(buffer[pos]),

c++ - 将套接字路由到另一个端口

我有一个系统,我想监听一个套接字并等待客户端连接,然后将连接传递给另一个应用程序,我将在连接建立后立即启动该应用程序。我无法控制这个其他应用程序,只能设置它将监听的端口,但我想为每个新客户端设置一个进程。这就是我想要做的:我一直在寻找解决方案,但我想我没有正确的术语,但我设法在RichardStevens的“Unix网络编程”中找到了一些关于AF_ROUTE系列的内容可以与SOCK_RAW组合以将连接路由到另一个IP和端口的套接字。但是关于howtousethisflag的文档太少了并且似乎需要super用户权限(我想避免)。也许有更简单的解决方案,但我可能使用了错误的术语。清楚我想做

c++ - boost asio http服务器,如何停止?

我正在使用boost附带的示例http服务器之一(在doc/html/boost_asio/example/cpp03/http/server,或者在http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/examples/cpp03_examples.html#boost_asio.examples.cpp03_examples.http_server)。该示例打开一个接受器套接字并进行监听,将请求剥离到请求对象。服务器还有一个boostasiosignal_set,它注册信号处理程序并在收到SIGINT或SIGTERM时取消