⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sock_test.cpp

📁 基于Perl的HTTP协议GUI测试程序
💻 CPP
字号:
#include "sock.h"
#include "event_loop.h"

#include <stdio.h>

#define CRLF "\x00d\x00a"

void ConnectOk(CTcpSock* sock)
{
    printf("Sending request\n");
    sock->sendString("HEAD / HTTP/1.0" CRLF CRLF);
}

void SendOk(CTcpSock* sock)
{
    printf("Reading response\n");
    //sock->readLine((char *) sock->m_context, 4000);
    sock->recvBuf((char *) sock->m_context, 2000);
}

void ReadLineOk(CTcpSock* sock)
{
    char* line = (char*) sock->m_context;
    //printf("%s\n", line);
    if(!sock->m_eof)
    {
        sock->readLine(line, 4000);
    }
    else
    {
        printf("DONE reading\n");
    }
    
}

void RecvBufOk(CTcpSock* sock)
{
    printf("Received %d bytes\n", sock->m_read);
    fwrite(sock->m_context, 1, sock->m_read, stdout);
    printf("\n");
}

int main(int argc, char* argv[])
{
    char line_buf[4000];
    char line_buf2[4000];
    CTcpSock sock;
    CTcpSock sock2;
    SOCKADDR_IN addr;
    printf("starting\n");
    char* szAddr = "192.168.0.11";
    if(argc > 1)
        szAddr = argv[1];
    get_address(szAddr, 80, &addr);
    printf("the address is: %s\n", inet_ntoa(addr.sin_addr));

    sock.create();
    sock.m_context = line_buf;
    sock.m_cbConnectOk = ConnectOk;
    sock.m_cbSendOk = SendOk;
    sock.m_cbReadLineOk = ReadLineOk;
    sock.m_cbRecvBufOk = RecvBufOk;

    sock2.create();
    sock2.m_context = line_buf2;
    sock2.m_cbConnectOk = ConnectOk;
    sock2.m_cbSendOk = SendOk;
    sock2.m_cbReadLineOk = ReadLineOk;
    sock2.m_cbRecvBufOk = RecvBufOk;


    sock.connect(&addr);
    sock2.connect(&addr);

    CEventLoop evLoop;
    evLoop.addSock(&sock);
    evLoop.addSock(&sock2);

    evLoop.run();

    return 0;
}

⌨️ 快捷键说明

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