|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Timur V. Irmatov 2:5020/400 10 Sep 2001 13:12:09 To : All Subject : unix domain UDP -------------------------------------------------------------------------------- Здравствуйте, All! Вот, написал простого сервера и клиента для передачи UDP датаграмм через unix-domain sockets. Клиент посылает серверу строку, прочитанную из стандартного ввода и выводит ответ от сервера. Сервер должен просто перевести полученную строку в uppercase и передать ее обратно. Hе получается ответ: Invalid argument Клиент: #!/usr/bin/perl -w use strict; use Socket; my($path) = "/tmp/st"; socket(SOCKET, PF_UNIX, SOCK_DGRAM, 0) or die "socket(): $!\n"; while (1) { send SOCKET, "test message\n", 0, sockaddr_un($path) or die "send failed: $!\n"; my($msg); my($from) = recv SOCKET, $msg, 0, 0 or die "recv failed: $!\n"; print $msg; } Сервер: #!/usr/bin/perl -w #require 5.002; use strict; use Socket; my($path) = "/tmp/st"; unlink $path; socket(SOCKET, PF_UNIX, SOCK_DGRAM, 0) or die "socket(): $!\n"; bind(SOCKET, sockaddr_un($path)) or die "bind(): $!\n"; while (1) { my($msg); my($from) = recv SOCKET, $msg, 128, 0 or die "recv failed: $!\n"; print "received: $msg\n"; $msg = "\U$msg\E"; send SOCKET, $msg, 0, $from or die "send failed: $!\n"; } И вот send в сервере не проходит :( В чем грабли ? -- Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/64887bffd779.html, оценка из 5, голосов 10
|