iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++如何实现即时通信
  • 300
分享到

C++如何实现即时通信

2023-06-30 13:06:09 300人浏览 安东尼
摘要

本篇内容主要讲解“c++如何实现即时通信”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++如何实现即时通信”吧!软件:VS服务器端//tcpServer_plus.exe#include<

本篇内容主要讲解“c++如何实现即时通信”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++如何实现即时通信”吧!

软件:VS

服务器

//tcpServer_plus.exe#include<stdio.h>#include <Winsock2.h>#include<WS2tcpip.h>#pragma comment(lib,"ws2_32.lib")#include<iOStream>using namespace std;#include<windows.h>SOCKADDR_IN cAddr = { 0 };int len = sizeof cAddr;Socket clientSocket[1001];//同时最多容纳1000人在线void chat(int n) {char buff[1024];int r;while (1) {r = recv(clientSocket[n], buff, 1023, NULL);if (r > 0) {buff[r] = 0;//cout << inet_ntoa(cAddr.sin_addr) << "发来的消息: " << buff;printf("%s发来的信息:%s\n", inet_ntop(AF_INET, (void*)&cAddr.sin_addr, buff, 1023), buff);}}}int main() {//1.确定协议版本WSADATA wsadata;WSAStartup(MAKEWORD(2, 2), &wsadata);//2.2版本if (LOBYTE(wsadata.wVersion) != 2 || HIBYTE(wsadata.wVersion) != 2) {cout << "确认版本失败!\n" << endl;return -1;}cout << "确认版本成功!" << endl;//2.创建SocketSOCKET serverSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);//参数:协议类型、通信载体(字节流)、ip保护方式if (serverSocket == SOCKET_ERROR) {cout << "创建socket失败!" << GetLastError() << endl;//9.清楚版本信息WSACleanup();return -1;}cout << "socket创建成功!" << endl;//3.创建服务器协议地址族//就是一个结构体SOCKADDR_IN addr = { 0 };addr.sin_family = AF_INET;inet_pton(AF_INET, "192.168.31.100", (void*)&addr.sin_addr.S_un.S_addr);//addr.sin_addr.S_un.S_addr = inet_addr("192.168.31.100");//局域网地址addr.sin_port = htons(9999);//设置端口号 小端转大端//4.绑定int r = bind(serverSocket, (struct sockaddr*)&addr, sizeof addr);if (r == -1) {cout << "绑定失败!" << GetLastError() << endl;//8.关闭socketclosesocket(serverSocket);//9.清除版本信息WSACleanup();return -1;}cout << "绑定成功!" << endl;//5.监听r = listen(serverSocket, 10);if (r == -1) {cout << "监听失败!" << GetLastError() << endl;//8.关闭socketclosesocket(serverSocket);//9.清除版本信息WSACleanup();return -1;}cout << "监听成功!" << endl;//6.等待客户端连接(多客户端连接)for (int i = 0; i < 1001; i++) {clientSocket[i] = accept(serverSocket, (sockaddr*)&cAddr, &len);//获取客户端的socketif (clientSocket[i] == SOCKET_ERROR) {cout << "客户端连接失败:" << GetLastError() << endl;//关闭socketclosesocket(serverSocket);//9.清楚版本信息WSACleanup();return -1;}cout << "客户端连接成功!" << endl;//7 通信  多线程实现 chat函数实现CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)chat, (LPVOID)i, NULL, NULL);//多线程实现}//8.关闭socketclosesocket(serverSocket);//9.清理协议版本信息WSACleanup();while (1);//停顿return 0;}

客户端

多次点击TcpClient.exe可以产生多个窗口

