Qt 局域网聊天工具 私聊 5C

想用Qt做一个局域网聊天工具 实现私聊功能 求提供实现私聊功能的流程思路

0

2个回答

局域网的话用UDP Socket编程就好了虽然丢包率较高
参考一下这个源码,
//发送方
#define _CRT_SECURE_NO_WARNINGS /* VS2013,2015需要这一行 */
#include
#include

#include "osapi/osapi.h"
#include "Endian.h"

int main()
{
printf("发送方: port=9000 ...\n");

OS_SockAddr local("127.0.0.1", 9000);
OS_UdpSocket sock;
sock.Open(local, true);

while(1)
{
    // 输入回车后,测试开始
    printf("Press enter to send: ");
    getchar();

    // 发送测试数据
    //char buf[] = "hello";
    //sock.SendTo(buf, 5, OS_SockAddr("127.0.0.1", 9001));

    unsigned int a = 0x12345678;
    unsigned char bytes[4]; // be
    itob_32be(a, bytes);

    sock.SendTo(bytes, 4, OS_SockAddr("127.0.0.1", 9001));

}

// 关闭socket
sock.Close();
return 0;

}

\接收方
#define _CRT_SECURE_NO_WARNINGS /* VS2013,2015需要这一行 */
#include
#include

#include "osapi/osapi.h"
#include "Endian.h"

/* UDP socket 测试
接收方: 9001
*/

// 按十六进制,将buf中的数字按字节打印显示
void print_bytes(void* buf, int n)
{
unsigned char* bytes = (unsigned char*) buf;
for(int i=0; i<n; i++)
{
printf("%02X ", bytes[i]);
if( (i+1)%16 == 0) printf("\n");
}
}

int main()
{
printf("接收方: port=9001 ...\n");

OS_SockAddr local("127.0.0.1", 9001);
OS_UdpSocket sock;
sock.Open(local, true);

while(1)
{
    unsigned char buf[128];
    OS_SockAddr peer; // 对方的地址
    int n = sock.RecvFrom(buf, 128, peer);

    if(n <= 0)
    {
        break;
    }

    // 按字节打印接收到的数据
    printf("Got :");
    print_bytes(buf, n); 

    unsigned int a = btoi_32be(buf);
    printf("Got a number: %08X \n", a);
}

// 关闭socket
sock.Close();
return 0;

}

0

