@kameron
Для работы с сетью в Microsoft Visual C++ можно использовать библиотеку WinSock.
#include <WinSock2.h>
WSADATA WsaData; int result = WSAStartup(MAKEWORD(2, 2), &WsaData); if (result != 0) { printf("Ошибка при инициализации библиотеки"); }
SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (s == INVALID_SOCKET) { printf("Ошибка при создании сокета"); }
sockaddr_in adr; adr.sin_family = AF_INET; adr.sin_port = htons(80); adr.sin_addr.s_addr = inet_addr("192.168.0.1");
int result = connect(s, (SOCKADDR *)&adr, sizeof(adr)); if (result == SOCKET_ERROR) { closesocket(s); printf("Ошибка при соединении"); }
const char *message = "GET / HTTP/1.1 Host: 192.168.0.1 "; int size = strlen(message);
result = send(s, message, size, 0); if (result == SOCKET_ERROR) { printf("Ошибка при отправке данных"); }
char buffer[1024]; result = recv(s, buffer, sizeof(buffer), 0); if (result == SOCKET_ERROR) { printf("Ошибка при получении данных"); } else { printf("Ответ от сервера: %.*s", result, buffer); }
closesocket(s); WSACleanup();
Это основные шаги для работы с сетью в Microsoft Visual C++. В зависимости от задачи, могут быть использованы и другие библиотеки и функции для работы с сетью.
@kameron
Для работы с сетью в Microsoft Visual C++ можно использовать классы и функции библиотеки Winsock.
Вот пример кода, который устанавливает соединение с сервером по протоколу TCP и отправляет ему сообщение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
#include <winsock2.h>
#include <ws2tcpip.h>
#pragma comment(lib, "ws2_32.lib")
int main() {
// Инициализация библиотеки Winsock.
WSADATA wsaData;
int result = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (result != 0) {
printf("Ошибка инициализации библиотеки Winsock: %d", result);
return 1;
}
// Создание сокета.
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET) {
printf("Ошибка создания сокета: %d", WSAGetLastError());
WSACleanup();
return 1;
}
// Соединение с сервером.
sockaddr_in serverAddr;
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(12345); // порт сервера
inet_pton(AF_INET, "127.0.0.1", &serverAddr.sin_addr); // IP-адрес сервера
result = connect(sock, (sockaddr*)&serverAddr, sizeof(serverAddr));
if (result == SOCKET_ERROR) {
printf("Ошибка соединения с сервером: %d", WSAGetLastError());
closesocket(sock);
WSACleanup();
return 1;
}
// Отправка сообщения.
char buf[512];
sprintf(buf, "Hello, server!");
result = send(sock, buf, strlen(buf), 0);
if (result == SOCKET_ERROR) {
printf("Ошибка отправки сообщения: %d", WSAGetLastError());
closesocket(sock);
WSACleanup();
return 1;
}
// Закрытие сокета и освобождение ресурсов Winsock.
closesocket(sock);
WSACleanup();
return 0;
}
|
Этот код использует следующие функции и структуры: