@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; } |
Этот код использует следующие функции и структуры: