b*t
2 楼
试了很多次了,都不行
别的都好好的
别的都好好的
b*i
3 楼
有一个类,TCPServer{
public: TCPServer(asio::io_service& io_service, const tcp::endpoint& listen_
endpoint){...}
private:
asio::io_service& io_service_;
asio::ip::tcp::acceptor acceptor_;
TCPListener listener_;
};
这个类是boost的一个例子。我的代码需要三个变量,放在TCPServerManager里面,为
简单起见,我定义三个static变量。
TCPServerManager{
static TCPServer eth0, eth1, wifi;
static void start(){...}
};
那么,在start里面,我根据boost的例子,用TCPServer s(io_service, listen_
endpoint);定义了一个变量。怎么把这个变量变成我的eth0,eth1, wifi呢?
在定义eth0的那个地方,需要的listen_endpoint还没有好,就是说,需要后续的代码
(start)来完成listen_endpoint的赋值。
我是否需要eth0=std::move(s); 那样,我自己写TCPServer的move assignment怎么写
呢?虽然一共三个变量,还是需要请教懂行的。
另外,我是否可以使用TCPServer *eth0=new TCPServer(.) 这样可以在start函数里
面执行。算是另外一种方法吧。
public: TCPServer(asio::io_service& io_service, const tcp::endpoint& listen_
endpoint){...}
private:
asio::io_service& io_service_;
asio::ip::tcp::acceptor acceptor_;
TCPListener listener_;
};
这个类是boost的一个例子。我的代码需要三个变量,放在TCPServerManager里面,为
简单起见,我定义三个static变量。
TCPServerManager{
static TCPServer eth0, eth1, wifi;
static void start(){...}
};
那么,在start里面,我根据boost的例子,用TCPServer s(io_service, listen_
endpoint);定义了一个变量。怎么把这个变量变成我的eth0,eth1, wifi呢?
在定义eth0的那个地方,需要的listen_endpoint还没有好,就是说,需要后续的代码
(start)来完成listen_endpoint的赋值。
我是否需要eth0=std::move(s); 那样,我自己写TCPServer的move assignment怎么写
呢?虽然一共三个变量,还是需要请教懂行的。
另外,我是否可以使用TCPServer *eth0=new TCPServer(.) 这样可以在start函数里
面执行。算是另外一种方法吧。
l*s
5 楼
你这不能static吧
s*l
6 楼
那如果刷的不多的话,虽然Fidelity都是2%,也不见得省出50的年费来,毕竟True
Earning加油是3%
Earning加油是3%
k*e
7 楼
文科生?
listen_
【在 b***i 的大作中提到】
: 有一个类,TCPServer{
: public: TCPServer(asio::io_service& io_service, const tcp::endpoint& listen_
: endpoint){...}
: private:
: asio::io_service& io_service_;
: asio::ip::tcp::acceptor acceptor_;
: TCPListener listener_;
: };
: 这个类是boost的一个例子。我的代码需要三个变量,放在TCPServerManager里面,为
: 简单起见,我定义三个static变量。
listen_
【在 b***i 的大作中提到】
: 有一个类,TCPServer{
: public: TCPServer(asio::io_service& io_service, const tcp::endpoint& listen_
: endpoint){...}
: private:
: asio::io_service& io_service_;
: asio::ip::tcp::acceptor acceptor_;
: TCPListener listener_;
: };
: 这个类是boost的一个例子。我的代码需要三个变量,放在TCPServerManager里面,为
: 简单起见,我定义三个static变量。
B*g
9 楼
能不能从heap move到static我不确定, 但你这个s不是rvalue, compiler不会让move吧
? 你的三个变量不能直接初始化吗? 为什么一定要从另一个变量copy/move?
又看了下, 应该可以写move constructor和move assignment operator
listen_
【在 b***i 的大作中提到】
: 有一个类,TCPServer{
: public: TCPServer(asio::io_service& io_service, const tcp::endpoint& listen_
: endpoint){...}
: private:
: asio::io_service& io_service_;
: asio::ip::tcp::acceptor acceptor_;
: TCPListener listener_;
: };
: 这个类是boost的一个例子。我的代码需要三个变量,放在TCPServerManager里面,为
: 简单起见,我定义三个static变量。
? 你的三个变量不能直接初始化吗? 为什么一定要从另一个变量copy/move?
又看了下, 应该可以写move constructor和move assignment operator
listen_
【在 b***i 的大作中提到】
: 有一个类,TCPServer{
: public: TCPServer(asio::io_service& io_service, const tcp::endpoint& listen_
: endpoint){...}
: private:
: asio::io_service& io_service_;
: asio::ip::tcp::acceptor acceptor_;
: TCPListener listener_;
: };
: 这个类是boost的一个例子。我的代码需要三个变量,放在TCPServerManager里面,为
: 简单起见,我定义三个static变量。
b*i
11 楼
程序运行中途,要修改某个IP地址,或者port
比如,系统有三个以太网:eth0, eth1, wifi, 只有eth0的地址和端口是固定的,其
他的由应用程序通过和客户的交流来设定。如果客户要改,这个变量就要重新赋值。
更改就发生在handle_read里面,例子:如果包的内容是: set eth1 ip=...... port =
....
那么这里就呼叫对应的函数来关掉相应的eth1的io_service,然后用新的IP地址和端口
重新生成新的。
【在 B*******g 的大作中提到】
: 能不能从heap move到static我不确定, 但你这个s不是rvalue, compiler不会让move吧
: ? 你的三个变量不能直接初始化吗? 为什么一定要从另一个变量copy/move?
: 又看了下, 应该可以写move constructor和move assignment operator
:
: listen_
比如,系统有三个以太网:eth0, eth1, wifi, 只有eth0的地址和端口是固定的,其
他的由应用程序通过和客户的交流来设定。如果客户要改,这个变量就要重新赋值。
更改就发生在handle_read里面,例子:如果包的内容是: set eth1 ip=...... port =
....
那么这里就呼叫对应的函数来关掉相应的eth1的io_service,然后用新的IP地址和端口
重新生成新的。
【在 B*******g 的大作中提到】
: 能不能从heap move到static我不确定, 但你这个s不是rvalue, compiler不会让move吧
: ? 你的三个变量不能直接初始化吗? 为什么一定要从另一个变量copy/move?
: 又看了下, 应该可以写move constructor和move assignment operator
:
: listen_
n*n
13 楼
1) Can we use TCPServer* eth0 instead of TCPServer eth0? then maybe we can
create and record heap memory object in start() after "listen_endpoint". I
don't see the need of keeping a TCPServer object inside.
2) Why should we use static member TCPServer eth0 here? Are there many
TCPServerManager objects?
create and record heap memory object in start() after "listen_endpoint". I
don't see the need of keeping a TCPServer object inside.
2) Why should we use static member TCPServer eth0 here? Are there many
TCPServerManager objects?
s*l
14 楼
多长时间才比较有把握?
l*s
15 楼
because there is no pointer in java. : -)
【在 n**n 的大作中提到】
: 1) Can we use TCPServer* eth0 instead of TCPServer eth0? then maybe we can
: create and record heap memory object in start() after "listen_endpoint". I
: don't see the need of keeping a TCPServer object inside.
: 2) Why should we use static member TCPServer eth0 here? Are there many
: TCPServerManager objects?
【在 n**n 的大作中提到】
: 1) Can we use TCPServer* eth0 instead of TCPServer eth0? then maybe we can
: create and record heap memory object in start() after "listen_endpoint". I
: don't see the need of keeping a TCPServer object inside.
: 2) Why should we use static member TCPServer eth0 here? Are there many
: TCPServerManager objects?
e*4
16 楼
for amex you'd better wait for 1 year from my point of view.
b*i
18 楼
用指针可以,我现在就这么用的。不是为了新潮吗?
为什么是静态变量,是因为这个系统一共一个TCPServerManager,负责管理所有的
server变量。所以,是个singleton。当然,我可以用singleton那一套,不过直接
static也行吧?不行就不是静态变量的,但是通过getInstance()来访问。
【在 n**n 的大作中提到】
: 1) Can we use TCPServer* eth0 instead of TCPServer eth0? then maybe we can
: create and record heap memory object in start() after "listen_endpoint". I
: don't see the need of keeping a TCPServer object inside.
: 2) Why should we use static member TCPServer eth0 here? Are there many
: TCPServerManager objects?
为什么是静态变量,是因为这个系统一共一个TCPServerManager,负责管理所有的
server变量。所以,是个singleton。当然,我可以用singleton那一套,不过直接
static也行吧?不行就不是静态变量的,但是通过getInstance()来访问。
【在 n**n 的大作中提到】
: 1) Can we use TCPServer* eth0 instead of TCPServer eth0? then maybe we can
: create and record heap memory object in start() after "listen_endpoint". I
: don't see the need of keeping a TCPServer object inside.
: 2) Why should we use static member TCPServer eth0 here? Are there many
: TCPServerManager objects?
n*n
19 楼
I don't quite understand the relation between singleton manager object
and static member variables.
singleton of manager class is usually implemented using a getServer() method
, while static member variable is more like a global variable under a class
name.
btw, I never see such 新潮.
[在 bihai (学得不好) 的大作中提到:]
:有一个类,TCPServer{
:public: TCPServer(asio::io_service& io_service, const tcp::endpoint&
listen_endpoint){...}
:...........
and static member variables.
singleton of manager class is usually implemented using a getServer() method
, while static member variable is more like a global variable under a class
name.
btw, I never see such 新潮.
[在 bihai (学得不好) 的大作中提到:]
:有一个类,TCPServer{
:public: TCPServer(asio::io_service& io_service, const tcp::endpoint&
listen_endpoint){...}
:...........
b*i
20 楼
前面有人说了heap到static不可行。这个可能是个问题。而我开始问的其实是从stack
到static。估计也不行。
所以,取决于io_service的实现,如果所有内部的变量都在heap上,可以简单的转移,
自己写个move constructor。如果都在stack上,就不可以吧。
用singleton我想就把变量放在heap上了。不过,还是不能从stack到heap。
method
class
【在 n**n 的大作中提到】
: I don't quite understand the relation between singleton manager object
: and static member variables.
: singleton of manager class is usually implemented using a getServer() method
: , while static member variable is more like a global variable under a class
: name.
: btw, I never see such 新潮.
: [在 bihai (学得不好) 的大作中提到:]
: :有一个类,TCPServer{
: :public: TCPServer(asio::io_service& io_service, const tcp::endpoint&
: listen_endpoint){...}
到static。估计也不行。
所以,取决于io_service的实现,如果所有内部的变量都在heap上,可以简单的转移,
自己写个move constructor。如果都在stack上,就不可以吧。
用singleton我想就把变量放在heap上了。不过,还是不能从stack到heap。
method
class
【在 n**n 的大作中提到】
: I don't quite understand the relation between singleton manager object
: and static member variables.
: singleton of manager class is usually implemented using a getServer() method
: , while static member variable is more like a global variable under a class
: name.
: btw, I never see such 新潮.
: [在 bihai (学得不好) 的大作中提到:]
: :有一个类,TCPServer{
: :public: TCPServer(asio::io_service& io_service, const tcp::endpoint&
: listen_endpoint){...}
相关阅读
唉,看来scala已经废了发现ramdisk不错,多个进程通信用文件就可以了,简单业余人士来问个程序结构问题给Java/Spring说几句好话AWS真的好用吗?who said ja beat java in frontendzhaoce语录: dom是什么?这次node把python也给干了nodejs估计快挂了我相信dart有戏12306 的一点思路从12306来看,国内IT水平不高go真是好东西M#终于要出来了单线程多线程说到底说得越多,越暴露出你们有些人不懂软件工程的本质我为啥不喜欢12306的话题backend language of choice关于春运的票,你们都错了对于JAVA有一点无论谁都同意。