案例:个人信息到后台,后台处理并转发回来-client.c

客户端主要处理的业务就比较简单,主要是传数据和接收数据,并把数据打印出来

1,socket()函数

(调用例如:  int client_socket = socket(AF_INET, SOCK_STREAM, 0);   //创建和服务器连接套接字  

2,connect()函数

(调用例如:int listen_socket =  connect(client_socket,  (struct sockaddr *)&addr, addrlen);  //连接服务器  

3 ,write()和read()函数

(调用例如:write(client_socket, buf, strlen(buf));  

(调用例如:  int ret = read(client_socket, buf, strlen(buf));  

4,close()函数

close(listen_socket);  


详细代码如下:
 

#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <arpa/inet.h>


#define PORT 9990
#define SIZE 1024

int main()
{
        int client_socket = socket(AF_INET, SOCK_STREAM, 0);   //创建和服务器连接套接字
        if(client_socket == -1)
        {
                perror("socket");
                return -1;
        }
        struct sockaddr_in addr;
        memset(&addr, 0, sizeof(addr));
        
        addr.sin_family = AF_INET;  /* Internet地址族 */
    addr.sin_port = htons(PORT);  /* 端口号 */
    addr.sin_addr.s_addr = htonl(INADDR_ANY);   /* IP地址 */
        inet_aton("127.0.0.1", &(addr.sin_addr));

        int addrlen = sizeof(addr);
        int listen_socket =  connect(client_socket,  (struct sockaddr *)&addr, addrlen);  //连接服务器
        if(listen_socket == -1)
        {
                perror("connect");
                return -1;
        }
        
        printf("成功连接到一个服务器\n");
        
        char buf[SIZE] = {0};
        
        while(1)        //向服务器发送数据,并接收服务器转换后的大写字母
        {
                printf("请输入你相输入的:");
                scanf("%s", buf);
                write(client_socket, buf, strlen(buf));
                
                int ret = read(client_socket, buf, strlen(buf));
                
                printf("buf = %s", buf);
                printf("\n");
                if(strncmp(buf, "END", 3) == 0)     //当输入END时客户端退出
                {
                        break;
                }
        }
        close(listen_socket);
        
        return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

康耶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值