• 大小: 186KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-11-20
  • 语言: 其他
  • 标签: 语音通信  Linux  

资源简介

依赖于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个文件信息

评论

共有 条评论