kc9udx Well, BSD talk is a strange beast which works a bit non-intuitively (not like a std. client-server program).
If you read protocols/talkd.h:
/*
* This describes the protocol used by the talk server and clients.
*
* The talk server acts a repository of invitations, responding to
* requests by clients wishing to rendezvous for the purpose of
* holding a conversation. In normal operation, a client, the caller,
* initiates a rendezvous by sending a CTL_MSG to the server of
* type LOOK_UP. This causes the server to search its invitation
* tables to check if an invitation currently exists for the caller
* (to speak to the callee specified in the message). If the lookup
* fails, the caller then sends an ANNOUNCE message causing the server
* to broadcast an announcement on the callee's login ports requesting
* contact. When the callee responds, the local server uses the
* recorded invitation to respond with the appropriate rendezvous
* address and the caller and callee client programs establish a
* stream connection through which the conversation takes place.
*/
So,
You have to set mesg y
on both terminals, obviously.
Both talkers need to have the ntalk
service uncommented in their /etc/inetd.conf
On NetBSD, the IP address corresponding to your own hostname has to be a
non-local one (ie. not 127.0.0.1
, or the like.).
(And, I see that FreeBSD's already fixed this "issue". Nice! Must file a PR...)
As talkers ultimately connect directly to each other using (high) ephemeral port
nos. for their server ports (these are randomly assigned by the kernel like they're
for regular TCP/IP clients), both ends may have to unblock a lot of ports on their
firewalls if connecting over the wider Internet.