首页 > 代码库 > 网络通讯之套接字编程

网络通讯之套接字编程

#include<stdio.h>
#include<sys/socket.h>
#include<netinet/in.h>


static char out_ip[15] = "52.0.10.188";
static int out_port = 8888;


int main()
{
    char sSendBuf[2049], sRecvBuf[2049];
    int connfd = 0, iRet = 0, iSendLen = 0;
    struct sockaddr_in servaddr;
    FILE *fp;
    char sFileName[128];


    memset(sSendBuf, 0, sizeof(sSendBuf));
    memset(sRecvBuf, 0, sizeof(sRecvBuf));
    memset(sFileName, 0, sizeof(sFileName));

    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(out_port);
    inet_pton(AF_INET, out_ip, &servaddr.sin_addr);

    sprintf(sFileName, "/home/ap/dcclink/.shan/practice/test.log");

    fp = fopen(sFileName, "w+");
    if( fp == NULL )
    {
        printf("fopen err!\n");
        return -1;
    }


    connfd = socket(AF_INET, SOCK_STREAM, 0);
    if( connfd < 0 )
    {
        printf("socket err!");
        close(fp);
        return -1;
    }


    iRet = connect( connfd, (struct sockaddr_in *)&servaddr, sizeof(servaddr) );
    if( iRet < 0 )
    {
        printf("connect err!");
        close(fp);

        close(connfd);
        return -2;
    }


    sprintf(sSendBuf, "%01028s", "aaaaaaaaaa");
    iSendLen = strlen(sSendBuf);
    fprintf(fp, "sSendBuf[%s],iSendLen[%d]", sSendBuf, iSendLen);


    iSendLen = send( connfd, sSendBuf, iSendLen, 0 );
    if( iSendLen <= 0 )
    {
        printf("send err!\n");
        close(fp);
        close(connfd);
        return -3;
    }


    close(fp);
    close(connfd);


    return 0;
}