Junior — Middle
Ar turite praktinės patirties dirbant su tinklo protokolais ir infrastruktūra?
sobes.tech AI
Atsakymas iš AI
Taip, praktinė patirtis su tinklo protokolais ir infrastruktūra apima supratimą ir naudojimą tokių protokolų kaip TCP/IP, UDP, HTTP, taip pat tinklo ryšių konfigūravimą ir klaidų šalinimą.
Pavyzdžiui, C/C++ galima naudoti lizdus (sockets) kuriant klientų-serverio programas:
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <cstring>
#include <iostream>
int main() {
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0) {
std::cerr << "Klaida kuriant lizdą" << std::endl;
return 1;
}
sockaddr_in server_addr{};
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(80); // HTTP prievadas
inet_pton(AF_INET, "93.184.216.34", &server_addr.sin_addr); // example.com
if (connect(sock, (sockaddr*)&server_addr, sizeof(server_addr)) < 0) {
std::cerr << "Prisijungimo klaida" << std::endl;
close(sock);
return 1;
}
const char* http_request = "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n";
send(sock, http_request, strlen(http_request), 0);
char buffer[1024];
int bytes_received = recv(sock, buffer, sizeof(buffer) - 1, 0);
if (bytes_received > 0) {
buffer[bytes_received] = '\0';
std::cout << buffer << std::endl;
}
close(sock);
return 0;
}
Ši patirtis padeda suprasti, kaip duomenys perduodami per tinklą, kaip yra nustatomos jungtys ir kaip tvarkyti klaidas.