#include "server.h"
#include "ui_server.h"
#include<QHostAddress>
#include<QHostInfo>
Server::Server(QWidget *parent) :
QWidget(parent),
ui(new Ui::Server)
{
ui->setupUi(this);
this->port=10086;
this->server=NULL;
ui->let_IP->setText(GetIpv4Address());
ui->let_Port->setText(QString::number(port));
ui->let_IP->setEnabled(false);
ui->let_Port->setEnabled(false);
ui->let_Name->setText("Server");
ui->btn_Start->setEnabled(false);
ui->btn_Stop->setEnabled(false);
ui->btn_Send->setEnabled(false);
connect(ui->btn_Listen,SIGNAL(clicked()),this,SLOT(slotListen()));
connect(ui->btn_Start,SIGNAL(clicked()),this,SLOT(slotStart()));
connect(ui->btn_Stop,SIGNAL(clicked()),this,SLOT(slotStop()));
}
Server::~Server()
{
emit ui->btn_Stop->click();
delete ui;
}
QString Server::GetIpv4Address()
{
QString localHostName = QHostInfo::localHostName();
QHostInfo info = QHostInfo::fromName(localHostName);
foreach(QHostAddress address,info.addresses())
if(address.protocol() == QAbstractSocket::IPv4Protocol)
return address.toString();
}
void Server::slotListen()
{
server=new Listener(port,this,ui->let_Name->text());
connect(this,SIGNAL(listening()),this,SLOT(slotListening()));
connect(server,SIGNAL(timeout(qint64)),this,SLOT(slotTimeout(qint64)));
emit listening();
}
void Server::slotConnected(QString name)
{
ui->lbl_Status->setText("You are speaking with "+name);
ui->btn_Start->setEnabled(true);
ui->btn_Stop->setEnabled(true);
ui->btn_Send->setEnabled(true);
ui->let_Name->setEnabled(false);
connect(ui->btn_Send,SIGNAL(clicked()),this,SLOT(slotSendWords()));
connect(this,SIGNAL(sendWords(QString)),server->client,SLOT(slotSendWords(QString)));
connect(this,SIGNAL(getWords(QString)),this,SLOT(slotGetWords(QString)));
}
void Server::slotListening()
{
ui->lbl_Status->setText("Listening...");
ui->btn_Start->setEnabled(false);
ui->btn_Stop->setEnabled(false);
ui->btn_Send->setEnabled(false);
}
void Server::slotStart()
{
int dev=1;
if (ui->rbn_Out->isChecked()==true)
dev=0;
server->Start(dev);
}
void Server::slotStop()
{
server->camThread->terminate();
server->camThread->wait();
server->camThread->stop();
}
void Server::slotDisconnected()
{
ui->lbl_Status->setText("No Connection");
ui->btn_Start->setEnabled(false);
ui->btn_Stop->setEnabled(false);
ui->btn_Send->setEnabled(false);
}
void Server::slotGetWords(QString words)
{
ui->lwt_Words->addItem(words);
}
void Server::slotSendWords()
{
emit sendWords(ui->let_Name->text()+":"+ui->let_Words->text());
emit getWords(ui->let_Name->text()+":"+ui->let_Words->text());
ui->let_Words->clear();
}
void Server::slotShowImage(QImage image)
{
ui->lbl_Image->setPixmap(QPixmap::fromImage(image));
}
void Server::slotTimeout(qint64 size)
{
ui->lbl_Speed->setText("Speed:"+QString::number((int)size/1024)+"kb/s");
size=0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Server&Client.rar (30个子文件)
Server&Client
ImagePassClient
client.h 858B
ImagePassClient.pro 549B
imageformats
qjpegd4.dll 1.45MB
qjpeg4.dll 282KB
client.cpp 3KB
socket.h 623B
client.ui 6KB
ImagePassClient.pro.user 28KB
main.cpp 185B
videodevice.h 424B
camthread.cpp 608B
camthread.h 518B
socket.cpp 2KB
videodevice.cpp 509B
ImagePassServer
ImagePassServer.pro.user 28KB
server.ui 7KB
server.h 760B
imageformats
qjpegd4.dll 1.45MB
qjpeg4.dll 282KB
listener.cpp 1KB
socket.h 560B
ImagePassServer.pro 587B
main.cpp 206B
videodevice.h 431B
camthread.cpp 604B
server.cpp 3KB
listener.h 622B
camthread.h 514B
socket.cpp 1KB
videodevice.cpp 509B
共 30 条
- 1
Victor_YXL
- 粉丝: 4
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页