Вы должны определить статику в файле cpp
.
Log.cpp
#include "Log.h"
#include <ostream>
string Log::theString; // <---- define static here
void Log::method(string arg){
theString = "hola";
cout << theString << endl;
}
Вы также должны удалить using namespace std;
из заголовка. Входите в привычку, пока можете. Это будет загрязнять глобальное пространство имен с помощью std
, где бы вы не включили заголовок.
Используйте метод sockaddr()
для IO :: Socket:
use strict;
use warnings;
use IO::Socket::INET;
my $socket = IO::Socket::INET->new(
PeerAddr => 'localhost:3306'
) or die "$!\n";
print inet_ntoa($socket->sockaddr()), "\n";
Пример вывода:
$ perl dummy.pl
127.0.0.1
РЕДАКТИРОВАТЬ: обратите внимание, что вы должны используйте sockaddr
на принятом сокете для клиента, а не на сокете прослушивания. В прослушивающем сокете вы увидите только те адреса, к которым он привязан, это может быть IN_ADDR_ANY (AKA 0.0.0.0).