Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : accept bloquant TCP [ Archives / Réseau / Internet ] (sena)

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é 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

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 4,571 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.