begin process at 2012 05 30 17:32:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

[Socket]


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

[Socket]

mercredi 10 décembre 2003 à 11:47:53 | [Socket]

keerigan


Salut ,

Voila je dois creer un serveur de socket qui accepte qu'une seule connection mais actuellement je ne trouve pas comment faire.
Est ce possible techniquement ? si oui kkun peut il me dire comment faire ?

d'avance merci

Stéphane
mercredi 10 décembre 2003 à 12:36:21 | Re : [Socket]

aardman

Membre Club
Salut,
tu crée un socket avec socket(...).
bind(...) puis listen(...) pour le faire ecouter sur un port.
et tu attend la connection avec accept(...).
mercredi 10 décembre 2003 à 13:56:12 | Re : [Socket]

keerigan


Oui c'est ce que je veux mais
dans ce cas la windows reatribu des ports de communication et la socket reste a l'ecoute et du coup un autre client peux se connecter ce qui pose probleme

pour faire plus simple mon pronleme est losque j'ai un souci reseau , la socket client tombe et essaie de se reconnecter "trop vite" , alors que le serveur n'a pas encore vu la deconnexion

je cherche surement dans une mauvais direction mais je suis a court d'idee en fait :'(

Stéphane
mercredi 10 décembre 2003 à 14:18:18 | Re : [Socket]

aardman

Membre Club
Salut,
J'ai pas trop bien compris ton prob de souci reseau et de socket qui tombe.
Essaye d'etre plus clair, ou de coder un bout de code histoire qu'on comprenne ce que tu veux faire et quels sont les probs rencontrés.
mercredi 10 décembre 2003 à 14:44:55 | Re : [Socket]

keerigan

Ok désolé
c'est vrai que ce n'est pas tres clair
vais essayer de m'expliquer plus clairement
donc voila

j'ai un serveur de socket a realiser j'utilise pour mettre le serveur en ecoute les fonctions que tu as cités
or si je regarde mes ports ouvert je remarque que lorsque mon client se connecte window reattibut un port de travail pour et la socket reste a l'ecoute sur mon port de depart .
en gros le code donne ca dans un thread

while (1)
{
if (!connecter)
{
socket(...)
bind(...)
accept(...)
connecter )= true
}
traitement()
envoie timeout
si erreur close()
}

Comme la socket reste a l'ecoute un autre client peux se connecter alors que je suis deja en traitement ce qui peux poser pb lorsque le client se deconnecte et se reconnecte trop vite , le serveur n'a pas "vu" la deconnection

du coup le client "croit" etre connecter alors qu'en fait aucun traitement n'est fait


c'est pas tres facile a expliquer en fait j'espere avoir ete plus clair

merci

Stéphane
mercredi 10 décembre 2003 à 14:54:45 | Re : [Socket]

aardman

Membre Club
Salut,
Avec ce code, jamais un client ne pourra se connecter pendant qu'un autre est en traitement, car tout est dans un meme thread.
Mais puisque tu ne souhaite gerer qu'un client, pourquoi met tu une boucle dans un thread séparé? c'est plutot pour accepter plusieurs connections qu'on fait ca normalement.
mercredi 10 décembre 2003 à 15:01:59 | Re : [Socket]

keerigan

beh en fait si .. un client peux se connecter quand meme meme.Si il est pas connecter au thread il semble etre au moins connecter a window vu que la socket est de nouveau en mise ecoute par window

j'utilise un thread car en fait j'ai un autre thread qui est client sur un autre serveur de socket et comme ca j'ai qu'un programme qui gere 2 connections differentes

c'est vrai que je detourne le principe des serveurs de socket mais le client veux ca :(

Donc beh voila le proble reste un mistere :(

Merci

Stéphane
mercredi 10 décembre 2003 à 15:06:03 | Re : [Socket]

aardman

Membre Club
Salut,
Tu passes quoi en 2eme parametre a listen(...) ?
mercredi 10 décembre 2003 à 15:08:31 | Re : [Socket]

keerigan

j'utilise ca :


if( listen(MainSock,1 )==SOCKET_ERROR )


j'ai essaye 0 ca change rien au debut il y avait 5
mercredi 10 décembre 2003 à 15:14:31 | Re : [Socket]

keerigan


j'ai trouve ca sur MSDN



virtual BOOL Accept( CAsyncSocket& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL );

Call this member function to accept a connection on a socket. This routine extracts the first connection in the queue of pending connections, creates a new socket with the same properties as this socket, and attaches it to rConnectedSocket. If no pending connections are present on the queue, Accept returns zero and GetLastError returns an error. The accepted socket (rConnectedSocket) cannot be used to accept more connections. The original socket remains open and listening.


The original socket remains open and listening.
donc voile le pb :(

1 2

Cette discussion est classée dans : socket


Répondre à ce message

Sujets en rapport avec ce message

encore mon serveur [ par skysee ] bonjour,je suis toujours avec mon serveur en c sous visual c++ sous windows(sis eulement j'avais linux).Le problème est que je n'ai pas d'erreur de co Probleme reception sur un serveur windows en vc++ [ par alfred ] Salut a tous!!g un probleme dans mon serveur le recv renvoie la valeur -1 et je ne vois pas pouquoi, toute mes socket sont positives le client envois Serveur Vc++6 pb dans recv [ par alfred ] Salut a tousJ'ai un probleme dans mon serveur et je ne sais pas comment le resoudre. Le client se connecte bien et envoie le bon nombre de caracteres socket.h [ par greg4 ] je ne trouve pas socket.h !!!quelqu'un pourait me l'envoyer a ggreg4@caramail.comou me donner une address.merci socket en c [ par skysee ] Bonjour,je recherche un code en C (pas de c++) qui créer un serveur socket udp. Merci Communication par socket [ par yoyo2 ] Bonjour à tous,est-il possible de communiquer par socket entre plusieurs systèmes différents. Par exemple envoyer des données entre un PC sous Windows Recherche programme lecture Socket [ par DarknessLucifer ] Besoin d'un programme permettant de lire les informations Socket .. je travail sous windows.Si qq avait un programme fonctionnant je lui en serait tre socket RAW [ par oxydoxy ] et t'il possible d'utilise les RAW socket sous un environement comme vc++ avec winsock ? probleme socket sous windows XP [ par fr1man ] j'ai réalisé un "chat" avec les sockets en VC++6. il fonctionne très bien sous NT et 2000 mais pas sous XP. d'où vient le problème ?j'utilise l'API wi pb de socket sous windows XP [ par fr1man ] j'ai réalisé un "chat" avec les sockets en VC++6. il fonctionne très bien sous NT et 2000 mais pas sous XP. d'où vient le problème ?j'utilise l'API wi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 0,265 sec (4)

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