資源簡介
依賴于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:?“?<????????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:?“?<????????????????????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?<????????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版課后答案
- 下一篇:基于聲卡的頻譜分析儀
評論
共有 條評論