Maison > développement back-end > C++ > Comment les fonctions C++ établissent-elles et ferment-elles les connexions réseau dans la programmation réseau ?

Comment les fonctions C++ établissent-elles et ferment-elles les connexions réseau dans la programmation réseau ?

王林
Libérer: 2024-04-26 17:48:01
original
1105 Les gens l'ont consulté

En programmation réseau C++, l'établissement d'une connexion réseau implique les fonctions suivantes : socket() : Crée un socket. connect() : connectez le socket à l’hôte et au port distants. Pour fermer une connexion réseau, vous devez utiliser la fonction close().

C++ 函数在网络编程中如何建立和关闭网络连接?

Fonctions C++ pour établir et fermer des connexions dans la programmation réseau

Dans la programmation réseau, l'établissement et la fermeture des connexions réseau sont cruciales. C++ fournit plusieurs fonctions pour gérer ces opérations.

Établir une connexion réseau

  • socket() : Créez une prise pour la communication réseau. socket():创建一个套接字,用于网络通信。
  • connect():将套接字连接到远程主机和端口。

代码示例:建立 TCP 连接

#include <sys/socket.h>
#include <netinet/in.h>

int main() {
  // 创建套接字
  int socket_fd = socket(AF_INET, SOCK_STREAM, 0);

  // 设置服务器地址信息
  struct sockaddr_in server_addr;
  server_addr.sin_family = AF_INET;
  server_addr.sin_port = htons(8080);
  server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");

  // 连接到服务器
  connect(socket_fd, (struct sockaddr *) &server_addr, sizeof(server_addr));
  
  // ... 继续执行其他操作 ...
}
Copier après la connexion

关闭网络连接

  • close()
  • connect() : Connectez le socket à l'hôte et au port distants.

Exemple de code : Établir une connexion TCP

#include <sys/socket.h>

int main() {
  // ... 获取已连接的套接字 fd ...

  // 关闭套接字
  close(socket_fd);
}
Copier après la connexion
Fermer la connexion réseau

close() : Fermer un socket.

Exemple de code : Fermer la connexion TCP

#include <sys/socket.h>
#include <netinet/in.h>
#include <iostream>

int main() {
  // 创建套接字并连接到服务器
  int socket_fd = socket(AF_INET, SOCK_STREAM, 0);
  struct sockaddr_in server_addr;
  server_addr.sin_family = AF_INET;
  server_addr.sin_port = htons(8080);
  server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
  connect(socket_fd, (struct sockaddr *) &server_addr, sizeof(server_addr));

  // 发送数据到服务器
  std::string msg = "Hello from client!";
  send(socket_fd, msg.c_str(), msg.size(), 0);

  // 关闭连接
  close(socket_fd);

  return 0;
}
Copier après la connexion

🎜Cas pratique🎜🎜🎜En utilisant les fonctions ci-dessus, vous pouvez facilement implémenter l'établissement et la fermeture de la connexion dans la programmation réseau en C++. Par exemple, écrivez un simple client et serveur TCP pour démontrer ce que font ces fonctions. 🎜🎜🎜Code client : 🎜🎜
#include <sys/socket.h>
#include <netinet/in.h>
#include <iostream>

int main() {
  // 创建套接字并绑定到端口
  int socket_fd = socket(AF_INET, SOCK_STREAM, 0);
  struct sockaddr_in server_addr;
  server_addr.sin_family = AF_INET;
  server_addr.sin_port = htons(8080);
  server_addr.sin_addr.s_addr = INADDR_ANY;
  bind(socket_fd, (struct sockaddr *) &server_addr, sizeof(server_addr));

  // 监听连接
  listen(socket_fd, 5);

  // 接受连接
  int client_socket_fd = accept(socket_fd, NULL, NULL);

  // 从客户端接收数据
  char buffer[256];
  recv(client_socket_fd, buffer, sizeof(buffer), 0);
  std::cout << "Received from client: " << buffer << std::endl;

  // 发送响应到客户端
  std::string msg = "Hello from server!";
  send(client_socket_fd, msg.c_str(), msg.size(), 0);

  // 关闭连接
  close(client_socket_fd);
  close(socket_fd);

  return 0;
}
Copier après la connexion
🎜🎜Code serveur : 🎜🎜rrreee

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal