#include #include #include #include #include #include char NR[]= "Hello, world!\n"; #define NRL sizeof(NR) int main(int argc, char *argv[]) { int s,r,i; struct sockaddr_iso dst; struct sockaddr_iso myname; socklen_t mynamelen; memset(&dst, 0, sizeof(dst)); dst.siso_len = sizeof(dst); /* nlen + 1 */ dst.siso_family = AF_ISO; dst.siso_tlen = 0; for (i=1; argv[i] && *argv[i] != ':'; i++) { unsigned foo; char *bar; foo = strtoul(argv[i], &bar, 16); dst.siso_data[i-1] = foo; } dst.siso_nlen = i-1; for (++i; argv[i]; i++) { unsigned foo; char *bar; foo = strtoul(argv[i], &bar, 16); dst.siso_data[i-2] = foo; } dst.siso_tlen = i - 2 - dst.siso_nlen; printf("nlen %d tlen %d\n", dst.siso_nlen, dst.siso_tlen); s = socket(PF_ISO, SOCK_DGRAM, ISOPROTO_CLTP); if (s < 0) { err(1, "socket"); } mynamelen = sizeof(myname); r = sendto(s, NR, NRL, 0, (struct sockaddr *)&dst, sizeof(dst)); if (r < 0) err(1, "sendto"); return 0; }