以下代码可自行修改成 用于大量消耗服务器资源的工具.

主要SO_LINGER 选项.  作用于close时, 直接发送 rst;

例子:

#include "util.h"


int main(int argc, char**argv)
{
    if(argc != 3){
        puts("ip port");
        return 0;
    }

    int sockfd = socket(AF_INET,SOCK_STREAM,0);
    struct sockaddr_in sin;
    memset(&sin,0,sizeof(sin));
    sin.sin_family = AF_INET;
    sin.sin_port = htons(atoi(argv[2]));
    sin.sin_addr.s_addr = inet_addr(argv[1]);

    connect(sockfd,(SA*)&sin,sizeof(sin));
    struct linger li;
    li.l_onoff = 1;   //on
    li.l_linger = 0;  //rst on close;
    setsockopt(sockfd,SOL_SOCKET,SO_LINGER,&li,sizeof(li));
    close(sockfd);
    

    return 0;
}

dashoumeixi
15 声望1 粉丝

引用和评论

0 条评论