当前位置: 首页 > news >正文

影视类网站建设微信分销app

影视类网站建设,微信分销app,免费做视频相册的网站,wordpress防止爆破Tcp通信的三次握手和四次挥手 TCP的三次握手和四次挥手是TCP连接的建立和断开过程#xff0c;确保了可靠的数据传输和连接状态的正确管理。 TCP的三次握手#xff08;TCP 链接建立#xff09;#xff1a; 1. 客户端发送 SYN #xff1a; 客户端向服务器发送一个 SYN 报文…Tcp通信的三次握手和四次挥手 TCP的三次握手和四次挥手是TCP连接的建立和断开过程确保了可靠的数据传输和连接状态的正确管理。 TCP的三次握手TCP 链接建立 1. 客户端发送 SYN 客户端向服务器发送一个 SYN 报文段 SYN1 Seqx 表示请求建立连接。 2. 服务器发送 SYNACK 服务器收到 SYN 报文段后如果同意建立连接则会发送一个 SYNACK 报文段 SYN1 ACKx1 Seqy 表示确认客户端的请求并表示自己也想建立连接。 3. 客户端发送 ACK 客户端收到服务器的 SYNACK 报文段后会发送一个确认报文段 ACK1 ACKy1 Seqx1 表示确认收到服务器的确认连接建立成功。 TCP的四次挥手TCP 链接断开 1. 客户端发送 FIN 客户端请求断开连接发送一个 FIN 报文段 FIN1 Seqx 。 2. 服务器发送 ACK 服务器收到客户端的 FIN 报文段后会发送一个确认报文段 ACK1 ACKx1 Seqy 表示收到了客户端的请求但是还有数据需要发送。 3. 服务器发送 FIN 服务器发送完所有数据后会发送一个 FIN 报文段 FIN1 ACKx1 Seqy 表示自己也准备断开连接。 4. 客户端发送 ACK 客户端收到服务器的 FIN 报文段后会发送一个确认报文段 ACK1 ACKy1 Seqx1 表示确认收到服务器的请求连接断开。 通过三次握手客户端和服务器之间建立了可靠的双向连接。而通过四次挥手双方断开了连接确保数据传输的可靠性和正确性。 客户端 1. 初始化Winsock库 在使用任何套接字编程功能之前需要初始化 Winsock 库。可以使用 WSAStartup 函数来完成初始化。 2. 创建套接字 使用 socket 函数创建一个套接字。指定地址族为 AF_INET类型为 SOCK_STREAM协议为 IPPROTO_TCP。 3. 设置服务器地址和端口 创建一个 sockaddr_in 结构体并设置其中的地址族、IP地址和端口号用于连接服务器。 4. 连接服务器 使用 connect 函数连接到服务器。将创建的套接字和服务器地址作为参数传递给 connect 函数。 5. 发送和接收数据 使用 send 函数向服务器发送数据并使用 recv 函数接收服务器的响应数据。 6. 关闭套接字 使用 closesocket 函数关闭套接字。 7. 清理Winsock库 在程序退出前使用 WSACleanup 函数清理 Winsock 库的资源。 #include iostream #include string #include WS2tcpip.h #pragma comment(lib, ws2_32.lib)int main() {// 初始化WinsockWSADATA wsData;WORD ver MAKEWORD(2, 2);int wsOK WSAStartup(ver, wsData);if (wsOK ! 0) {std::cerr Error: Cant initialize Winsock! Quitting std::endl;return 1;}// 创建socketSOCKET clientSocket socket(AF_INET, SOCK_STREAM, 0);if (clientSocket INVALID_SOCKET) {std::cerr Error: Cant create socket! Quitting std::endl;WSACleanup();return 1;}// 连接到服务器sockaddr_in server;server.sin_family AF_INET;server.sin_port htons(54000);inet_pton(AF_INET, 127.0.0.1, server.sin_addr);if (connect(clientSocket, (sockaddr*)server, sizeof(server)) SOCKET_ERROR) {std::cerr Error: Cant connect to server! Quitting std::endl;closesocket(clientSocket);WSACleanup();return 1;}// 发送和接收数据char buffer[4096];std::string userInput;do {std::cout Enter a message: ;std::getline(std::cin, userInput);int sendResult send(clientSocket, userInput.c_str(), userInput.size() 1, 0);if (sendResult ! SOCKET_ERROR) {// 接收服务器回复memset(buffer, 0, sizeof(buffer)); // 清空缓冲区int bytesReceived recv(clientSocket, buffer, sizeof(buffer), 0);if (bytesReceived 0) {std::cout Server response: std::string(buffer, bytesReceived) std::endl;}}else {std::cerr Error: Send failed! Quitting std::endl;break;}} while (userInput ! quit);// 关闭客户端socketclosesocket(clientSocket);// 关闭WinsockWSACleanup();return 0; }服务端 在Windows平台上创建TCP服务器的基本步骤 1. 初始化Winsock库 在使用任何套接字编程功能之前需要初始化 Winsock 库。可以使用 WSAStartup 函数来完成初始化。 2. 创建套接字 使用 socket 函数创建一个套接字。指定地址族为 AF_INET 类型为 SOCK_STREAM 协议为 IPPROTO_TCP 。 3. 设置服务器地址和端口 创建一个 sockaddr_in 结构体并设置其中的地址族、IP地址和端口号用于绑定服务器的地址和端口。 4. 绑定地址和端口 使用 bind 函数将套接字绑定到指定的地址和端口上。 5. 监听连接请求 使用 listen 函数开始监听来自客户端的连接请求。 6. 接受连接 使用 accept 函数接受客户端的连接请求并创建一个新的套接字用于与客户端通信。在接受连接之前服务器会阻塞在这一步直到有客户端连接上来。 7. 接收和发送数据 使用新创建的套接字进行数据的接收和发送。可以使用 recv 函数接收来自客户端的数据使用 send 函数发送数据给客户端。 8. 关闭连接 当通信完成后使用 closesocket 函数关闭与客户端的连接。 9. 关闭服务器套接字 当服务器不再接受新的连接时使用 closesocket 函数关闭服务器套接字。 #include iostream #include string #include WS2tcpip.h #pragma comment(lib, ws2_32.lib)int main() {// 初始化WinsockWSADATA wsData;WORD ver MAKEWORD(2, 2);int wsOK WSAStartup(ver, wsData);if (wsOK ! 0) {std::cerr Error: Cant initialize Winsock! Quitting std::endl;return 1;}// 创建socketSOCKET serverSocket socket(AF_INET, SOCK_STREAM, 0);if (serverSocket INVALID_SOCKET) {std::cerr Error: Cant create socket! Quitting std::endl;WSACleanup();return 1;}// 绑定地址和端口sockaddr_in hint;hint.sin_family AF_INET;hint.sin_port htons(54000);hint.sin_addr.S_un.S_addr INADDR_ANY; // 监听所有网卡上的连接bind(serverSocket, (sockaddr*)hint, sizeof(hint));// 开始监听listen(serverSocket, SOMAXCONN);// 接受连接sockaddr_in client;int clientSize sizeof(client);SOCKET clientSocket accept(serverSocket, (sockaddr*)client, clientSize);// 关闭服务器socketclosesocket(serverSocket);// 接收和发送数据char buffer[4096];while (true) {memset(buffer, 0, sizeof(buffer)); // 清空缓冲区int bytesReceived recv(clientSocket, buffer, sizeof(buffer), 0);if (bytesReceived SOCKET_ERROR) {std::cerr Error in recv(). Quitting std::endl;break;}if (bytesReceived 0) {std::cout Client disconnected std::endl;break;}std::cout Received: std::string(buffer, 0, bytesReceived) std::endl;// Echo回消息给客户端send(clientSocket, buffer, bytesReceived, 0);}// 关闭客户端socketclosesocket(clientSocket);// 关闭WinsockWSACleanup();return 0; }
http://www.pierceye.com/news/632731/

