Perl Any Event::Ping 코드 분석
다음과 같이 모듈 코드를 연구했습니다.
sub tcp_ping_syn {
my $host = shift;
my $port = shift;
my $timeout = shift || 5;
if ((++$PingQueue{$host}{$port}{Requests}) > 1) {
# Ping already underway...
return;
}
my $cv = AnyEvent->condvar;
my $startTime;
my $endTime;
$PingQueue{$host}{$port}{CondVar} = $cv;
tcp_connect $host, $port, sub {
$endTime = time;
my ($fh) = @_;
$cv->send(( $fh ? (($endTime - $startTime) * 1000) : undef ));
},
sub {
$startTime = time;
$timeout;
};
return undef;
}
니 사이즈.되돌아오는 값이 아예 없다.그럼 얘는 뭐하는거야...==#순간 놀라 멍해졌다.
앞에 니트 깔개가 있는데 어쩔 수 없으니 계속 괴롭혀야 한다.보아하니 ACK만 되돌아오는 값이 있습니다.구체적으로 다음과 같다.
sub tcp_ping_ack {
my $host = shift;
my $port = shift;
if ($PingQueue{$host}{$port}{Requests} < 1) {
# No outstanding requests...
return undef;
}
my $latency = $PingQueue{$host}{$port}{CondVar}->recv;
if ((--$PingQueue{$host}{$port}{Requests}) < 1) {
# Responded to last request.
$PingQueue{$host}{$port}{CondVar} = undef;
}
return $latency;
}
근데 왜 써? 아직 안 나왔어.PY가 뭐라고 하는지 봐..라푸타 73이 코로:핑...SOCKET로 바꿔야 될 것 같습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.