Linux C 面向连接的网络客户端实现

基本过程:

       客户端在调用socket函数建立了套接字之后,就可通过connect函数与服务器端进行联系。然后,使用read和write函数实现发送和接受数据。


与之对应的服务器端代码:http://blog.csdn.net/smarteryu/article/details/8653979


代码实现:

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

#define MAXBUFFSIZE 256
#define PORT 6666
#define HOST_ADDR "127.0.0.1"

int main()
{
    int sockfd,n;
    char recvbuff[MAXBUFFSIZE];
    struct sockaddr_in servaddr;
    //创建套接字
    sockfd =socket(AF_INET,SOCK_STREAM,0);
    if(sockfd<0)
    {
        printf("Scoket create failed.\n");
        return -1;
    }

    //与服务器进行连接
    servaddr.sin_family=AF_INET;
    servaddr.sin_port=htons(6666);
    if(inet_aton(HOST_ADDR,&servaddr.sin_addr)<0)
    {
        printf("inet_aton error\n");
        return -1;
    }
    //servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
    printf("connecting...\n");
    if(connect(sockfd ,(struct sockaddr*)&servaddr,sizeof(servaddr))<0)
    //connect(函数socket返回的套接字描述符,远程服务器的套接字地址,远程服务器套接字地址长度)
    {
        printf("Connect server failed.\n");
        return -1;
    }
    while((n=read(sockfd,recvbuff,MAXBUFFSIZE))>0)
    {
        recvbuff[n]=0;
        fputs(recvbuff,stdout);
    }
    if(n<0)
    {
        printf("Read failed!\n");
        return -2;
    }
    return 0;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值