Perl에서 소켓 클라이언트를 만들려고합니다. 서버 측은 로컬 호스트에서 실행되는 C 프로그램입니다.Perl 소켓 해시 보내기
소켓을 통해 해시를 보내야합니다. 다음은 내가 사용하고있는 코드입니다.
sub applyGlobalConfig {
my ($globalConfig, $ignoreData) = @_;
my $socket = IO::Socket::INET->new(PeerAddr => $PEER_HOST,
PeerPort => $PEER_PORT,
Proto => "tcp",
Type => SOCK_STREAM)
or die "Couldn't connect to $PEER_HOST:$PEER_PORT : [email protected]\n";
my $reconfigResult;
print $socket "$113\n";
close($socket);
unless ($reconfigResult) {
return 0;
}
return ERR_NULL;
}
지금, 나는이 가지고있는 문제는 $globalConfig
는 해시 참조를 포함하며, 나는 소켓을 통해이를 보내려고합니다. 나는 알아낼 수 없다. 나는 덤블러에 대한 약간의 참고를 찾았지만 많이 이해할 수 없었다. 해시를 어떻게 보내나요?
수신자는 C로 작성되었지만 나중에 Perl로 검색 할 수 있도록 데이터를 저장할지 모릅니다. – ikegami
@ikegami Opps 나는 이것을 잊지 않았다. 이 경우에는 C에서 해시 구현 이후로 더욱 복잡해지기 쉽지 않습니다. 아마도 ** Storable :: fd_retrieve **를 고수 할 것입니다. 또는 ikegami가 말한 것처럼'key = value \ n'와 같은 텍스트로 보냅니다. – PSIAlt
, 서버는 C 프로그램입니다. argc와 argv를 담고있는 구조체로서 이것들을 받는다. 내가 생각한 한 가지 방법은 해시 값을 공백으로 구분 된 문자열로 변환하는 것이 었습니다. 그것을 보내기 전에. 하지만, 나는 펄 (perl) 측의 해시 값을 공간으로 구분 된 문자열로 변환하는 방법을 고민하고있다.어떤 도움을 호평합니다 –