//TcpClient.exe#include<stdio.h>#include <Winsock2.h>#include<WS2tcpip.h>#pragma comment(lib,"ws2_32.lib")#include<iostream>using namespace std;#include<windows.h>int main() {//1.确定协议版本WSADATA wsadata;WSAStartup(MAKEWORD(2, 2), &wsadata);//2.2版本if (LOBYTE(wsadata.wVersion) != 2 || HIBYTE(wsadata.wVersion) != 2) {cout << "确认版本失败!\n" << endl;return -1;}cout << "确认版本成功!" << endl;//2.创建SocketSOCKET clientSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);//参数:协议类型、通信载体(字节流)、ip保护方式if (clientSocket == SOCKET_ERROR) {cout << "创建socket失败!" << GetLastError() << endl;//9.清楚版本信息WSACleanup();return -1;}cout << "socket创建成功!" << endl;//3.获取服务器协议地址族//就是一个结构体SOCKADDR_IN addr = { 0 };addr.sin_family = AF_INET;inet_pton(AF_INET, "192.168.31.100", (void*)&addr.sin_addr.S_un.S_addr);//addr.sin_addr.S_un.S_addr = inet_addr("192.168.31.100");//局域网地址addr.sin_port = htons(9999);//设置端口号 小端转大端//4.连接服务器int r = connect(clientSocket, (sockaddr*)&addr,sizeof addr);if (r == -1) {cout << "连接服务器失败:" << GetLastError() << endl;//6.关闭socketclosesocket(clientSocket);//7 清理版本信息WSACleanup();return -1;}cout << "服务器连接成功!" << endl;//5.通信char buff[1024];while (1) {cin >> buff;//用户输入信息send(clientSocket, buff, strlen(buff), NULL);//发送信息}//6.关闭socketclosesocket(clientSocket);//7.清理协议版本信息WSACleanup();while (1);//停顿return 0;}

运行效果:

C++如何实现即时通信

到此,相信大家对“C++如何实现即时通信”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: C++如何实现即时通信

