SCTP Programmer's Guide

int debug=0;
int main(argc, argv)
int argc;
char **argv;
{
int sock_fd, sz, len, msg_flags;
int idleTime = 2;
struct sockaddr_in sin[1], serv_addr;
struct sctp_event_subscribe event;
char buf[256];
struct sctp_sndrcvinfo sri;
if (argc < 3) {
printf ("\nUsage: <%s> <remote-ip> <port> \n\n", argv[0]);
return -1;
}
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons (atoi(argv[2]));
serv_addr.sin_addr.s_addr = inet_addr(argv[1]);
sock_fd = socket (AF_INET, SOCK_STREAM, IPPROTO_SCTP);
if (sock_fd == -1) {
printf ("\nUnable to create socket \n");
return -1;
}
if (connect (sock_fd, (struct sockaddr *) &serv_addr,
sizeof(serv_addr)) < 0) {
printf ("\nUnable to connect to remote server [%s] !! \n\n",
inet_ntoa(serv_addr.sin_addr));
return -1;
} else {
printf ("\nConnected to [%s]\n", inet_ntoa(serv_addr.sin_addr));
}
memset (&event, 0, sizeof(event));
if (setsockopt(sock_fd, IPPROTO_SCTP, SCTP_EVENTS,
&event, sizeof(event)) != 0) {
perror("setevent failed");
exit(1);
}
memset (buf, 0, sizeof(buf));
len = sizeof(serv_addr);
printf ("<S>: ");
while (fgets(buf, 256, stdin)) {
if (buf[0] != '[') {
if (!strncmp(buf, "exit", 4))
Sample Client Programs 81