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

政府网站 建设方案网站制作详细流程

政府网站 建设方案,网站制作详细流程,寿光网站建设,潍坊专业环保设备服务端保持监听客户端&#xff0c; 服务端采用select实现&#xff0c;可以监听多个客户端 客户端源码 在这里插入代码片 #include <iostream> //#include <windows.h> #include <WinSock2.h> #include <WS2tcpip.h> using namespace std; #pragma co…

服务端保持监听客户端, 服务端采用select实现,可以监听多个客户端

客户端源码

在这里插入代码片
```#include <iostream>
//#include <windows.h>
#include <WinSock2.h>
#include <WS2tcpip.h>
using namespace std;
#pragma comment(lib, "Ws2_32.lib")int main() {WSADATA wd;int result;result = WSAStartup(MAKEWORD(2, 2), &wd);if (result != 0) {cout << "WSAStartup error" << endl;return 0;}//创建套接字SOCKET c_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (c_socket == INVALID_SOCKET) {cout << "socket error" << endl;return 0;}sockaddr_in c_addr;inet_pton(AF_INET, "127.0.0.1", &c_addr.sin_addr.S_un.S_addr);c_addr.sin_family = AF_INET;c_addr.sin_port = htons(8888);int len = sizeof(c_addr);result = connect(c_socket, (sockaddr*)&c_addr, len);if (result == INVALID_SOCKET) {cout << "connect error" << endl;return 0;}char sendbuf[1024] = { 0 };cout << "client输入数据:";cin >> sendbuf;//sendresult = send(c_socket, sendbuf, sizeof(sendbuf), 0);if (result == SOCKET_ERROR) {cout << "client send error" << endl;return 0;}//recvchar recvbuf[1024] = { 0 };result = recv(c_socket, recvbuf, sizeof(recvbuf), 0);if (result == 0) {cout << "recv error" << endl;return 0;}cout << "servic发送的数据:" << recvbuf << endl;//closeclosesocket(c_socket);WSACleanup();return 0;
}

服务端源码

#include <iostream>
//#include <windows.h>
#include <WinSock2.h>
#include <WS2tcpip.h>
//#include <stdlib.h>
//#include <stdio.h>
using namespace std;
//导入动态库
#pragma comment(lib,"ws2_32.lib")int __cdecl  main(int argc, char** argv) {WSADATA wd; //创建wd的WSADATA对象SOCKET s_socket = INVALID_SOCKET;int result;//初始化winsock//调用WSAStartupresult = WSAStartup(MAKEWORD(2, 2), &wd);if (result != 0) {//printf("WSAStartup 失败:d%\n", result);}//1 创建套接字SOCKET ser_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);//判断套接字是否有效if (ser_socket == INVALID_SOCKET) {cout << "套接字不可用";return 0;}//2 绑定端口和地址 sockaddr_in 是一个结构体sockaddr_in addr;/*	addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); 使用这个会报错*/inet_pton(AF_INET,"127.0.0.1",&addr.sin_addr.S_un.S_addr);addr.sin_family = AF_INET;addr.sin_port = htons(8888);int len = sizeof(addr);result = bind(ser_socket, (LPSOCKADDR)&addr, len);if (result == SOCKET_ERROR) {cout << "socket error"<< result << endl;return 0;}cout << "服务器启动成功,正在等待客户端连接" << endl;//3 监听if (listen(ser_socket, 5) == SOCKET_ERROR) {cout << "listen error" << endl;}FD_SET  read_set;//创建文件描述集合FD_ZERO(&read_set);//清空文件描述集合FD_SET(ser_socket, &read_set);//将监听套接字放入文件描述集合timeval timeout{ 0,0 };//select超时设置while (true) {FD_SET temp_set;FD_ZERO(&temp_set);temp_set = read_set;int select_num = select(0, &temp_set, NULL, NULL, &timeout);if (select_num == SOCKET_ERROR) {continue;}for (int i = 0; i < temp_set.fd_count; i++) {SOCKET s_df = temp_set.fd_array[i];if (s_df == ser_socket) { // 判断监听套接字是否就绪//4 接收连接//获取客户端IP地址和端口sockaddr_in client_addr;client_addr.sin_family = AF_INET;int client_len = sizeof(client_addr);s_socket = accept(ser_socket, (sockaddr*)&client_addr, &client_len);if (s_socket == INVALID_SOCKET) {cout << "accept error" << endl;continue;}				else {cout << "客户端连接成功" << endl;}char ipbuff[100];string remote_host = inet_ntop(AF_INET, &addr.sin_addr.S_un.S_addr, ipbuff, 20);cout << "接收到客户机:" << remote_host << " 端口号:" << addr.sin_port << endl;// 5接收和发送	char recvbuf[1024] = { 0 };result = recv(s_socket, recvbuf, sizeof(recvbuf), 0);if (result == 0 || result == SOCKET_ERROR) {closesocket(s_df);FD_CLR(s_df, &read_set);//从集中清除套接字cout << "结束连接" << result << endl;}cout << "client发送的数据:" << recvbuf << endl;cout << "service输入数据:";char sendbuf[1024] = { 0 };cin >> sendbuf;result = send(s_socket, sendbuf, sizeof(sendbuf), 0);if (result == SOCKET_ERROR) {cout << "service send error" << endl;}if (s_socket == INVALID_SOCKET) {cout << "socket error" << endl;return 0;}}else {}}}while (s_socket) {}// 6关闭closesocket(s_socket);WSACleanup();system("pause");return 0;
}
http://www.mmbaike.com/news/29507.html

相关文章:

  • 洛阳航迪科技网站建设公司怎么样公司软文
  • 苏州做网站的公司新东方在线网上课程
  • 望野是什么意思seo教程技术资源
  • 黄山网站建设营销渠道策略有哪些
  • 企业怎么做网站建设网络营销10大平台
  • 建网站哪家质量好友情链接的作用
  • 如何把网站提交到百度刷钻业务推广网站
  • c++实现微博第三方登录 没有公司和网站如何做重庆网站seo搜索引擎优化
  • 做aelogo动效有什么好的网站yahoo搜索引擎提交入口
  • windous 系统 做网站铁力seo
  • 日本无码做受网站站长工具黄
  • WordPress文章登录后可看网站seo如何做好优化
  • 亚马逊建设网站用什么实例李飞seo
  • 潍坊科技网站建设搜狗搜索引擎网页
  • vps网站目录是灰色的竞价培训
  • 工商局网站怎么做增项企业网址
  • 做竞价网站访问突然变少网络销售怎么聊客户
  • 广州网站定制开发方案搜索app下载
  • 医院做网站备案都需要什么软文推广网
  • 网站建设网站自助建设seo关键词排名优化销售
  • 通过网站如何做海外贸易阜新网络推广
  • 南阳网站建设制作企业培训考试app
  • 代做课题网站站长工具怎么用
  • 看广告赚佣金平台长沙seo优化推荐
  • 视频解析网站制作南召seo快速排名价格
  • 做投票页面什么网站好网络营销公司简介
  • 苏州网站建设建网站旺道seo软件
  • 怎么做购物网站的分类目录河南省干部任免最新公示
  • 山东平台网站建设推荐seo优化推广业务员招聘
  • 有什么电商网站做推广赚佣金的百度查一下