socket 客户端长连接(C++)
来源:互联网 发布:mysql mvcc 乐观锁 编辑:程序博客网 时间:2024/06/05 11:51
#include "stdafx.h"#include <stdio.h>#include <Winsock2.h>#include <iostream> #pragma comment(lib, "ws2_32.lib")using namespace std;int main(int argc, char* argv[]){const int BUF_SIZE = 64;WSADATA wsd; //WSADATA变量SOCKET sHost; //服务器套接字SOCKADDR_IN servAddr; //服务器地址char buf[]="123456\n"; //接收数据缓冲区char bufRecv[BUF_SIZE];int retVal; //返回值//初始化套结字动态库if (WSAStartup(MAKEWORD(2,2), &wsd) != 0){cout << "WSAStartup failed!" << endl;return -1;}//创建套接字sHost = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if(INVALID_SOCKET == sHost){cout << "socket failed!" << endl;WSACleanup();//释放套接字资源return -1;}//设置服务器地址servAddr.sin_family =AF_INET;servAddr.sin_addr.s_addr = inet_addr("192.168.45.136");servAddr.sin_port = htons(666);int nServAddlen = sizeof(servAddr);//连接服务器retVal=connect(sHost,(LPSOCKADDR)&servAddr, sizeof(servAddr));if(SOCKET_ERROR == retVal){cout << "connect failed!" << endl;closesocket(sHost); //关闭套接字WSACleanup(); //释放套接字资源return -1;}fd_setwfds, rfds, efds;timeval tv;tv.tv_sec = 10;tv.tv_usec = 500;int count =-1;while(true){FD_ZERO(&wfds);FD_ZERO(&rfds);FD_ZERO(&efds);FD_SET(sHost,&wfds);FD_SET(sHost,&rfds);FD_SET(sHost,&efds);int Rtn = select(FD_SETSIZE,&rfds,&wfds,&efds,&tv);if (Rtn>0){if(FD_ISSET(sHost,&rfds)>0)//表示有读的{count = recv(sHost, bufRecv,BUF_SIZE , 0);}if (FD_ISSET(sHost,&wfds)>0)//表示可以写{if (count>0){retVal = send(sHost, buf, strlen(buf), 0);if (SOCKET_ERROR == retVal){cout << "send failed!" << endl;closesocket(sHost); //关闭套接字WSACleanup(); //释放套接字资源return -1;}count = -1;}}if (FD_ISSET(sHost,&efds)>0)//表示有异常{}}else{cout << "error1";}}//退出closesocket(sHost); //关闭套接字WSACleanup(); //释放套接字资源printf("Hello World!\n");return 0;}
0 0
- socket 客户端长连接(C++)
- socket长连接客户端管理
- iOS上的TCP-Socket长连接,Demo客户端
- android Socket长连接及多客户端管理
- iOS客户端socket长连接的一些解决方案
- nodejs socket长连接服务端和测试客户端
- Android客户端 C#服务端 实现socket长连接
- TCP Socket客户端,以及解决长连接的办法
- java Socket 长连接 心跳包 客户端 信息收发 demo
- Java写的保持socket长连接客户端代码
- 什么是socket?什么是socket的长、短连接?java如何简单实现socket客户端和服务器?
- C#笔记(9)Socket长连接
- socket长连接,
- java socket 长连接
- java Socket长连接
- TCP socket 长连接
- android socket 长连接
- java socket 长连接
- 第九周项目4—广义表算法库及应用
- 无缝滚动图片——源码
- 输入输出缓冲区
- java 用在把一个文件夹下的所有文件都放到一个文件夹下,删除多层文件夹
- SVN服务器IP地址变更后,右键卡顿 解决方法(二)
- socket 客户端长连接(C++)
- Zookeeper API 记录
- 数据结构示例之插入子字符串
- linux套接字编程
- 海量数据库的查询优化及分页算法方案
- 【poj】 3061 Subsequence 尺取法
- kettle mongo导入mysql简单转换
- UVA - 310 L--system
- java项目中导出功能的参考写法。