本文整理汇总了C++中Sock::getsDesc方法的典型用法代码示例。如果您正苦于以下问题:C++ Sock::getsDesc方法的具体用法?C++ Sock::getsDesc怎么用?C++ Sock::getsDesc使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sock
的用法示例。
在下文中一共展示了Sock::getsDesc方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Sock
void *threadGet(void *par)
{
struct BIS *pp = (struct BIS*) par;
Message m;
sleep(2);
Sock *sock = new Sock(SOCK_STREAM, 0);
SockDist *host = new SockDist(pp->ps->adresse, (short)pp->port);
if (connect(sock->getsDesc(),(sockaddr*)host->getAdrDist(), host->getsLen()) < 0)
{
perror("erreur connection");
}
int sockBis = sock->getsDesc();
char octet;
recv(sockBis, &octet, 1, 0);
if (octet == '0')
{
cout << "fichier inexistant" << endl;
return NULL;
}
cout << "début du transfert" << endl;
bool terminer = false;
struct timeval tt;
char buffer[TAILLE_BUFFER_MAX];
while (!terminer)
{
int nbr = 0;
int ret = 0;
fd_set readfs;
tt.tv_sec = 5;
tt.tv_usec = 0;
FD_ZERO(&readfs);
FD_SET(sockBis, &readfs);
ret = select(sockBis + 1, &readfs, NULL, NULL, &tt);
if (FD_ISSET(sockBis, &readfs))
{
nbr = recv(sockBis, buffer, TAILLE_BUFFER_MAX, 0);
pp->ps->fichierRecu.write(buffer, nbr);
}
if (ret <= 0)
{
pp->ps->fichierRecu.close();
close(sockBis);
delete sock;
delete host;
terminer = true;
cout << "fin de Get" << endl;
}
}
}
示例2: sleep
void *threadUpload (void * par)
{
ParamSocket *ps = ((ParamSocket*)(par));
//char messageRecu[TAILLE_MESSAGE_MAX];
// On attends que le serveur recoive notre message de depart
sleep(1);
Sock *sock = new Sock(SOCK_STREAM, 0);
SockDist *host = new SockDist(ps->adresse, (short)PORT_PUT);
if (connect(sock->getsDesc(),(sockaddr*)host->getAdrDist(), host->getsLen()) < 0)
{
perror("erreur connection");
}
int sockBis = sock->getsDesc();
char *buffer = new char[TAILLE_BUFFER_MAX];
bool continuer=true;
cout << "départ" << endl;
while(continuer)
{
Message m;
m.option = PUT;
m.ctrl = ENCOURS;
if(ps->fichierEnvoye.good())
{
ps->fichierEnvoye.read(buffer, TAILLE_BUFFER_MAX);
int nbrCaracteresLu = ps->fichierEnvoye.gcount();
if (nbrCaracteresLu < 512)
{
cout << "fini" << endl;
m.ctrl = FIN;
continuer = false;
}
m.taille = nbrCaracteresLu;
//strcpy(m.data, buffer);
for(int i=0;i<nbrCaracteresLu;i++)
m.data[i] = buffer[i];
send(sockBis, buffer, nbrCaracteresLu, 0);
}
}
delete buffer;
delete sock;
delete host;
ps->fichierEnvoye.close();
pthread_exit(NULL);
}
示例3: main
int main(int args,char* argv[]) {
int port, desCurrentClient, DesServer, localBR, nb_connected_client(0);
struct sockaddr_in brCv;
socklen_t sizeLocalBr;
int nb_client = 5;
client_t listeClientsEntreprise[nb_client];
// On définit un pointeur sur la structure data
data_t data = (data_t)malloc(sizeof(data_t));
data->ptr_client_list = listeClientsEntreprise;
data->nb_connected_client= &nb_connected_client;
// Test création client
client_t testcli = (client_t) malloc(sizeof(Client));
sprintf(testcli->name,"tintin");
sprintf(testcli->password,"milou");
testcli->claimed_report=false;
testcli->received_report=0;
testcli->controller=false;
client_t testcli2 = (client_t) malloc(sizeof(Client));
sprintf(testcli2->name,"bob");
sprintf(testcli2->password,"boby");
testcli2->claimed_report=true;
testcli2->received_report=0;
testcli2->controller=false;
client_t testcli3 = (client_t) malloc(sizeof(Client));
sprintf(testcli3->name,"tutu");
sprintf(testcli3->password,"boby");
testcli3->claimed_report=true;
testcli3->received_report=1;
testcli3->controller=false;
client_t testcli4 = (client_t) malloc(sizeof(Client));
sprintf(testcli4->name,"beber");
sprintf(testcli4->password,"boby");
testcli4->claimed_report=false;
testcli4->received_report=2;
testcli4->controller=false;
client_t testController = (client_t) malloc(sizeof(Client));
sprintf(testController->name,"haddock"); // enfin lui !
sprintf(testController->password,"boby");
testController->controller=true;
testController->received_report=0;
listeClientsEntreprise[0] = testcli;
listeClientsEntreprise[1] = testcli2;
listeClientsEntreprise[2] = testcli3;
listeClientsEntreprise[3] = testcli4;
listeClientsEntreprise[4] = testController;
data->nb_client = &nb_client;
if(args == 2) {
cout << "N° port saisi : "<< argv[1] << endl;
port = atoi(argv[1]);
}
else {
cout << "Numéro du port du server : ";
cin >> port;
}
/* Création de la BR Publique */
Sock* server = new Sock(SOCK_STREAM,(short)htons(port),0);
if(server->good()) {
cout << "Server lancé !" << endl;
DesServer = server->getsDesc();
localBR = server-> getsRetour();
sizeLocalBr = sizeof(brCv);
}
else {
perror("Erreur employee->des_client()");
exit(EXIT_FAILURE);
}
if(listen(DesServer,10) == -1)
perror("Erreur listen()");
while(1)
{
/* Acceptation de la connexion du Client */
desCurrentClient = accept(DesServer,(struct sockaddr *)&brCv,&sizeLocalBr);
if(desCurrentClient == -1)
perror("Erreur accept ");
else
{
pthread_t idThread;
cout<< endl <<endl << " <=== Nouveau Client accepté ===>" << endl;
data->descripteur = desCurrentClient;
if(pthread_create(&idThread,NULL,th_new_client,(void*)data) != 0) {
perror("Erreur création th_new_client");
}
}// End if Client accepté
} // End loop
pthread_mutex_destroy(&mutex);
//.........这里部分代码省略.........