Won7下发送消息c语言

以下是一个在 Windows 7 下使用 Winsock 库编写的发送消息和文件的 C 语言程序示例:

#include <stdio.h>

#include <winsock2.h>

#pragma comment(lib, "ws2_32.lib") // 链接 Winsock 库

#define PORT 8080

#define BUFFER_SIZE 1024

void sendMessage(SOCKET sockfd, const char *message) {

send(sockfd, message, strlen(message), 0);

}

void sendFile(SOCKET sockfd, const char *fileName) {

FILE *file = fopen(fileName, "rb");

if (file == NULL) {

printf("Error opening file\n");

return;

}

char buffer[BUFFER_SIZE];

size_t bytesRead;

while ((bytesRead = fread(buffer, 1, BUFFER_SIZE, file)) > 0) {

send(sockfd, buffer, bytesRead, 0);

}

fclose(file);

}

int main() {

WSADATA wsaData;

if (WSAStartup(MAKEWORD(2, 2), &wsaData)!= 0) {

printf("WSAStartup failed\n");

return 1;

}

SOCKET sockfd;

sockfd = socket(AF_INET, SOCK_STREAM, 0);

if (sockfd == INVALID_SOCKET) {

printf("Socket creation failed: %d\n", WSAGetLastError());

WSACleanup();

return 1;

}

struct sockaddr_in serv_addr;

serv_addr.sin_family = AF_INET;

serv_addr.sin_port = htons(PORT);

serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); // 请根据实际情况修改接收方地址

if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) == SOCKET_ERROR) {

printf("Connection failed: %d\n", WSAGetLastError());

closesocket(sockfd);

WSACleanup();

return 1;

}

char message[] = "Hello from sender!";

sendMessage(sockfd, message);

char fileName[] = "example.txt";

sendFile(sockfd, fileName);

closesocket(sockfd);

WSACleanup();

return 0;

}

同样,请注意修改接收方的地址为实际的目标地址,并确保在运行代码前,已正确配置开发环境以支持 Winsock 库。

原文链接:,转发请注明来源!