Linux下简单的网络编程笔记(模拟简单的服务器与客户端的通信 2-客户端)

/*************************************************************************
	> File Name: client.c
	> Author: 客户端程序
	> Mail: 
	> Created Time: 2018年04月07日 星期六 22时05分05秒
 ************************************************************************/

#include<stdio.h>
#include <sys/types.h> 
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <string.h>
#define SVERPNET  "192.168.0.110"                        
                                   //客户端不用定义自己的端口号,
                                   //但是需要声明服务器开放给客户端的端口号。
#define SERVport   6003

int main(int argc,char *argv[])
{
    int bindfd=-1;
    int connectfd=-1;
    int sendfd=-1;
    char sendbuf[100]={0};        //发送数据的数组盒子
    struct sockaddr_in servaddr={0};
//第一步:创建套接字
 int sockfd=-1;
 sockfd=socket(AF_INET,SOCK_STREAM,0);
 if(-1==sockfd)
    {
        perror("socket");
        return -1;
    }
    else{
        printf("socket succesful");
        printf("sockfd=%d\n",sockfd);
    }
//第二步:connect 连接服务器
    servaddr.sin_family=AF_INET;
    servaddr.sin_port=htons(SERVport);
    servaddr.sin_addr.s_addr=inet_addr(SVERPNET);
    connectfd=connect(sockfd,(const struct sockaddr *)&servaddr,sizeof(servaddr));
    if(-1==connectfd)
    {
        perror("connect");
        return -1;
    }else{
        printf("连接成功!\t");
        printf("connectfd=%d\n",connectfd);
    }
//第四步:建立连接后可以进行通信,客户机发送数据,服务器接收数据
    //scanf("%s",sendbuf);
    //sendfd=send(sockfd,sendbuf,strlen(sendbuf),0);
    //if(-1==sendfd)
    //{
    //    perror("send");
     //   return -1;
   // }else{
       // printf("发送了%d个字符\n",sendfd);
    //}
//
    while(1)
    {
        scanf("%s",sendbuf);
        sendfd=send(sockfd,sendbuf,strlen(sendbuf),0);
        if(-1==sendfd)
        {
           perror("send");
          return -1;
        }else{
         printf("发送了%d个字符\n",sendfd);
         }
        memset(sendbuf,0,sizeof(sendbuf));
    }


    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40585834/article/details/80558416