编写一个c语言 实现数据交互
这个问题比较宽泛,需要更具体的需求才能给出代码示例。以下是几种常见的数据交互方式的代码示例:
- 使用文件进行数据交互
发送端代码:
#include <stdio.h>
int main() {
FILE *fp;
char data[50] = "Hello World!"; // 要发送的数据
fp = fopen("data.txt", "w"); // 打开文件,以写入方式
fprintf(fp, "%s", data); // 写入数据
fclose(fp); // 关闭文件
return 0;
}
接收端代码:
#include <stdio.h>
int main() {
FILE *fp;
char data[50]; // 接收到的数据
fp = fopen("data.txt", "r"); // 打开文件,以读取方式
fscanf(fp, "%s", data); // 读取数据
printf("Received data: %s\n", data); // 打印数据
fclose(fp); // 关闭文件
return 0;
}
- 使用命令行参数进行数据交互
发送端代码:
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("Usage: %s <message>\n", argv[0]);
return 1;
}
printf("Sending data: %s\n", argv[1]); // 打印要发送的数据
return 0;
}
接收端代码:
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("Usage: %s <message>\n", argv[0]);
return 1;
}
printf("Received data: %s\n", argv[1]); // 打印接收到的数据
return 0;
}
- 使用网络套接字进行数据交互
发送端代码:
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
int main() {
int sockfd;
struct sockaddr_in servaddr;
char data[50] = "Hello World!"; // 要发送的数据
sockfd = socket(AF_INET, SOCK_STREAM, 0); // 创建套接字
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); // 设置服务器地址
servaddr.sin_port = htons(1234); // 设置服务器端口号
connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)); // 连接服务器
write(sockfd, data, strlen(data)); // 发送数据
close(sockfd); // 关闭套接字
return 0;
}
接收端代码:
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
int main() {
int listenfd, connfd;
struct sockaddr_in servaddr, cliaddr;
socklen_t clilen;
char data[50]; // 接收到的数据
listenfd = socket(AF_INET, SOCK_STREAM, 0); // 创建套接字
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(1234); // 监听端口号
bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr)); // 绑定地址和端口
listen(listenfd, 5); // 监听连接
clilen = sizeof(cliaddr);
connfd = accept(listenfd, (struct sockaddr *)&cliaddr, &clilen); // 接受连接
read(connfd, data, sizeof(data)); // 接收数据
printf("Received data: %s\n", data); // 打印数据
close(connfd); // 关闭套接字
close(listenfd);
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/cLIp 著作权归作者所有。请勿转载和采集!