当前位置: 首页 > news >正文

c语言——简单客户端demo

以下是一个简单的C语言客户端示例,用于连接到服务器并发送和接收数据:

#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
#include <sys/socket.h>  
#include <arpa/inet.h>  
#include <unistd.h>  #define SERVER_ADDRESS "127.0.0.1"  
#define SERVER_PORT 12345  
#define BUFFER_SIZE 1024  int main(int argc, char *argv[]) {  int sockfd;  struct sockaddr_in server_addr;  char buffer[BUFFER_SIZE];  int bytes_received;  // 创建socket  sockfd = socket(AF_INET, SOCK_STREAM, 0);  if (sockfd < 0) {  perror("Error creating socket");  exit(EXIT_FAILURE);  }  // 设置服务器地址和端口号  memset(&server_addr, 0, sizeof(server_addr));  server_addr.sin_family = AF_INET;  server_addr.sin_addr.s_addr = inet_addr(SERVER_ADDRESS);  server_addr.sin_port = htons(SERVER_PORT);  // 连接服务器  if (connect(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {  perror("Error connecting to server");  exit(EXIT_FAILURE);  }  printf("Connected to server\n");  // 发送数据到服务器  strcpy(buffer, "Hello, server!");  if (send(sockfd, buffer, strlen(buffer), 0) < 0) {  perror("Error sending data");  exit(EXIT_FAILURE);  }  printf("Data sent to server: %s\n", buffer);  // 接收服务器发送的数据  bytes_received = recv(sockfd, buffer, BUFFER_SIZE, 0);  if (bytes_received < 0) {  perror("Error receiving data");  exit(EXIT_FAILURE);  }  buffer[bytes_received] = '\0';  printf("Data received from server: %s\n", buffer);  // 关闭socket连接  close(sockfd);  printf("Connection closed\n");  return 0;  
}

在上述代码中,我们使用了socket()函数创建了一个TCP socket,并指定了使用IPv4协议和TCP传输协议。然后,我们使用connect()函数连接到指定的服务器,其中服务器地址和端口号分别由常量SERVER_ADDRESSSERVER_PORT定义。在连接成功后,我们使用send()函数发送了一条消息到服务器,然后使用recv()函数接收服务器发送的响应。最后,我们使用close()函数关闭了socket连接。

http://www.lryc.cn/news/251439.html

相关文章:

  • 日志检索场景ES->Doris迁移最佳实践:函数篇
  • 【高效开发工具系列】jackson入门使用
  • 深入理解网络非阻塞 I/O:NIO
  • Hdoop学习笔记(HDP)-Part.07 安装MySQL
  • [数据结构]HashSet与LinkedHashSet的底层原理学习心得
  • 使用unity开发Pico程序,场景中锯齿问题
  • Spring | Spring的基本应用
  • 项目开发维护技术文档(梳理总结中)
  • 【接口测试】Apifox实用技巧干货分享
  • 车联网架构设计(一)_消息平台的搭建
  • (蓝桥杯)1125 第 4 场算法双周赛题解+AC代码(c++/java)
  • 也可Adobe Animate
  • 【面试HOT200】回溯篇
  • JVM——内存溢出和内存泄漏
  • 《凤凰项目》读书笔记
  • 熬夜会秃头——beta冲刺Day4
  • HTML5+CSS3+Vue小实例:浪漫的心形文字动画特效
  • 数据结构-基数排序
  • 基于ASP.NET MVC技术的图书管理系统的设计与实现
  • C++17中的结构化绑定
  • Mover Creator 用户界面
  • 『Nginx安全访问控制』利用Nginx实现账号密码认证登录的最佳实践
  • MongoDB导入导出命令
  • 软件工程期末复习(1)
  • nextjs入门
  • 【C语言】字符串函数strlen #strcpy #strcmp #strcat #strstr及其模拟实现
  • 递归实现组合型枚举
  • SCAU:1065 数组中的指针
  • 找不到msvcp110.dll如何修复?分享5个亲测有效的修复方法
  • LeetCode刷题笔记第80题:删除有序数组中的重复项 II