一个最简单的集中转发模型:
1.客户端登陆服务器,服务器维护与每个客户端的连接、客户端名字等信息
2.有聊天请求,根据双方的名字来配对,比如张三想和李四聊,那就把这个请求发给李四的socket,如果李四接受,那配对成功,后续就可以根据这个配对信息转发两边的消息。这需要你定义一个交互协议,以便在同一个socket上传输多个聊天者的信息。
3.服务器在这中间充当的是传话者的角色。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
QT实现简单的局域网聊天工具
具有登陆界面的聊天工具,客户端和服务端两个工程。。。。。。。。
QT之局域网聊天实现
功能: 1.用户注册登录功能 2.群聊功能 3.私聊功能 客户端代码: //tcpclient.h #ifndef TCPCLIENT_H #define TCPCLIENT_H #include #include #include //#include "userinterface.h" namespace Ui { class TcpClient; } c
Qt局域网聊天(群聊和私聊)
本次设计是一个简易的局域网聊天,功能设计主要分为群聊和私聊两部分,每部分都支持基础聊天以及文件传输功能。参考了《Qt及Qt Quick开发实战精解》中群聊实例,在群聊的基础设计了私聊这部分内容以及其他一些功能。下面我们就介绍下整体的设计以及实现。 设计时这里用的是主机的ip地址,可使用多台主机运行程序进行测试,确保多台主机连接同一局域网,并禁用本地连接以及其他的IP地址,保证只有本台主机的局域网...
Qt实现的局域网通信软件(仿QQ版本)
Qt5实现的局域网通信工具,支持公网。类似软件百度一大把,但是还是想整理一份属于自己的专属QQ。支持跨平台。   1目的             本文主要介绍利用Qt实现局域网通信的主要实现流程和一些技术知识点的设计说明。 2总体设计 2.1 功能特点 这款局域网通信软件是基于Qt的实现的C/S架构通信,通信功能全部采用QTcpSocket完成的。该软件分为2部分,一部分是服务端,一...
Qt局域网聊天工具
Qt局域网聊天工具,使用qt开发的,支持群聊和私聊
Qt实现的简易局域网聊天室的Demo
采用Qt实现的基于TCP协议的局域网聊天室的简单功能demo,详情可以参考我的博客:http://blog.csdn.net/mahabharata_
基于TCP和Socket的Linux环境下简易聊天工具设计
主要实现一个Linux下的局域网聊天工具的设计。 该设计主要分为两部分,客户端部分和服务器端部分。 运行服务器端程序可以和任意一个运行了的客户端程序的进行通信,通信内容能够通过终端显示出来。两个部分都使用C语言,利用vim编辑器,通过tcp,套接口编程实现相关功能, gcc调试器调试成功. 1. 客户端代码: #include&amp;amp;lt;stdio.h&amp;amp;g...
基于TCP通讯的局域网内聊天(qt实现)
Qt工程文件包括一个服务器,一个客户端,上交源码,可以实现在同一局域网下的通讯,运行两个客户端和一个服务器,便可实现在同一网段下的聊天
vb做的局域网聊天程序(源码)
用vb做的vb做的局域网聊天程序,好!!!!!!!
Qt: 基于QTcpSocket的聊天程序
Qt: 基于QTcpSocket的聊天程序。
基于Qt的局域网即时通信系统(聊天软件)
以前网上找到的一份源代码,但是忘记下载链接了。。我自己完美运行,所以上传分享给大家。供大家参考,互相讨论学习。
完整项目之QT5开发源码——聊天工具(MyselfQQ)
QT5开发源码——聊天工具(MyselfQQ),内部有框架逻辑等全面的功能实现。方便借鉴和学习!
基于Qt的QQ局域网聊天源码
参考多方资料,网上搜了又搜,结合了众多网友的技术。能传文件,换背景皮肤。支持Enter发送消息,文本区域滚动条自定义样式,聊天窗口边界带阴影。能更改字体、字体大小、粗体、斜体、下划线及字体颜色,能保存聊天记录,清空聊天记录。---参考书籍《Qt及Qt Quick开发实战精解》
简单的局域网聊天工具源代码
简单的局域网聊天工具源代码,VB.NET源代码。可实现局域网内计算机的图片、消息、文件等。
Qt5实例:Qt版聊天软件
Qt5综合实例:采用Qt5来开发一个类似与腾讯QQ软件那样的网络聊天程序,利用这个软件可以在局域网中不同主机用户间进行聊天会话。
基于Qt聊天界面设计
使用数据库编写的登录注册界面 发送消息是可修改字体大小 字体样式 显示本地主机的名称和IP
基于Qt的QQ局域网聊天
近几日闲来无事,便想做个东西玩玩,敲敲代码,取取经,玩玩Qt,做点小Demo。参考多方资料,结合了众多网友的技术,做了一个基于Qt的QQ局域网聊天软件。 源码下载:点击下载源码 GithubPage:https://zhangquan1995.github.io 基本功能: - 文件传输 - 自定义菜单按钮 - 更换背景皮肤 - 支持Enter键发送消息 - 文本区域滚动...
MFC——局域网聊天室(改进)
    之前自己用MFC做了个简易的聊天室,但是功能不多,画面布局什么的也感觉不是太好,而且还存在不少BUG,所以最近又重新拾起过去的代码,做了不少的改动并修复了所有的错误,修改后的项目的通信原理还是和之前一样:点击打开链接,所以就不介绍了。 登陆:下拉框自动显示已登陆过的MCQ账号,和下面所有界面一样,给按钮添加了背景色,可实现enter快捷键登陆,修复了忘记密码功能中的BUG 注册:注...
