资源简介
依赖于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版课后答案
- 下一篇:基于声卡的频谱分析仪
相关资源
- uboot到linux logo显示不间断 补丁
- UNIX/LINUX编程实践教程的源码
- Linux任务管理器
- linux应用层的华容道游戏源代码
- ubuntu9.10 可加载内核模块和字符设备驱
- MP3文件ID3v2ID3v2APEv2标签读取
- 操作系统实验——虚存管理实验
- linux下的发包工具sendip
- 尚观培训linux许巍关于c 的笔记和讲义
- 尚观培训linux董亮老师关于数据结构的
- linux 线程池源码 c 版
- linux C 电梯程序练习
- linux下用多进程同步方法解决生产者
- Linux 操作系统实验(全)
- Linux From Scratch 中文手册
- linux 网络实验 ftp程序
- Linux命令大全离线版&在线版
- 操作系统共享内存实验
- dos 下运行Linux 命令--gnu_utils
- linux 0.12内核源代码
- linux简易shell C实现
- linux实验报告及心得体会
- 基于GTK的Linux环境下的简易任务管理器
- linux扫雷游戏代码
- CAN Linux驱动代码
- Linux系统教材
- intel 82579LM 网卡驱动Linux系统版 v1.9.
- SA1110处理器掌上电脑液晶显示器设计
- 基于Linux的串口服务器设计
- Windows下访问LINUX的利器-SSH
评论
共有 条评论