|
|
1.1 root 1: .BU
2: Tenth Edition code to make a network call:
3: .CO
4: #include <ipc.h>
5:
6: \fI[...]\fP
7:
8: int fd;
9:
10: fd = ipcopen(ipcpath(hostname, "dk", "dist"), "heavy");
11: if (fd < 0) {
12: fprintf(stderr, "can't call %s\\n", hostname);
13: exit(1);
14: }
15: .CE
16: .BU
17: Berkeley code to make a network call:
18: .CO
19: #include <sys/types.h>
20: #include <sys/socket.h>
21: #include <netinet/in.h>
22: #include <netdb.h>
23:
24: \fI[...]\fP
25:
26: int fd;
27: struct hostent *h;
28: struct servent *s;
29: struct sockaddr_in sin;
30:
31: h = gethostbyname(hostname);
32: s = getservbyname("dist", "tcp");
33: fd = socket(AF_INET, SOCK_STREAM, 0);
34: sin.sin_family = AF_INET;
35: sin.sin_port = s->s_port;
36: memcpy(&sin.sin_addr, h->h_addr, h->h_length);
37: if (connect(fd, &sin, sizeof sin) < 0) {
38: fprintf(stderr, "can't call %s\\n", hostname);
39: exit(1);
40: }
41: .CE
42: .BU
43: Hostnames as seen from a Tenth Edition system:
44: .EX
45: dk!nj/astro/coma
46: tcp!pyxis.research.att.com
47: .EN
48: .BU
49: Hostnames as seen from a Berkeley system:
50: .EX
51: bowell.research.att.com
52: .EN
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.