#include "client.h"
#include <QHostAddress>
#include <iostream>
#include<QString>
#include<QTimer>
#include <QSharedMemory>
#include<QChar>
using namespace std;
{
connect(&client, SIGNAL(connected()),this, SLOT(startTransfer()));
connect(&client, SIGNAL(readyRead()),this, SLOT(startRead()));
connect(&client, SIGNAL(disconnected()),this,SLOT(serverdisconnected()));
}
void Client
::start(QString address, quint16 port
) {
client.connectToHost(addr, port);
}
void Client::startRead()
{
//READING DATA INTO CHARACTER ARRAY
char buffer[1024] = {0};
client.read(buffer,client.bytesAvailable());
cout <<"server:"<< buffer << endl;
qint64 si=112;
//WRITING IT INTO BUFFER1
char ch[]="";
qbuffer.write(buffer);
qbuffer.seek(0);
qbuffer.read(ch,si);
cout<<ch<<"\n";
int size = qbuffer.size();
//SHARED MEMORY
QSharedMemory sharedMemory;
sharedMemory.setKey ("552");
if(!sharedMemory.create(size))
{
cout<<"Unable to create shared memory segment.";
exit(0);
}
if (sharedMemory.isAttached())
cout<<"\nAttached.......\n";
cout<<"shared mem segment key :"<<sharedMemory.key().toStdString();
//WRITING INTO SHARED MEMORY
sharedMemory.lock();
char *to = (char*)sharedMemory.data();
const char *from = qbuffer.data().data();
memcpy(to, from, qMin(sharedMemory.size(), size));
sharedMemory.unlock();
//WRITING DATA INTO BUFFER2
sharedMemory.lock();
qbuffer1.setData((char*)sharedMemory.constData(), sharedMemory.size());
sharedMemory.unlock();
sharedMemory.detach();
const char *cha=qbuffer1.data().data() ;
cout<<"\nread data:"<<cha<<endl;
}
void Client::startTransfer()
{
cout<<"connected\n";
string str1;
cout<<"client:";
cin>>str1;
client.write(qPrintable(str));
}
void Client::serverdisconnected()
{
cout<<"\n--------------Server disconnected!!!! try again-------------------\n";
client.close();
exit(0);
}
#include "client.h"
#include <QHostAddress>
#include <iostream>
#include<QString>
#include<QTimer>
#include <QSharedMemory>
#include<QChar>
using namespace std;
Client::Client(QObject* parent)
{
connect(&client, SIGNAL(connected()),this, SLOT(startTransfer()));
connect(&client, SIGNAL(readyRead()),this, SLOT(startRead()));
connect(&client, SIGNAL(disconnected()),this,SLOT(serverdisconnected()));
}
void Client::start(QString address, quint16 port)
{
QHostAddress addr(address);
client.connectToHost(addr, port);
}
void Client::startRead()
{
//READING DATA INTO CHARACTER ARRAY
char buffer[1024] = {0};
client.read(buffer,client.bytesAvailable());
cout <<"server:"<< buffer << endl;
qint64 si=112;
//WRITING IT INTO BUFFER1
QBuffer qbuffer;
char ch[]="";
qbuffer.open(QBuffer::ReadWrite);
qbuffer.write(buffer);
qbuffer.seek(0);
qbuffer.read(ch,si);
cout<<ch<<"\n";
int size = qbuffer.size();
//SHARED MEMORY
QSharedMemory sharedMemory;
sharedMemory.setKey ("552");
if(!sharedMemory.create(size))
{
cout<<"Unable to create shared memory segment.";
exit(0);
}
if (sharedMemory.isAttached())
cout<<"\nAttached.......\n";
cout<<"shared mem segment key :"<<sharedMemory.key().toStdString();
//WRITING INTO SHARED MEMORY
sharedMemory.lock();
char *to = (char*)sharedMemory.data();
const char *from = qbuffer.data().data();
memcpy(to, from, qMin(sharedMemory.size(), size));
sharedMemory.unlock();
QBuffer qbuffer1;
qbuffer1.open(QBuffer::ReadWrite);
//WRITING DATA INTO BUFFER2
sharedMemory.lock();
qbuffer1.setData((char*)sharedMemory.constData(), sharedMemory.size());
sharedMemory.unlock();
sharedMemory.detach();
const char *cha=qbuffer1.data().data() ;
cout<<"\nread data:"<<cha<<endl;
}
void Client::startTransfer()
{
cout<<"connected\n";
QDataStream out;
QString str="hi";
string str1;
cout<<"client:";
cin>>str1;
str=QString::fromStdString(str1);
client.write(qPrintable(str));
}
void Client::serverdisconnected()
{
cout<<"\n--------------Server disconnected!!!! try again-------------------\n";
client.close();
exit(0);
}
To copy to clipboard, switch view to plain text mode
thanks in advance. pls do help me, it is urgent
Bookmarks