资源简介
依赖于Qt4.8.1库,在Ubuntu环境下开发的局域网通信系统,自动侦测上线用户,方便地进行文本聊天和语音聊天。
代码片段和文件信息
#include “DetectOnline.h“
#define DETECTPORT 3500
const QString STR1 = “ONLINE“;
const QString STR2 = “ACK“;
const QString STR3 = “OFFLINE“;
const int INCREASEMENT = 10;
DetectOnline::DetectOnline()
{
//侦听套接字绑定端口
socket_reci.bind((quint16)DETECTPORT);
connect( &socket_reci SIGNAL(readyRead()) this SLOT(socketRead()) );
count = 100;
length = 0;
online_info = new QString*[count];
for(int i=0; i {
online_info[i] = new QString[2];
}
Sendgram(STR1 ““);
}
void DetectOnline :: OffLine()
{
Sendgram(STR3 ““);
}
//DetectOnline :: ~DetectOnline()
//{
// Sendgram(STR3 ““);
//// delete this;
//}
QString DetectOnline :: GetIP()
{
//返回本机ip
QList interlist = QNetworkInterface :: allInterfaces();
foreach(QNetworkInterface interface interlist)
{
if( interface.isValid() && interface.flags() == (QNetworkInterface::IsUp | QNetworkInterface::CanMulticast |
QNetworkInterface::CanBroadcast | QNetworkInterface::IsRunning) )
{
QList entry = interface.addressEntries();
foreach(QNetworkAddressEntry addr entry)
{
if(addr.ip().protocol() == QAbstractSocket::IPv4Protocol)
return addr.ip().toString();
}
}
}
return NULL;
}
QString DetectOnline :: GetName()
{
//返回本机名字
return QHostInfo :: localHostName();
}
QString DetectOnline :: GetBroadcast()
{
//返回当前广播地址
QList interlist = QNetworkInterface :: allInterfaces();
foreach(QNetworkInterface interface interlist)
{
// qDebug() << “flags: “ << interface.flags();
if( interface.isValid() && interface.flags() == (QNetworkInterface::IsUp | QNetworkInterface::CanMulticast |
QNetworkInterface::CanBroadcast | QNetworkInterface::IsRunning) )
{
QList entry = interface.addressEntries();
foreach(QNetworkAddressEntry addr entry)
{
if(addr.ip().protocol() == QAbstractSocket::IPv4Protocol)
{
// qDebug() << “The broadcast address: “ << addr.broadcast().toString();
return addr.broadcast().toString();
}
}
}
}
return NULL;
}
void DetectOnline :: Sendgram(QString str QString ip)
{
QDataStream out(&datagram_send QIODevice :: WriteOnly);
//发上线通知或下线通知
if(str == STR1 || str == STR3)
{
QString myip = GetIP();
QString name = GetName();
QString broadcast = GetBroadcast();
QHostAddress addr = QHostAddress(broadcast);
out << str << myip << name;
socket_send.writeDatagram(datagram_send addr DETECTPORT);
}
//发收到确认
if(str == STR2)
{
QString myip = GetIP();
QSt
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 315 2012-05-19 18:30 基于Linux的语音通信系统_程序\ChatSoftware\ChatSoftware.pro
文件 18725 2012-06-08 18:08 基于Linux的语音通信系统_程序\ChatSoftware\ChatSoftware.pro.user
文件 5519 2012-06-08 18:15 基于Linux的语音通信系统_程序\ChatSoftware\DetectOnline.cpp
文件 1335 2012-06-08 18:11 基于Linux的语音通信系统_程序\ChatSoftware\DetectOnline.h
文件 1235 2012-05-15 10:46 基于Linux的语音通信系统_程序\ChatSoftware\InfoToChat.cpp
文件 419 2012-06-02 13:41 基于Linux的语音通信系统_程序\ChatSoftware\InfoToChat.h
文件 45992 2012-05-15 10:43 基于Linux的语音通信系统_程序\ChatSoftware\liverpool.png
文件 463 2012-06-02 15:29 基于Linux的语音通信系统_程序\ChatSoftware\main.cpp
文件 946 2012-06-02 15:29 基于Linux的语音通信系统_程序\ChatSoftware\MainWin.cpp
文件 501 2012-06-02 15:29 基于Linux的语音通信系统_程序\ChatSoftware\MainWin.h
文件 13623 2012-05-20 20:17 基于Linux的语音通信系统_程序\ChatSoftware\Makefile
文件 486 2012-05-15 19:38 基于Linux的语音通信系统_程序\ChatSoftware\PthreadSound.cpp
文件 527 2012-05-19 18:56 基于Linux的语音通信系统_程序\ChatSoftware\PthreadSound.h
文件 16654 2012-06-08 22:59 基于Linux的语音通信系统_程序\ChatSoftware\SoundChat.cpp
文件 1805 2012-06-08 18:56 基于Linux的语音通信系统_程序\ChatSoftware\SoundChat.h
文件 7643 2012-05-24 18:55 基于Linux的语音通信系统_程序\ChatSoftware\TxChatWin.cpp
文件 1832 2012-06-02 13:41 基于Linux的语音通信系统_程序\ChatSoftware\TxChatWin.h
文件 90025 2012-06-08 22:59 基于Linux的语音通信系统_程序\ChatSoftware-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____\ChatSoftware
文件 17140 2012-06-08 18:58 基于Linux的语音通信系统_程序\ChatSoftware-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____\DetectOnline.o
文件 11792 2012-06-02 14:07 基于Linux的语音通信系统_程序\ChatSoftware-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____\InfoToChat.o
文件 45992 2012-05-15 10:43 基于Linux的语音通信系统_程序\ChatSoftware-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____\liverpool.png
文件 1708 2012-06-08 18:58 基于Linux的语音通信系统_程序\ChatSoftware-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____\main.o
文件 8140 2012-06-08 18:58 基于Linux的语音通信系统_程序\ChatSoftware-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____\MainWin.o
文件 14182 2012-06-02 14:07 基于Linux的语音通信系统_程序\ChatSoftware-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____\Makefile
文件 3414 2012-06-08 18:58 基于Linux的语音通信系统_程序\ChatSoftware-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____\moc_DetectOnline.cpp
文件 5936 2012-06-08 18:58 基于Linux的语音通信系统_程序\ChatSoftware-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____\moc_DetectOnline.o
文件 3231 2012-06-08 18:58 基于Linux的语音通信系统_程序\ChatSoftware-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____\moc_SoundChat.cpp
文件 10808 2012-06-08 18:58 基于Linux的语音通信系统_程序\ChatSoftware-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____\moc_SoundChat.o
文件 3990 2012-06-08 18:58 基于Linux的语音通信系统_程序\ChatSoftware-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____\moc_TxChatWin.cpp
文件 13232 2012-06-08 18:58 基于Linux的语音通信系统_程序\ChatSoftware-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____\moc_TxChatWin.o
............此处省略9个文件信息
- 上一篇:web前端开发技术储久良2015版课后答案
- 下一篇:基于声卡的频谱分析仪
相关资源
- 剖析Linux系统下基于NUMA构建的服务
- linux SPI设备注册和驱动小结
- 周立功PCI CAN卡LINUX驱动ubuntu16.04内核
- 实现Windows与Linux两系统间自由切换
- 在双引导Linux系统上实现OS自动切换
- 如何删除Linux系统后找回Windows的启动
- Linux命令详解,循序渐进Linux
- Linux系统文件命令精通指南(下)
- Linux系统命令及Shell脚本实践指南
- RK3308 LINUX开发者指南(1).pdf
- S3C4510 开发板中uCLinux系统开发
- 嵌入式操作系统的解析
- Linux点阵字库和字库生成器.rar
- Linux-UNIX系统编程手册上、下册中文版
- 基于ARM的电子相册源码含动态库可运
- PSFTP.EXE 工具
- 如何实现Linux与windows文件互传
- Linux内核函数Start_kernel()的功能
- 一只老鸟的嵌入式ARM学习心得
- cximage的linux版本源码
- yaf-2.1.17.tgz
- IBM eServer xSeries 445 EXP400在Linux下的双
- 如何在本地无光驱软驱时通过PXE远程
- Linux操作系统下配置无密码的RSH访问
- 如何利用mdadm在Linux中配置RAID
- db2 v9.5 linux 许可证
- linux telnet服务安装包
- SUSE Linux Enterprise——助力曙光高
- 运行LINUX的中高端HP INTEGRITY服务器
- lsoflist open files命令
评论
共有 条评论