首頁 >後端開發 >C++ >C++ 函式在網路程式設計中如何建立和關閉網路連線?

C++ 函式在網路程式設計中如何建立和關閉網路連線?

王林
王林原創
2024-04-26 17:48:011065瀏覽

在 C 網路程式設計中,建立網路連線涉及以下函數:socket():建立套接字。 connect():將套接字連接到遠端主機和連接埠。關閉網路連線則需要使用 close() 函數。

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

C 函數在網路程式設計中的連線建立和關閉

網路程式設計中,建立和關閉網路連線是至關重要的。 C 提供了幾個函數,用於處理這些操作。

建立網路連線

  • 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));
  
  // ... 继续执行其他操作 ...
}

關閉網路連線

  • ##close ():關閉一個套接字。

程式碼範例:關閉TCP 連線

#include <sys/socket.h>

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

  // 关闭套接字
  close(socket_fd);
}

實戰案例##使用上述函數,可以輕鬆地在C 中實現網路程式設計中的連線建立和關閉。例如,編寫一個簡單的 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;
}

伺服器程式碼:

#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;
}

以上是C++ 函式在網路程式設計中如何建立和關閉網路連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn