sctpclient01.c 934 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include "unp.h"
  2. int
  3. main(int argc, char **argv)
  4. {
  5. int sock_fd;
  6. struct sockaddr_in servaddr;
  7. struct sctp_event_subscribe evnts;
  8. int echo_to_all=0;
  9. if(argc < 2)
  10. err_quit("Missing host argument - use '%s host [echo]'\n",
  11. argv[0]);
  12. if(argc > 2) {
  13. printf("Echoing messages to all streams\n");
  14. echo_to_all = 1;
  15. }
  16. sock_fd = Socket(AF_INET, SOCK_SEQPACKET, IPPROTO_SCTP);
  17. bzero(&servaddr, sizeof(servaddr));
  18. servaddr.sin_family = AF_INET;
  19. servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  20. servaddr.sin_port = htons(SERV_PORT);
  21. Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
  22. bzero(&evnts, sizeof(evnts));
  23. evnts.sctp_data_io_event = 1;
  24. Setsockopt(sock_fd,IPPROTO_SCTP, SCTP_EVENTS,
  25. &evnts, sizeof(evnts));
  26. if(echo_to_all == 0)
  27. sctpstr_cli(stdin,sock_fd,(SA *)&servaddr,sizeof(servaddr));
  28. else
  29. sctpstr_cli_echoall(stdin,sock_fd,(SA *)&servaddr,sizeof(servaddr));
  30. Close(sock_fd);
  31. return(0);
  32. }