首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

C语言实现简易聊天室

C语言聊天室 基于 tcp 实现群聊功能,本项目设计是在「windows环境下基于套接字(Socket)和多线程编程」进行开发的「简易聊天室」,实现了群聊功能,在VC6.0和VS2019运行测试无误。...本项目是基于事件内核对象实现的线程同步,事件内核对象是一种抽象的对象,有受信和未授信两种状态,通过等待WaitForSingleObject实现线程同步。...「缺陷:非高并发,对资源的利用不高,下周介绍Linux网络编程实现的聊天室,可能有新功能,敬请期待..」...「源代码后台发送关键字windows聊天室获取」 socket网络编程方法可参考上期 C语言实现web服务器 多线程以及线程的同步可通过「阅读全文」在我的个人网站里面查阅。...关键字【聊天室】 -- End --

3.4K10

Linux环境下通过GDB调试C项目实战

通过GDB调试找到程序的bug 请查看位于https://github.com/xmu-Linux101/Linux101/tree/201720182/experiments/gcc-5-gdb的代码...我们可以看到文件的目录结构是一个典型的C语言项目架构:Makefile,include文件夹下是预先定义好的库函数,粗看文件结构应该可以想到array.c是一个具体实现函数功能的文件,main.c则是总的主函数...,进行测试编写的代码功能是否正常执行 在找这个项目的bug之前我们必须确认一下Makefile的内容是否有逻辑错误或者语法错误,这样才能保证我们后期的调试没有问题 输入vi Makefile,我们看到:...array.o可执行文件并编译array.c生成array.o文件 main:清除已经存在的main.o可执行文件并编译mian.c生成main.o文件 main_optimize:编译mian.c生成...访问之后程序会破坏内存原有数据,导致缓冲区泄露,并且发生不可预知的错误(在这里则是将i的内存地址和a[10]绑定起来,相当于每次修改a[10]的时候就顺便将i置为0,这样就会导致死循环) 总结来说:这个项目运行起来没有问题

5.3K50

win10使用WSL编译Linux C++项目

为什么要在windows下编译Linux项目?...开启后就是个标准的linux程序了,可以看到系统的 C D E等盘都被挂载到了/mnt下面。 如何编译代码? 1,设置源和代理,修改系统配置 WSL默认带的包很少,编译需要的东西很多都要自己安装。...2,下载安装相关的组件: 不同的项目需要的编译工具,以我们项目为例: 我们需要gcc4.8,所以: sudp apt install gcc-4.8 sudp apt install g++-4.8...再做一下软链接: cd /usr/bin ln -s gcc-4.8 gcc ln -s g++-4.8 g++ ln -s gcc-4.8 cc ln -s g++-4.8 c++ 可能需要root...ssh工具(比如putty、secureCRT等)连接到ubuntu,这里给一个ubuntu下面开启sshd的方法,参考:https://hbaaron.github.io/blog_2017/%E5%9C%

9.5K90

Linux 下makefile实战 ——编写真实的C项目

