C++中 socket 套接字连接

建立socket连接

套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

第一步:服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。

第二步:客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。

第三步:连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

socket套接字 之后学习qt 也会学到


//socket套接字 之后学习qt 也会学到

//服务器程序:
#include "winsock2.h"
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用C++套接字库(Socket Library)创建客户端并主动连接服务器的基本示例代码: ```cpp #include <iostream> #include <sys/socket.h> #include <arpa/inet.h> #include <unistd.h> int main() { // 创建套接字 int clientSocket = socket(AF_INET, SOCK_STREAM, 0); if (clientSocket == -1) { std::cerr << "Failed to create socket." << std::endl; return -1; } // 服务器地址信息 std::string serverIP = "127.0.0.1"; // 服务器IP地址 int serverPort = 8080; // 服务器端口号 // 设置服务器地址信息 sockaddr_in serverAddress{}; serverAddress.sin_family = AF_INET; serverAddress.sin_port = htons(serverPort); // 将IP地址从字符串转换为网络字节序 if (inet_pton(AF_INET, serverIP.c_str(), &(serverAddress.sin_addr)) <= 0) { std::cerr << "Invalid address/Address not supported." << std::endl; return -1; } // 连接服务器 if (connect(clientSocket, (struct sockaddr*)&serverAddress, sizeof(serverAddress)) == -1) { std::cerr << "Failed to connect to server." << std::endl; return -1; } // 连接成功,可以进行通信了 std::cout << "Connected to server." << std::endl; // 关闭套接字 close(clientSocket); return 0; } ``` 以上代码,`socket` 函数用于创建套接字,`connect` 函数用于连接服务器。在 `connect` 函数,我们需要将服务器的IP地址和端口号转换为网络字节序,并填充到 `sockaddr_in` 结构体。如果连接成功,就可以进行后续的通信操作。最后,使用 `close` 函数关闭套接字。 请注意,这只是一个基本示例,实际的代码可能需要更多的错误处理和逻辑来处理数据的发送和接收。另外,你需要根据实际情况修改服务器的IP地址和端口号。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值