C语言的recvfrom()具体怎们用和套接字函数。fseek()的函数怎么使用 。
#include<stdio.h>
#include<string.h>
#include<sys/socket.h>
#include<netinet/in.h>
#define PORT 8080
#define MAX_BUFFER_SIZE 1024
int main() {
int sockfd;
char buffer[MAX_BUFFER_SIZE];
struct sockaddr_in servaddr, cliaddr;
// 创建UDP套接字
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
memset(&servaddr, 0, sizeof(servaddr));
memset(&cliaddr, 0, sizeof(cliaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(PORT);
// 将套接字与本地地址和端口绑定
bind(sockfd, (const struct sockaddr*)&servaddr, sizeof(servaddr));
int len, n;
len = sizeof(cliaddr);
// 接收数据并存储在缓冲区中,cliaddr用于存储发送方的地址和端口信息
n = recvfrom(sockfd, buffer, MAX_BUFFER_SIZE, 0, (struct sockaddr*)&cliaddr, &len);
buffer[n] = '\0'; // 在缓冲区末尾添加字符串结束符
printf("Received message: %s\n", buffer);
close(sockfd);
return 0;
}
#include <stdio.h>
int main() {
FILE* file = fopen("example.txt", "r");
if (file == NULL) {
printf("Failed to open the file.\n");
return 1;
}
// 设置文件指针位置到文件末尾
fseek(file, 0, SEEK_END);
// 获取文件大小
long fileSize = ftell(file);
// 关闭文件
fclose(file);
printf("File size: %ld bytes\n", fileSize);
return 0;
}