本文链接: https://www.lsjlt.com/news/329230.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++如何实现即时通信
    本篇内容主要讲解“C++如何实现即时通信”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++如何实现即时通信”吧!软件:VS服务器端//TcpServer_plus.exe#include<...
    99+
    2023-06-30
  • C#的即时通信程序怎么实现
    这篇文章主要介绍“C#的即时通信程序怎么实现”,在日常操作中,相信很多人在C#的即时通信程序怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#的即时通信程序怎么实现”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-17
  • C++实现即时通信的示例代码(直接运行)
    目录题目软件:VS服务器端客户端题目 由于本学期上了网络编程课程,老师要求写使用Socke实现网络编程。于是参考 C++多线程实现即时通信软件 写出了简单版本的没有界面的即时通信软件...
    99+
    2022-11-13
  • SpringBoot整合websocket实现即时通信聊天
    目录一、技术介绍1.1 客户端WebSocket1.1.1 函数1.1.2 事件1.2 服务端WebSocket二、实战 2.1、服务端2.1.1引入maven依赖2.1....
    99+
    2022-11-13
  • php如何实现即时通讯实例
    本篇内容介绍了“php如何实现即时通讯实例”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php实现即时通讯实例的方法:1、搭建websock...
    99+
    2023-07-04
  • AndroidSocket实现多个客户端即时通信聊天
    聊天室的原理是这样的,一个客户端与服务器建立通讯成功,即客户端socket连接到服务器的ServerSocket之后,服务器端程序将对应的socket加入到容器中,为每一个socke...
    99+
    2022-11-13
  • PHP和WebSocket: 实现即时通信的优化方法
    PHP和WebSocket: 实现即时通信的优化方法引言:随着互联网的快速发展,即时通信成为人们生活中必不可少的一部分。而在建立一个高效和可靠的即时通信系统中,WebSocket技术的应用变得越来越普遍,它可以实现双向实时通信,大大提高了用...
    99+
    2023-12-17
    优化 PHP websocket
  • golang WebSocket与浏览器的集成:实现即时通信
    Golang是一种高效、简单、易于学习的编程语言,而WebSocket是实现即时通信的重要技术。本文将介绍如何在Golang中集成WebSocket,并实现与浏览器的即时通信功能。1. 引言在Web应用开发中,实时通信是一种非常重要的功能要...
    99+
    2023-12-17
    Golang websocket 即时通信
  • 如何在PHP中实现即时通讯功能
    随着社交媒体和移动互联网的迅速发展,即时通讯(IM)已经成为人们生活中不可或缺的一部分。开发者们也开始向自己的网站或应用程序中添加IM功能,以提供更好的用户体验和互动性。PHP作为一种流行的服务器端编程语言,学会如何在其中实现IM功能可以为...
    99+
    2023-05-21
    PHP 实现 即时通讯
  • nodejs如何结合Socket.IO实现websocket即时通讯
    这篇文章给大家分享的是有关nodejs如何结合Socket.IO实现websocket即时通讯的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。为什么要用 websocketwebsocket 是一种网络通信协议,一...
    99+
    2023-06-25
  • PHP和WebSocket: 实现即时通信的完美解决方案
    随着互联网的快速发展,越来越多的应用需要实现即时通信功能,比如在线聊天、实时数据监控等。而传统的 HTTP 协议并不适合这种场景,因为它是基于请求/响应的,必须客户端不断向服务器发送请求才能获取最新数据,这样带来了很大的开销和延迟。为了解决...
    99+
    2023-12-17
    PHP websocket 即时通信
  • PHP和WebSocket: 实现即时通信的完美解决方案
    随着互联网的快速发展,越来越多的应用需要实现即时通信功能,比如在线聊天、实时数据监控等。而传统的 HTTP 协议并不适合这种场景,因为它是基于请求/响应的,必须客户端不断向服务器发送请求才能获取最新数据,这样带来了很大的开销和延迟。为了解决...
    99+
    2023-12-17
    PHP websocket 即时通信
  • SpringBoot怎么实现WebSocket即时通讯
    这篇“SpringBoot怎么实现WebSocket即时通讯”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoo...
    99+
    2023-06-30
  • php 怎么实现即时通讯实例
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php 怎么实现即时通讯实例?仿百度商桥IM即时通讯(Laravel)基于workerman和websocket开发实时聊天系统仿百度商桥IM通讯实现原理及方法:1、...
    99+
    2022-10-27
  • go语言如何实现即时通讯聊天室
    本文小编为大家详细介绍“go语言如何实现即时通讯聊天室”,内容详细,步骤清晰,细节处理妥当,希望这篇“go语言如何实现即时通讯聊天室”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实现的功能:公聊,私聊,修改用户名...
    99+
    2023-06-30
  • 如何利用微信小程序和php实现即时通讯聊天功能
    目录一、PHP7安装Swoole扩展1、自定义安装2、宝塔面板安装PHP swoole扩展二、配置nginx反向代理三、微信小程序socket合法域名配置四、效果演示和代码1、小程序...
    99+
    2022-11-13
  • nodejs结合Socket.IO实现websocket即时通讯
    目录为什么要用 websocketSocket.io开源项目效果预览app.jsindex.html为什么要用 websocket websocket 是一种网络通信协议,一般用来进...
    99+
    2022-11-12
  • C#如何实现串口通信
    这篇文章主要讲解了“C#如何实现串口通信”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#如何实现串口通信”吧!1.基本概念2.前端winForm布局如下(仅仅为了实现功能,布局略丑)3.代...
    99+
    2023-06-29
  • nodejs如何结合Socket.IO实现的即时通讯功能
    这篇文章主要为大家展示了“nodejs如何结合Socket.IO实现的即时通讯功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“nodejs如何结合Socket...
    99+
    2022-10-19
  • vue实现集成腾讯TIM即时通讯
    本文主要介绍了vue实现集成腾讯TIM即时通讯,分享给大家,具体如下: 上图 前言 项目需要做个客服功能,用户端小程序,客服人员web端,于是用到了腾讯的tim 准备工作 在...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作