sctpclient02.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. char byemsg[10];
  10. if(argc < 2)
  11. err_quit("Missing host argument - use '%s host [echo]'\n",
  12. argv[0]);
  13. if(argc > 2) {
  14. printf("Echoing messages to all streams\n");
  15. echo_to_all = 1;
  16. }
  17. sock_fd = Socket(AF_INET, SOCK_SEQPACKET, IPPROTO_SCTP);
  18. bzero(&servaddr, sizeof(servaddr));
  19. servaddr.sin_family = AF_INET;
  20. servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  21. servaddr.sin_port = htons(SERV_PORT);
  22. Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
  23. bzero(&evnts, sizeof(evnts));
  24. evnts.sctp_data_io_event = 1;
  25. Setsockopt(sock_fd,IPPROTO_SCTP, SCTP_EVENTS,
  26. &evnts, sizeof(evnts));
  27. /* include modified_client02 */
  28. if(echo_to_all == 0)
  29. sctpstr_cli(stdin,sock_fd,(SA *)&servaddr,sizeof(servaddr));
  30. else
  31. sctpstr_cli_echoall(stdin,sock_fd,(SA *)&servaddr,sizeof(servaddr));
  32. strcpy(byemsg,"goodbye");
  33. Sctp_sendmsg(sock_fd, byemsg, strlen(byemsg),
  34. (SA *)&servaddr, sizeof(servaddr),
  35. 0,
  36. MSG_ABORT,
  37. 0, 0, 0);
  38. Close(sock_fd);
  39. /* end modified_client02 */
  40. return(0);
  41. }