草庐IT

socket_protect

全部标签

c++ - 指向具有 protected 继承的基类方法的指针

我有这个代码:classFoo{public:intx=4;int&operator[](size_tindex){returnx;}};classBar:protectedFoo{public:usingFoo::operator[];Bar(){x++;}};intmain(intagrc,char**argv){typedefint&(Bar::*getOp)(size_tindex);Barb;autobVal=b[4];getOpo=&Bar::operator[];autobVal2=(b.*o)(7);}但是,我不能编译它,因为errorC2247:'Foo'notacc

macOS跨进程通信: TCP Socket 创建实例

macOS跨进程通信:TCPSocket创建实例一:简介Socket是网络传输的抽象概念。一般我们常用的有TcpSocket和UDPScoket,和类Unix系统(包括Mac)独有的UnixDomainSocket(UDS)。TcpSocket能够跨电脑进行通信,即使是在同一个电脑下的多进程间通信,也会通过网卡进行数据传输,如果本地网卡的环回网络被禁用,则会导致通信失败。UnixDomainSocket,使用的是Liunx系统中万物皆文件的概念,和有名管道的操作差不多,都是在文本创建一个特有的文件,用来在两个进程间通信,两个经常分别写入和读取文件流中的数据,达到传输的目的。和TcpSocket

c++ - protected 变量命名和标准

我遇到了这个post引入可迭代队列的地方。OP在实现中使用了std::queue中名为c的protected变量。这完全有效吗?这个变量在所有实现中是否都具有相同的名称?换句话说,标准是否明确规定这个变量必须命名为c? 最佳答案 作为引用,列出了std::queue的确切定义here.所以在回答Inotherwords,doesthestandardstateclearlythatthisvariablemustbenamedc?是的,就是这种情况(其他容器适配器也类似);template>classqueue{protected:

c++ - boost asio 服务器在关闭 boost::socket 的调用中挂起

下面是我使用boostasio的套接字服务器示例代码。此服务器将在端口10001上等待任何客户端连接。当任何客户端连接时,它将启动线程以从该客户端读取并等待另一个客户端。但是,当我的客户端断开连接时,服务器套接字卡在my_socket->close()调用中会发生什么。如果新客户端尝试连接服务器崩溃。我正在使用g++(Ubuntu4.4.3-4ubuntu5.1)4.4.3#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;usingboost

ESP32做TCP客户端(client)与PC通信(socket)

ESP32做TCP客户端(client)与PC通信(socket)本文作为学习记录描述基于esp32已经连接WiFi上,实现esp32作为tcp客户端跟pc端进行数据收发。配置环境:ESP32开发板vscodeESP-IDFTCP工具获取链接1.什么是通信我们在聊微信或QQ时,我们发一条信息过去,对方收到信息,并返回一条。在这个过程中,发信息和收信息这个进程是怎么跟微信或QQ这个服务器进行通信的。在网络中进程之间互相通信,我们需要列出唯一的标记来表示目前的进程。实际上,TCP/IP协议很好的帮助我们解决这个问题,利用ip地址+协议+端口号标记网络进程。网络中的进程一般都使用socket接口进行

c++ - 基类中的公共(public) protected 数据成员?

我有一个基类和几个派生类。派生类使用一些公共(public)数据,我可以把这些公共(public)数据作为基类的保护成员吗?我知道protected成员有时会破坏封装,所以我想知道是否有什么好的方法。这是一个具体的例子:classBase{public:virtualvoidfoo()=0;voidprintData();protected:std::vectormData;}classDr1:publicBase{public:virtualvoidfoo();//couldchangemData}classDr2:publicBase{public:virtualvoidfoo()

c++ - 通过此指针调用 protected 基类方法并转换为派生类中的基类 (C++)

首先,我了解C++标准(ISO/IEC14882:2003):第11.5节第1段,但事实并非如此(但编译器显然不这么认为)。我尝试通过this指针在派生类方法中调用protected基类方法,静态转换为基类指针并在MSVC2008错误C2248:'A::f'中:无法访问类“A”中声明的protected成员。我必须在“奇怪的重复模板模式”的上下文中执行此操作,但我可以用更简单的代码重现此错误,如下所示:classB{protected:voidf(){}};classD:publicB{public:voidg(){f();//okthis->f();//okstatic_cast(t

c++ - 如何区分 sys/sockets.h 中的 bind() 和 std::bind?

我正在使用g++4.6.0编译一些在早期版本中成功编译的C++代码。if(bind(iControl,(structsockaddr*)&sa,sizeof(sa))==-1)throwruntime_error("bind");其中iControl是套接字,sa是structsockaddr_in。但是,在g++4.6中我得到以下错误:comms.cpp:93:66:error:nomatchfor‘operator==’in‘std::bind(_Functor&&,_ArgTypes&&...)[with_Functor=int&,_ArgTypes={sockaddr*,lon

c++ - 策略继承和不可访问的 protected 成员

似乎无法访问模板策略类中的protected成员,即使类层次结构看起来是正确的也是如此。例如,使用以下代码片段:#includeusingnamespacestd;templateclassA{protected:Tvalue;TgetValue(){returnvalue;}public:A(Tvalue){this->value=value;}};templateclassA>classB:protectedA{public:B():A(0){/*Fakevalue*/}voidprint(A&input){coutb;Aa(42);b.print(a);}编译器(在OSX上为cl

ios - 无法像下面这样自动将对象与 Xcode 中的 socket 连接

我在将对象与socket连接时遇到问题,所以当我打开助理编辑器时,自动找不到相关文件...为什么总是显示NSObject文件。 最佳答案 在自动突出显示的右侧,在其左侧有一个箭头,单击它解决了我的问题 关于ios-无法像下面这样自动将对象与Xcode中的socket连接,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/37437485/