#include #include #include #include #include #include #include #include #include int main(int argc, char **argv) { char *addr; int port; int sock; struct sockaddr_in saddr; const struct linger nolinger = { .l_onoff = 1, .l_linger = 0 }; if (argc < 4) { fprintf(stderr, "usage : %s \n" " This will connect to TCP port : and send string \n" " then immediately reset.\n", argv[0]); exit(1); } addr = argv[1]; port = atoi(argv[2]); sock = socket(AF_INET, SOCK_STREAM, 0); bzero(&saddr, sizeof(saddr)); saddr.sin_addr.s_addr = inet_addr(addr); saddr.sin_port = htons(port); saddr.sin_family = AF_INET; if (connect(sock, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) { perror("connect"); exit(1); } send(sock, argv[3], strlen(argv[3]), MSG_DONTWAIT | MSG_NOSIGNAL); setsockopt(sock, SOL_SOCKET, SO_LINGER, (struct linger *) &nolinger, sizeof(struct linger)); close(sock); exit(0); }