Linux 下真实的C项目设计 文件目录说明 include 存放自己设计的.h头文件之所在 include/stack.h 栈所使用的头文件。文件中已经定义出其包含的功能函数。...具体请查看文件注释 stack.c 栈的功能函数的实现文件。目前为空文件。 main.c 一个简单的主程序,调用自定义栈的功能测试入栈、出栈的功能。 Makefile make的控制文件。...实现Makefile 实现make命令完成所有编译、链接工作 实现make clean命令可以恢复代码为原始状态 运行结果 在windows下打开linux shell: ?...我们看下makefile的内容: main:main.o my_stack.o gcc main.o my_stack.o -o main main.o:main.c gcc -c main.c my_stack.o...:my_stack.c gcc -c my_stack.c clean: if [ -e main ] ; then rm main ; fi if [ -n "ls *.o >/dev/null

1.2K50

chat集群聊天室项目 代码+讲解(一):网络模块

---- 文章目录 前言 项目简单架构图 1.0版本:单服务器 2.0版本,横向扩充,负载均衡 3.0版本,调优 代码 讲解 setConnectionCallback setMessageCallback...前言 准备翻新一下我那个C++集群聊天室项目的讲解博客,那个系列刚开始讲的还比较有点耐心,后面就直接堆代码了,大家互相理解理解,那确实有点触碰到我目前的极限了,能写下来就不错了。...勉强把项目整好之后我就去看muduo了(好像还有最后一篇《TCPServer》还没放出来哈,真的是因为VScode坏了,然后又有一件不得不做的事情拖住了几天时间。)...目前已经粗略的捋了一遍muduo的源码,这周就把项目和源码两个系列好好的整理出来,再背背八股文,把以前的基础找回来,准备面试了。 然后,祝我大莆田无恙吧,这次的事情是突然了点。...github地址:chat ---- 项目简单架构图 1.0版本:单服务器 2.0版本,横向扩充,负载均衡 3.0版本,调优 时间原因还没写。

1.4K21

仿微信的网络聊天室项目开发【完整源码讲解】

最近在进行网络通信的学习时,突发奇想就想模仿微信做一个简单的网络聊天室,所以今天在这里记录一下开发过程。 先看一波效果图: ?...总体开发思路 网络聊天室的开发是基于TCP/IP协议而建立,通过指定的IP地址和端口号进行实时的通信,关于使用TCP/IP协议通信的基础学习,可以看我的这篇博客“Java利用TCP协议实现客户端与服务器通信...首先记录一下聊天室项目开发的总体思路: 设计并完成客户端和服务器的交互界面 建立各个按钮的内部监听类或监听函数 客户端和服务器基于TCP/IP协议建立通信 分别编写客户端和服务器通信线程...,对双方消息的发送和接收进行监听 编写通信断开函数,实现网络通信的可断开 好了,以上五个步骤是主要的开发过程,其中还有很多需要编写和注意的小细节,接下来分享一下网络聊天室项目的详细开发思路,同时附上对应的源码...; break; } } } }); 设置服务器通信自由断开 在以上完成之后,我们的聊天室就可以实现双向的实时通信了,但是这也仅仅是通信,就像我们在使用微信的时候,还有对方下线的情况出现对吧

1.4K20

C++搭建集群聊天室(一):安装boost库

项目说明 没有在Windows下开发的打算,代码也是用vim直接干,所以本系列博客是基于Linux平台的开发。 我用的是CentOS8,别的也可以,细微差别而已。 全程root权限下去玩。...文章目录 项目说明 前期资源下载 安装开始 验证是否安装成功 前期资源下载 首先你可以去官网下,也可以在我这边下,提取码:xxf0 如果不知道怎么把文件传输到Linux上的小伙伴建议直接在Linux里面下载...---- 在开始编译boost之前,建议先将依赖包都装一遍: yum -y install gcc gcc-c++ python python-devel libicu libicu-devel zlib...依赖包【 libicu libicu-devel 】 提示信息【error: no command provided, default command 'g++' not found】,依赖包【 gcc-c+...编译完成后,会有如下打印: The Boost C++ Libraries were successfully built!

71630

基于 SpringBoot + Vue 框架开发的网页版聊天室项目

项目介绍 微言聊天室是基于前后端分离,采用SpringBoot+Vue框架开发的网页版聊天室。...项目预览图 客户端界面-群聊主界面 客户端界面-私聊界面 管理端界面-用户管理 管理端界面-群聊消息管理 部署流程 clone 项目到本地 在本地 MySQL 中创建一个空的数据库 subtlechat...提前准备好Redis,在项目中的mail模块的 application.yml 文件中,将 Redis 配置改为自己的。...在 IntelliJ IDEA 中打开subtlechat项目,先启动 mail模块,再启动web模块。 启动vue项目。...备注 项目分为前后台两个项目,除此之外,为了简化部署,搭建了一个mini版本,取消了分模块,删去了邮件发送部分的RabbitMQ、Redis的使用。如果仅仅是为了演示功能,后台可直接部署mini版本。

1.2K20

C++搭建集群聊天室(二):安装muduo网络库

muduo网络库我就不多做介绍了,一个基于reactor反应堆模型的多线程C++网络库,陈硕大神的作品,不了解的小伙伴可以自行了解一下。 也可以去GitHub上自行下载。...muduo库是基于boost开发的,所以需要先在Linux平台上安装boost库,安装boost库的方法:搁这儿呢 此外,muduo的编译是通过CMAKE来执行的,所以我们还需要安装CMAKE。...CentOS下: yum install cmake 确保那个压缩包已经在Linux下了吗?我们开始。.../lib mv * /usr/local/lib/ 拷贝完成以后使用muduo库编写C++网络程序,不用在指定头文件和lib库文件路径信息了,因为g++会自动从/usr/include和/usr/local...EchoServer-0.0.0.0:8888#1 echo 12 bytes, data received at 数字一串 - muduo_test.cpp:53 到此,muduo安装成功,能够正常进行C+

1.3K40
领券