linux socket编程-client

来源:互联网 发布:js math 向下取整 编辑:程序博客网 时间:2024/05/01 07:33
#include <netinet/in.h>#include <stdio.h>#include <string.h>#include <sys/socket.h>#define LETH 1024#define IP "130.10.3.135"int main(){    int sockfd, n;    char recvline[LETH];    char sendline[LETH];    struct sockaddr_in servaddr;    if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)    {        printf("create socket error.\n");        return -1;    }    printf("create socket.\n");    memset(&servaddr, 0, sizeof(servaddr));    servaddr.sin_family = AF_INET;    servaddr.sin_port = htons(6666);    if(inet_pton(AF_INET, IP, &servaddr.sin_addr) <= 0)    {        printf("inet_pton error %s\n", IP);        close(sockfd);        return -1;    }    if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0)    {        printf("connect socket error.\n");        close(sockfd);        return -1;    }    printf("connect socket.\n");    while(1)    {        fgets(sendline, LETH, stdin);        if (send(sockfd, sendline, strlen(sendline), 0) < 0)        {            printf("send msg error.\n");            close(sockfd);            return -1;        }        printf("send msg: %s\n", sendline);        if (strstr(sendline, "quit"))        {            printf("client exit.\n");            break;        }        n = recv(sockfd, recvline, LETH, 0);        recvline[n] = '\0';        printf("recv msg from server: %s\n", recvline);    }    close(sockfd);    return 0;}