in reply to Trouble with getprotobyname

getprotobyname() is not made for services, it's made for protocols like tcp and udp. You want:
$server_port = getservbyname('talk', 'udp');