Server Bind and Listen
if (___(___, (struct ___*) &___, sizeof(___)) ___)
DieWithSystemMessage(“bind() failed”);
if (___(___, ___) ___)
DieWithSystemMessage(“listen() failed”);
Server Socket
___ ___ = ___(argv[1]);
int ___;
if ((___ = ___ (___, ___, ___)) ___)
DieWithSystemMessage(“socket() failed”);
Server Struct
struct ___ ___;
memset(&___, 0, sizeof(___));
___.___ = ___;
___.___.___ = ___(___);
___.___ = ___(___);
Server Accept
for (;;) {
int ___ = ___(___, (struct ___ *) NULL, NULL);
if (___ < ___)
DieWithSystemMessage(“accept() failed”);
Server Recv
while ((___ = ___(___, ___, ___ - ___, ___)) ___) {
___[___] = ‘\0’;
fputs(___, stdout);
if (strstr(\_\_\_, "\r\n") \_\_\_ )
break;
}
if (\_\_\_ \_\_\_)
DieWithSystemMessage("recv() failed");Server Send & Close
snprintf(___, sizeof(___), “%s”, ___);
ssize_t ___ = ___(___, ___, strlen(___), 0);
if (___ ___)
DieWithSystemMessage(“send() failed”);
close(___);
Client Socket
___ ___ = ___(argv[2]);
int ___ = ___(___, ___, ___);
if (___ ___)
DieWithSystemMessage(“socket() failed”);
Client Struct
struct ___ ___;
memset(&___, 0, sizeof(___));
___.___ = ___;
Client Recv & Close
while ((___ = ___(___, ___, ___ - ___, ___)) ___) {
___[___] = ‘\0’;
fputs(___, stdout);
}
if (___ ___)
DieWithSystemMessage(“recv() failed”);
fputc('\n', stdout);
close(\_\_\_);
exit(0);Client rtnVal
int ___ = ___(___, ___, &___.___.___);
if (___ ___)
DieWithUserMessage(“inet_pton() failed”, “invalid address string”);
else if (___ ___)
DieWithSystemMessage(“inet_pton() failed”);
___.___ = ___(___);
Client Connect
if (___(___, (struct ___ *) &___, sizeof(___)) ___)
DieWithSystemMessage(“connect() failed”);
Client Send
size_t echoStringLen = strlen(echoString);
snprintf(___, sizeof(___), “%s\r\n”, echoString);
ssize_t ___ = ___(___, ___, strlen(___), 0);
if (___ < 0)
DieWithSystemMessage(“send() failed”);
Server Accept with Inet_ntop()
for (;;) {
struct ___ ___;
___ ___ = sizeof()
int ___ = accept(___(struct___*),&___,&___)
if(___ < 0)
inet_ntop(\_\_\_,&\_\_\_.\_\_\_,\_\_\_,sizeof(\_\_\_)), ntohs(\_\_\_.\_\_\_) }