Add server.cpp
This commit is contained in:
parent
c48e4ef2b2
commit
b874f1a02d
56
server.cpp
Normal file
56
server.cpp
Normal file
@ -0,0 +1,56 @@
|
||||
#include <iostream>
|
||||
#include <cstring>
|
||||
#include <sys/socket.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <unistd.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
// здесь создаем сокет и выводим ошибку, если не удалось это сделать
|
||||
int serverSocket = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (serverSocket == -1) {
|
||||
cerr << "Ошибка при создании сокета\n";
|
||||
return -1;
|
||||
}
|
||||
|
||||
// задание адреса сервера. Используем порт 8080 и слушаем на всех //адресах( 0.0.0.0 )
|
||||
sockaddr_in serverAddress;
|
||||
serverAddress.sin_family = AF_INET;
|
||||
serverAddress.sin_port = htons(8080);
|
||||
serverAddress.sin_addr.s_addr = INADDR_ANY;
|
||||
|
||||
// связываем серверный сокет
|
||||
if (bind(serverSocket, (struct sockaddr*)&serverAddress, sizeof(serverAddress)) == -1) {
|
||||
cerr << "Ошибка при привязке сокета\n";
|
||||
close(serverSocket);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// слушаем на порту новые подключения
|
||||
if (listen(serverSocket, 5) == -1) {
|
||||
cerr << "Ошибка при прослушивании\n";
|
||||
close(serverSocket);
|
||||
return -1;
|
||||
}
|
||||
cout << "Сервер ожидает подключения...\n";
|
||||
|
||||
// принимаем подключение клиента
|
||||
int clientSocket = accept(serverSocket, nullptr, nullptr);
|
||||
if (clientSocket == -1) {
|
||||
cerr << "Ошибка при принятии подключения\n";
|
||||
close(serverSocket);
|
||||
return -1;
|
||||
}
|
||||
|
||||
cout << "Клиент подключен!\n";
|
||||
|
||||
// получаем данные от клиента
|
||||
char buffer[1024] = {0};
|
||||
recv(clientSocket, buffer, sizeof(buffer), 0);
|
||||
cout << "Сообщение от клиента: " << buffer << endl;
|
||||
|
||||
close(clientSocket);
|
||||
close(serverSocket);
|
||||
return 0;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user