Cmakelist.txt之win-c-udp-client

embedded/2024/11/27 21:08:52/

1.cmakelist.txt

cmake_minimum_required(VERSION 3.16)
​
project(c_udp_client LANGUAGES C)
​
add_executable(c_udp_client main.c)
​
target_link_libraries(c_udp_client wsock32)
​
​
include(GNUInstallDirs)
install(TARGETS c_udp_clientLIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
​

2.测试代码

#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#include <ws2tcpip.h>
​
// #pragma comment(lib, "ws2_32.lib")
​
#define PORT 8888
#define BUFFER_SIZE 1024
​
int main() {WSADATA wsaData;int client_socket;struct sockaddr_in server_addr;char buffer[BUFFER_SIZE];
​// 初始化Winsock库if (WSAStartup(MAKEWORD(2, 2), &wsaData)!= 0) {perror("WSAStartup failed");return 1;}
​// 创建UDP套接字if ((client_socket = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET) {perror("Socket creation failed");WSACleanup();return 1;}
​// 初始化服务器地址结构server_addr.sin_family = AF_INET;server_addr.sin_port = htons(PORT);server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
​while (1) {printf("\nEnter a message to send to the server: ");fgets(buffer, BUFFER_SIZE, stdin);
​// 发送数据到服务器int send_len = sendto(client_socket, buffer, strlen(buffer), 0,(struct sockaddr *)&server_addr, sizeof(server_addr));if (send_len == SOCKET_ERROR) {perror("Send failed");WSACleanup();return 1;}
​// 接收服务器的响应int recv_len = recvfrom(client_socket, buffer, BUFFER_SIZE - 1, 0, NULL, NULL);if (recv_len == SOCKET_ERROR) {perror("Receive failed");WSACleanup();return 1;}buffer[recv_len] = '\0';
​printf("Server response: %s", buffer);}
​
​closesocket(client_socket);WSACleanup();return 0;
}
​

3.结果


http://www.ppmy.cn/embedded/141005.html

相关文章

深入探索API爬虫工作的技术难点与高效解决思路

在大数据与信息化高速发展的今天&#xff0c;API&#xff08;应用程序编程接口&#xff09;爬虫成为了数据收集与分析的重要工具。然而&#xff0c;API爬虫工作并非一帆风顺&#xff0c;它面临着诸多技术挑战。本文将深入探讨几个API爬虫工作的技术难点&#xff0c;并提出相应的…

类文件结构详解.下

当前类、父类、接口索引集合 u2 this_class;//当前类u2 super_class;//父类u2 interfaces_count;//接口数量u2 interfaces[interfaces_count];//一个类可以实现多个接口 Java 类的继承关系由类索引、父类索引和接口索引集合三…

C++ 结构体(struct)

C 结构体&#xff08;struct&#xff09; 在C编程语言中&#xff0c;结构体&#xff08;struct&#xff09;是一种强大的数据结构&#xff0c;它允许我们将不同类型的数据项组合成一个单一的类型。本文将深入探讨C中结构体的相关知识点&#xff0c;并提供实际应用示例。 结构…

【大语言模型】ACL2024论文-20 SCIMON:面向新颖性的科学启示机器优化

【大语言模型】ACL2024论文-20 SCIMON&#xff1a;面向新颖性的科学启示机器优化 目录 文章目录 【大语言模型】ACL2024论文-20 SCIMON&#xff1a;面向新颖性的科学启示机器优化目录摘要研究背景问题与挑战如何解决创新点算法模型实验效果推荐阅读指数&#xff1a;★★★★☆ …

【LeetCode: 743. 网络延迟时间 + Dijkstra】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

网络爬虫——分布式爬虫架构

分布式爬虫在现代大数据采集中是不可或缺的一部分。随着互联网信息量的爆炸性增长&#xff0c;单机爬虫在性能、效率和稳定性上都面临巨大的挑战。分布式爬虫通过任务分发、多节点协作以及结果整合&#xff0c;成为解决大规模数据抓取任务的核心手段。 本节将从 Scrapy 框架的…

〔 MySQL 〕之内置函数

目录 1 日期函数 ​编辑 2 字符串函数​编辑 3 数学函数 4 其它函数 5 实战OJ ● 查找字符串中逗号出现的次数_牛客题霸_牛客网 1 日期函数 ● 获得年月日&#xff1a; select current_date();----------------| current_date() |----------------| 2017-11-19 |--------…

基于IPMI的服务器硬件监控指标解读

在现代化数据中心中&#xff0c;服务器的稳定运行对于保障业务连续性至关重要。为了实时掌握服务器的健康状况&#xff0c;运维团队需要借助高效的监控工具。监控易作为一款功能强大的监控软件&#xff0c;支持使用IPMI&#xff08;Intelligent Platform Management Interface&…