begin process at 2012 02 12 18:00:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

accept bloquant TCP


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

accept bloquant TCP

lundi 29 mars 2004 à 11:54:31 | accept bloquant TCP

sena


salut,

je voudrais, dans une communication TCP, que mon accept soit non bloquant !

Que puis-je faire ???
j'utilise setsockopt( sock, SOL_SOCKET, SO_RCVTIMEO, (const char *)&timeStamp, sizeof(timeStamp)); pour que rcv et connect soit non bloquant,
mais ca marche pas pour accept !

Que dois-je utiliser??
Jai vu qu'il y avait un truc qui sappelle select(),
mais les threads ca serait mieux ou pas?

Ma question est simple : select() ou thread ?

Merci beaucoup,
Sena
lundi 29 mars 2004 à 12:37:24 | Re : accept bloquant TCP

petitchech


salut je te conseil select(),
moi je l'utilise est sa marche nickel.
lundi 29 mars 2004 à 12:44:42 | Re : accept bloquant TCP

sena

c'est cool je te remercie

ca te derangerai de me filer ton bout de code qui concerne le select et le accept stp? parske ce matin jai du mal...

ca serait hyper sympa.

ciao,
sena?
lundi 29 mars 2004 à 12:49:23 | Re : accept bloquant TCP

petitchech


#include <stdio.h>
#include <winsock2.h>

#pragma comment(lib,"ws2_32.lib")

SOCKET Sserv;
SOCKET Satt;

SOCKADDR_IN sockaddrserv;
SOCKADDR_IN sockaddrclient;


int sockaddrclientsize = sizeof (struct sockaddr_in);
int clientmsgsize;
char Buffer[1024];
int port = 6666;

fd_set Ref;
fd_set Test;

void main()
{
WSADATA wsa;
WSAStartup(MAKEWORD(2,0),&wsa);

sockaddrserv.sin_family=AF_INET;
sockaddrserv.sin_addr.s_addr=INADDR_ANY;
sockaddrserv.sin_port=htons(port);

FD_ZERO(&Ref);
FD_ZERO(&Test);

Sserv = socket(AF_INET,SOCK_STREAM,0);
bind(Sserv,(SOCKADDR*)&sockaddrserv,sizeof(sockaddrserv));
listen(Sserv,0);

FD_SET(Sserv,&Ref);
Test = Ref;

for(;;)
{
select(0,&Test,NULL,NULL,NULL);


if(FD_ISSET(Sserv,&Test))
{
Satt = accept(Sserv,(struct sockaddr *)&sockaddrclient,&sockaddrclientsize); // accept le client
FD_SET(Satt,&Ref) ;

printf("\nNouveau client\n");

sprintf(Buffer,"Hello\r\n");
send(Satt,Buffer,strlen(Buffer),0);
}
else
{

clientmsgsize = recv(Test.fd_array[0],Buffer,sizeof(Buffer),0);
// Reception du message


if(clientmsgsize <= 0)
{
printf("Perte d'une connection\n");
FD_CLR(Test.fd_array[0],&Ref);
closesocket(Test.fd_array[0]);
Test = Ref;
continue;
}

Buffer[clientmsgsize] = '\0';
printf("\nrecu de %d %s",Test.fd_array[0],Buffer);
}
Test = Ref ;
}
}
lundi 29 mars 2004 à 12:52:29 | Re : accept bloquant TCP

sena

ca cest hyper cool

merci beaucoup pour ta generosité,
yen a plus que ce que je demandais..

ciao,
sena



Cette discussion est classée dans : timestamp, select, accept, tcp, bloquant


Répondre à ce message

Sujets en rapport avec ce message

recv() bloquant!! select?? [ par dletozeun ] bonjour,je commence la programmation reseau en utilisant les sockets et je me heurte a qques problemes:je me suis rendu compte que la fonction recv(.. Programmer client TCP/IP [ par funkadelic ] On a un serveur qui balance des buffers de 16K en continu (1000 buffers par seconde par exemple).Je dois programmer un client qui donne un prompt; par requete approximative ?? [ par maevasa ] Comment fait on une requête approximative?j'ai essayé ça sprintf(requete,"%s%s%s%s","SELECT * FROM table"," LIKE qualite=\"","A*","\"");et ça sprintf( Client serveur TCP, pb multi Thread [ par valoue ] Bonjour, Voilà, je suis en train de développer un client serveur en C++ (sous VC++ .net).Pour le moment, j'ai créé le serveur et le client, ils marche socket tcp/ip en C [ par ravat485 ] qui peut m'aider par un exemple d'utilisation de socket en C (TCP/IP),pour envoyer des donnees??? Modifier Timeout TCP (MIB) [ par valoue ] Bonjour,Je voudrais modifier une valeur de MIB (Management Information Base).En fait, je voudrais modifier le timeout de TCP.Existe t il une méthode S Transfert de fichier TCP [ par remidub ] Bonjour,Je développe actuellement un logiciel qui nécessite des transferts de fichiers par TCP.En effet, je décompose les fichiers en petits paquets ( Problème fermeture socket [ par alexixlebaulois ] Salut,Je suis en train de créer une appli qui communique avec plusieurs serveurs pour récupérer leur état. Toutes les communications se font en même t Sockets asychrones et client serveur TCP [ par argali ] Bonjour,Est-ce qqun pourrait m'indiquer ou je pourrai trouver un cours complet sur les sockets asynchrones et leurs options (WSAAsyncSelect, FD_ACCEPT traitement de paquets dans un flux TCP [ par argali ] Salut, Est-ce que quelqu'un aurait un exemple de code sur le traitement de paquets par un serveur TCP (delimitation des headers, taille du paquet) d'u


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,635 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales