临时文件

#include <winsock2.h>
#include <stdio.h>
#include <stddef.h>

#define QUEUE_LEN 100
int main()
{
    WSADATA wsaData;
    WORD sockVersion=MAKEWORD(2,2);
    int local_port;
    SOCKET localtcpsocket;
    struct sockaddr_in mysock_addr;
    if(WSAStartup(sockVersion, &wsaData)!=0)
    {
        return -1;
    }

    printf("......Input local listen port!......\n");
    scanf("%d", &local_port);
    printf("......server listen......\n");
    localtcpsocket = socket(AF_INET, SOCK_STREAM, 0);
    if (INVALID_SOCKET == localtcpsocket)
    {
        printf("......invalid socket......\n");
        return -1;
    }
    mysock_addr.sin_family = AF_INET;
    mysock_addr.sin_port = htons(local_port);
    mysock_addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);

    if (SOCKET_ERROR == bind(localtcpsocket, (const struct sockaddr_in *)&mysock_addr, sizeof(mysock_addr)))
    {
        printf("bind error\n");
        return -1;
    }

    if (listen(localtcpsocket, QUEUE_LEN) < 0)
    {
        printf("listen error\n");
        return -1;
    }


    while (1)
    {
        char buffer[10240];
        SOCKET recvsoc;
        struct sockaddr_in peerTcp;
        int len;
        recvsoc = accept(localtcpsocket,(const struct sockaddr_in *)&peerTcp, &len);
        if (recvsoc <= 0)
        {
            printf("accept error\n");
            continue;
        }
        printf("peer %s is connect to you\n", inet_ntoa(peerTcp.sin_addr));
        if ( recv(recvsoc, buffer, sizeof(buffer), 0) <= 0)
        {
            printf("recv error, maybe time exceed!\n");
        }
        else
        {
            printf("%s\n", buffer);
        }
    }
    WSACleanup();
    return 0;
}



#include <WinSock.h>
#include <stdio.h>
#include <stddef.h>
#pragma comment(lib,"ws2_32.lib")

#define QUEUE_LEN 100

void Response2Client(SOCKET socket, struct sockaddr_in peerTcp);

int main()
{
    WSADATA wsaData;
    WORD sockVersion=MAKEWORD(2,2);
    int local_port;
    SOCKET localtcpsocket;
    struct sockaddr_in mysock_addr;
    if(WSAStartup(sockVersion,&wsaData)!=0)
    {
        return -1;
    }

    printf("......Input local listen port!......\n");
    scanf("%d",&local_port);
    printf("......server listen......\n");
    localtcpsocket = socket(AF_INET,SOCK_STREAM,0);
    if (INVALID_SOCKET == localtcpsocket)
    {
            printf("......invalid socket......\n");
            return -1;
    }
    mysock_addr.sin_family = AF_INET;
    mysock_addr.sin_port = htons(local_port);
    mysock_addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);

    if ( SOCKET_ERROR == bind(localtcpsocket,(const struct sockaddr_in *)&mysock_addr,sizeof(mysock_addr)) )
    {
         printf("bind error\n");
        return -1;

    }

    if (listen(localtcpsocket,QUEUE_LEN) < 0)
    {
        printf("listen error\n");
        return -1;
    }


    while (1)
    {
        char buffer[10240];
        SOCKET recvsoc;
        struct sockaddr_in peerTcp;
        int len;
        recvsoc = accept(localtcpsocket,(const struct sockaddr_in *)&peerTcp,&len);
        if (recvsoc <= 0)
        {
            printf("accept error\n");
            continue;
        }

        if ( strcmp(inet_ntoa(peerTcp.sin_addr),"0.0.0.0"))
        {
            printf("peer %s is connect to you\n",inet_ntoa(peerTcp.sin_addr));
            if ( recv(recvsoc,buffer,sizeof(buffer),0) <= 0)
            {
                 printf("recv error,maybe time exceed!\n");
            }
            else
            {
                fprintf(stdout,"%s\n",buffer);
                Response2Client(recvsoc, peerTcp);
            }
        }
    }
    WSACleanup();
    return 0;
}

void Response2Client(SOCKET socket, struct sockaddr_in peerTcp)
{
    char res[1024] = "HTTP/1.1 200 OK\r\nContent-Length:35\r\n\r\n<html><body>Hello wyj!<input type=\"submit\" value=\"send me inf\" size=\"20\"></body></html>";
    send(socket,res,sizeof(res),0);
}



void getsize(char a[100])
{
printf("%d\n",sizeof(a));
return;

}


int main_test()
{
    char ppp[]={0,0,0,0,0,0,0,0,0,0,0,0,3,'w','w','w',5,'b','a','i','d','u',3,'c','o','m',0,0,};
    char *p = (char *)ppp + 12;
    int temp = 0;
    int first = 81;
    while(*p != 0)
    {
        int i = 0;
        if (!first)
        {
            printf(".");
        }
        temp = (int)*p;
        p++;
        for (;i<temp;i++)
        {
            printf("%c",p[i]);
        }
        p += temp;
        first = 0;
    }

    return 0;
}



你可能感兴趣的:(C++,c,socket,C#)