相关文章:

  • 国外唯美flash个人网站欣赏微网站建设教程
  • 网站动态添加广告怎么做的东莞网站建设规范
  • 天津网站建设工作室seo网站推广实例
  • 网站建设销售工作职责外贸网站建设知识 列表
  • 电子商务网站建设教案wordpress置顶
  • 公司建立网站步骤wordpress修改社交标签
  • 汕头网站建设公司附近电商培训班
  • 传奇服务器网站如何建设官方网站下载zoom
  • 帮人做彩票网站支付接口电子商务网站名字
  • 怎么查询网站是否被收录网络推广软件有哪些
  • 福田我要做网站优化比较好wordpress美图模板
  • wordpress 分享可见湖南优化电商服务有限公司
  • 高培淇自己做的网站网站页面可以用什么框架做
  • 在线推广企业网站的方法有哪些门户网站例子
  • 网站集约化建设 技术优质网站建设是哪家
  • 网站技术制作广州番禺建设银行网站登录
  • 女同性怎么做的视频网站wordpress 文章 定时
  • 域名备案时网站名字wordpress mip主题
  • 旅行社服务网点能否做网站wordpress4.9.8 php版本
  • 网站名称 如何注册wordpress用户名的要求
  • 玉树州wap网站建设公司常州市工程建设招标网
  • 自助网站建设技术支持如何做网站代码
  • 企业数据查询网站word 没有安装wordpress
  • 注册一个设计公司需要多少钱重庆网站建设及优化
  • 青岛企业建设网站公司如何传图片做网站
  • 手机网站源码教程个人博客系统的设计与实现
  • 高端网站改版南京网站如何制作
  • 个人网站建设课程专业彩票网站开发 APP开发
  • 学网站开发首先学哪些基础兰州网站设计哪个平台好
  • 网站后台看不到部分内容桐庐建设局网站