C++ 基于CSocket的网络聊天软件(1)
这阵子因为课程要求学了一点C++,于是就做了一个基于CSocket的网络聊天软件。 具备的功能: (1)聊天室服务器端能够接收多个客户端的连接请求 (2)聊天室服务器端具有处理“公聊”和“私聊”的功能;“公聊”所有客户端可见,私聊只有指定的“客户”可见 (3)聊天室客户端具有登陆对话框,通过输入用户名与服务器IP地址登陆到聊天室服务器端 (4)能够和聊天室的任何在线客户聊天,收发聊天信息,
linux下用qt实现qq聊天的工具
代码实现了简单的qq聊天功能,利用Qt工具实现了简单的qq聊天功能
[Qt] 基于Tcp协议的聊天室实现(Chat Room 局域网通信)
时间:2017年6月21日   一、写在前面:         平时做图形学的东西多一些,虽然一直对网络编程很感兴趣,但是没有什么机会去尝试一下。最近正好赶上期末的课程实习,然后就参考Qt官方的 Network Programming References,写了一个局域网群聊软件,还算比较好看吧~ ,因为是自己的提交的作业,所以比较简陋将就一下,主要功能有:         (1) 用户注...
基于Qt的局域网即时通信系统(聊天软件demo)
这是一本qt书籍提供的源代码,局域网内,采用udp通信,文件发送模块采用tcp。功能比较少,对聊天系统不清楚的网游,可以下载看看,比较容易入手掌握。
多个视图类之间的通讯问题
作者:朱金灿来源:http://blog.csdn.net/clever101         一般的应用程序框架类之间通讯我就不说了。这里这种说一种多个视图类之间的通讯方法。比如你建了一个多文档工程,视图类为Aview,添加了一个菜单“新建视图B”。然后你单击这个菜单可以生成一个视图B,对应的类为Bview.那么Bview怎么和Aview通讯呢?一种比较直接的想法是采用全局变量,但是全局变量不容
Qt实现P2P局域网聊天软件
基于P2P的局域网聊天软件,计网课设
基于QT的局域网聊天系统
qt实现的可在局域网聊天工具
终端下的聊天工具
学到的一些可以在终端下聊天的工具 环境为centos 6.7 x86-64位的系统 他们分别是wall, write, talk,他们都可以给在同一主机上登陆的用户发送消息,不过这些命令全部都跟mesg的设定有关,当这个命令的值设置为y时,表示可以接受消息,否则表示不接收消息。一、命令的释列 1.wall命令的使用方法   直接在wall的后面跟上用引号引起来的字符串就可以了
基于QT的局域网聊天软件开发(开题报告)
基于QT与C++的局域网聊天软件开发的开题报告,希望可以帮到大家。
一个基于QT简单的仿QQ聊天软件
基于linux Qt的仿QQ聊天简单对话框
linux下的局域网聊天软件linpop
这是我在大连东软集团实习时做的项目,一个基于linux下的局域网聊天软件,采用了C/S结构,界面别具一格,并实现了文件传输功能,能实现消息离线传送、发送表情、文件传输等功能,开发工具为codeblocks和glade。
基于QT的局域网聊天
1.DrawerDrawer.h#ifndef DRAWER_H #define DRAWER_H #include &amp;lt;QToolBox&amp;gt; #include &amp;lt;QToolButton&amp;gt; #include &quot;Widget.h&quot; class Drawer : public QToolBox { Q_OBJECT public: Drawer(QWidget *p...
基于QTsocket的局域网聊天室
利用QT图形编程弄出聊天室界面,可以选择IP,通过socket将客户端和服务端连接起来,支持实时发送接收中文。
qt通过Tcp和SQL实现仿qq的聊天软件
此项目较难,不建议初学者下载 资源下载: 点击打开链接 项目流程图: 程序运行效果: 客户端: 1.引导界面,用于加载初始化图片资源等 2.登录界面,包含判断服务器是否开启,网络是否可用,数据库信息核对 3.注册和找回密码 4.主界面及退出 5.最关键之聊天界面 服务端: 数据库:伴随服务端生成 ...
一个java局域网聊天的程序
一个java局域网聊天的程序 有服务器端 和客户端两个界面,运行需要加上自己的ip地址,端口可以随意,但是客户端端口,和服务器端口要一样,然后就可以几个人一块聊天了 简单贴几个代码吧   Client.java  客户端代码 package chat; import java.awt.BorderLayout;//布置容器的边框布局 import java.awt.Color; im
QT实现模仿QQ聊天记录(一)
最近在做一个linux下可用的局域网即时聊天工具,使用QT开发。之前用js开发的聊天工具好多内容用不上(有空时候也整理下html下的消息记录显示)没有了html华丽的渲染,刚开始稍微有点吃力,好在原理相通,变换下思路,总算完美解决消息记录搜索、跳转到指定位置的难题,话不多说,先上样图。 功能如上:可以发送文字到上面显示区域,可以搜索关键字,可以按照日期查看,记录多还可以进行翻页显
Java:Java编程实现互联网大佬局域网聊天GUI界面+Socket通讯
Java实现互联网大佬之间局域网聊天功能
局域网聊天工具(C++源码)
这是一个供局域网聊天的工具,包含c++的源码,分享给一些学习网络编程的人
Python 实现简单的局域网聊天
 import socket   Sockin = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)        #新建socket Sockin.bind(('192.168.10.5',23000))   #socket绑定该主机的ip和端口 while True:             #循环中执行收发功能     te
基于Linux的简易局域网聊天工具
可以实现局域网内同网段IP的实时通讯,同时支持多人聊天,本聊天软件采用Linux终端输入输出,可以自行添加UI实现更加完善的聊天工具!
毕业论文C语言
用C语言编写局域网聊天工具,可实现群聊,私聊,发送文件等功能!!!
QT下聊天工具
基于QT的聊天工具,可实现群聊私聊,运用tcp/ip协议通信,分服务器和客户端