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

做网站的博客百度高级搜索引擎

做网站的博客,百度高级搜索引擎,哪个网站银锭专业做银锭的,手机网站拒绝访问怎么解决前面文章,介绍了一个简单socket通讯Demo, 客户端和服务器进行简单的交互。两个代码都很简单,如果情况一复杂,就会出错。这节我们把代码完善一下,实现一个客户端输入,发送,服务器echo的交互。本文…

前面文章,介绍了一个简单socket通讯Demo, 客户端和服务器进行简单的交互。两个代码都很简单,如果情况一复杂,就会出错。这节我们把代码完善一下,实现一个客户端输入,发送,服务器echo的交互。本文介绍客户端代码修改。

客户端其他函数修改同服务器端,可以看上一篇文章。

当服务器启动需要时间时, connect可能需要等待:

    int i = 60; //timeout, 60s.while (i){if (connect(sock, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR)) == 0){break;}else{Sleep(1000);    //1s.--i;}}if (i == 0){std::cout << "connect error." << std::endl;closesocket(sock);sock = INVALID_SOCKET;return;}

这里等1分钟,如果服务器还是没起来,就退出了。

客户端的整个代码如下:

#include <iostream>
#include <WinSock2.h>
#include <WS2tcpip.h>
#include <string>
#pragma comment(lib, "ws2_32.lib")#define SOCKET_ADDR "127.0.0.1"
#define SOCKET_PORT 1234void runSocketClient()
{SOCKET sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);if (sock == INVALID_SOCKET){std::cout << "socket error." << std::endl;return;}struct sockaddr_in sockAddr;sockAddr.sin_family = PF_INET;inet_pton(AF_INET, SOCKET_ADDR, &sockAddr.sin_addr.s_addr);sockAddr.sin_port = htons(SOCKET_PORT);int i = 60; //timeout, 60s.while (i){if (connect(sock, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR)) == 0){break;}else{Sleep(1000);    //1s.--i;}}if (i == 0){std::cout << "connect error." << std::endl;closesocket(sock);sock = INVALID_SOCKET;return;}int ret = 0;char szBuffer[MAXBYTE] = { 0 };ret = recv(sock, szBuffer, MAXBYTE, NULL);if (ret == 0){std::cout << "recv == 0." << std::endl;closesocket(sock);sock = INVALID_SOCKET;return;}else{std::cout << szBuffer << std::endl;}while (1){memset(szBuffer, 0, MAXBYTE);std::string line;std::getline(std::cin, line);if (line.size() > MAXBYTE-1) {line = line.substr(0, MAXBYTE-1);}strncpy_s(szBuffer, line.c_str(), MAXBYTE);if (strncmp(szBuffer, "exit", MAXBYTE) == 0){break;}ret = send(sock, szBuffer, strlen(szBuffer) + sizeof(char), NULL);if (ret != strlen(szBuffer) + sizeof(char)){std::cout << "send error." << std::endl;continue;}else{std::cout << "send:" << szBuffer << std::endl;}memset(szBuffer, 0, MAXBYTE);ret = recv(sock, szBuffer, MAXBYTE, NULL);if (ret == 0){std::cout << "recv == 0." << std::endl;closesocket(sock);sock = INVALID_SOCKET;break;}else{std::cout << "recv:" << szBuffer << std::endl;}}if (sock != INVALID_SOCKET){closesocket(sock);sock = INVALID_SOCKET;}
}int main()
{WSADATA wsaData;WSAStartup(MAKEWORD(2, 2), &wsaData);runSocketClient();WSACleanup();return 0;
}

客户端测试:

connected.
hello
send:hello
recv:hello
123456
send:123456
recv:123456
exit

http://www.hkea.cn/news/359937/

相关文章:

  • 河北建设集团官网西安网站seo
  • 在外汇局网站做登记报告恢复原来的百度
  • 做外贸做的很好的网站全国疫情突然又严重了
  • 开发app需要什么样的团队百度seo优化培训
  • ftp上传网站之后软文什么意思范例
  • 询广西南宁网站运营推广系统
  • wordpress侧边栏小工具佛山网站优化
  • 用vs做网站原型企业培训课程有哪些内容
  • wordpress评论自定义百度刷排名seo
  • 四川建设网官网登录入口泉州seo外包
  • 网站有备案 去掉备案网络营销意思
  • 新建网站推广给企业百度问一问在线咨询客服
  • 曹鹏wordpress建站seo视频广东疫情防控措施
  • 网站开发的岗位排名优化工具
  • 岳阳做网站怎么做推广让别人主动加我
  • 不断改进网站建设公司百度官网优化
  • 万户网站宁波网站制作优化服务
  • 潍坊快速网站排名网站是怎么做出来的
  • 聚美优品的pc网站建设注册网址
  • 陕西省住房与城乡建设厅网站免费b站推广软件
  • 淮南市住房与城乡建设部网站网店买卖有哪些平台
  • 网页qq表情佛山百度快速排名优化
  • 网站建设方案论文1500社会新闻最新消息
  • 网站组建 需求分析市场监督管理局职责
  • 云课堂哪个网站做的好厦门关键词优化seo
  • 中企动力沈阳分公司seo免费诊断电话
  • 网站vps被黑湖人最新排名最新排名
  • 如何夸奖客户网站做的好seo课程心得体会
  • 有哪些做电子商务的网站时空seo助手
  • 临沂百度网站电脑培训机构哪个好