begin process at 2012 02 16 10:59:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Réseaux & Internet

 > 

Client - Serveur

 > 

Winsock multi connection commen faire ?


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

Winsock multi connection commen faire ?

mercredi 6 août 2008 à 22:39:55 | Winsock multi connection commen faire ?

belette321

Voilla, j'aimerais savoir comment faire pour rendre mon sever winsock
accessible pour plusieur connection, car acctuelement si je depasse 1 connexion
le server et le client bug .. merci
mercredi 6 août 2008 à 23:08:01 | Re : Winsock multi connection commen faire ?

bonjourcheval

Bonjour,

Une petite recherche sur le forum t'aurait permit de trouver ceci

walla


mercredi 6 août 2008 à 23:09:29 | Re : Winsock multi connection commen faire ?

PCPT

Administrateur CodeS-SourceS
re,

utilise ton socket serveur en groupe de contrôles et lors de la tentative de connexoion, autorise (request) la connexion d'après le param (ID) sur un autre de ton groupe

en gros ton socket principal (0) ne communique jamais

voir la tonne d'exemples existants sur VbFrance
++

Prenez un instant pour répondre à ce sondage svp  
jeudi 7 août 2008 à 03:06:10 | Re : Winsock multi connection commen faire ?

belette321

J'ai fait :

--
Winsock(0).Close
Winsock(0).LocalPort = ChatTxt2
Winsock(0).Listen
--

Et j'optien cette erreur :

"Erreur de compilation
Nombre d'arguments incorrect ou affectation de propriété incorrecte"

Esque kk1 pourrais me donner un exemple svp pck je n'optien pas
de tres bon resulta
jeudi 7 août 2008 à 03:32:56 | Re : Winsock multi connection commen faire ?

PCPT

Administrateur CodeS-SourceS
1. localport est en lecture seule, ce que tu fais ici ne sert à rien
2. je te dis d'ouvir sur un autre socket, à créer dynamiquement. voir par exemple dans mes sources "URBI" mais le code n'est pas forcément évident
3. voir de toute façon les autres sources et les tutos !
4. évite le langage sms stp! non seulement c'est très chiant mais en plus en "dev", tout étant abrégé, c'est très facile de prendre un mot pour un autre...


Prenez un instant pour répondre à ce sondage svp  
jeudi 7 août 2008 à 04:46:08 | Re : Winsock multi connection commen faire ?

belette321

Trop dure pour moi ton votre URBI, je c'est qu'il est possible de
faire un multi client sur WinSock, j'ai une petit idee meme a quoi
pourais ressembler ce code mais quand je l'ai essailler, mais sa ne
marche pas ...

----------------------------------------------------------------------
_________________________
Dim loaderwin As String
_________________________
Private Sub Form_Load()
loaderwin = "0"
End Sub
________________________
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close
Winsock1.Accept requestID
loaderwin = CSng(loaderwin) + CSng(1)
Load Winsock1(loaderwin)
Winsock1(loaderwin).LocalPort = Port
Winsock1(loaderwin).Listen
End Sub
_________________________
----------------------------------------------------------------------


L'erreur que je retrouve est la suivante:
Wrong number or argumant or invalide  property assiment


Cordialement, moi
P.S: Desoler pour l'orthographe le francais c'est pas mon truc
jeudi 7 août 2008 à 08:05:34 | Re : Winsock multi connection commen faire ?

Renfield

Administrateur CodeS-SourceS

Winsock1 est indexé ou pas ?
parce qu'en voyant le proto de ConnectionRequest, je dirai non (pas la propriété Index)

fais deux Sockets, si tu as du mal a voir la chose.

le premier, va faire un Listen, et attendra que les clients viennent.
lors du ConnectionRequest, si le socket 2 (appelons le Data) est libre (voir son State = sckClosed) on lui fais accepter la requete.


Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Dim oSck As Winsock
    For Each oSck In Winsock2
        If oSck.State = sckClosed Then
            Exit For
        End If
    Next oSck

    If Nothing Is oSck Then
        Load Winsock2(Winsock2.Count)
        Set oSck = Winsock2(Winsock2.UBound)
    End If
    oSck.Accept requestID
End Sub

Ainsi, le socket principal reste disponible (Listen)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
jeudi 7 août 2008 à 08:06:17 | Re : Winsock multi connection commen faire ?

Renfield

Administrateur CodeS-SourceS
mettre Index à 0 pour Winsock2( j'avais omis ce detail)


Renfield
Admin CodeS-SourceS- MVP Visual Basic
jeudi 7 août 2008 à 09:37:39 | Re : Winsock multi connection commen faire ?

ghuysmans99

Membre Club
Tu peux aussi t'inspirer de ceci
_________________________________________________________________________
VB.NETis good ...VB6is better<
jeudi 7 août 2008 à 14:10:46 | Re : Winsock multi connection commen faire ?

bonjourcheval

Dans le lien que je t'ai envoyé, c'est expliqué très clairement avec des exemples simple... Voici une partie du code que j'ai Copier-Coller de la source.


Pour faire un projet qui peut être connecté à plusieurs Winsock en même temps, faites-le avec  2 winsocks, l'un « Wck » avec la propriété « Index » à 0 et l'autre « Serveur ».
Rajoutez la variable public (donc accessible de partout) « Nb », et initialisez la à 0 au form_load.
Selon ce qu'on vient de voir, faites en sorte (et ça paraît logique) que ce soit « Serveur » qui soit serveur donc qui écoute mais pour son évenement ConnectionRequest mettez :

§ Private Sub Serveur_ConnectionRequest(ByVal requestID As Long)
§ Nb=Nb+1
§ Load Wck(Nb)
§ Wck(Nb).Accept requestID
§ End Sub

Vous avez compris !!! A chaque demande de connexion à votre appli, elle charge un nouveau contrôle Winsock « Wck » qui va prendre la demande et donc se connecter a l'appli appelante : au final, si 25 ctrl cherchent à vous appelez, vous pourrez vous connecter aux 25 et communiquer avec les 25 ! Ou plus ! (ou moins aussi).
Le ctrl Winsock « Serveur » lui reste TOUJOURS A L'ECOUTE PRET A TRAITER LES EVENTUELLES DEMANDES.

Et pour faire propre, il faut pas oublier :

§ Private Sub Wck_Close(Index As Integer)
§ Unload Wck(Index)
§ If Wck.count=0 then Nb=0
§ End Sub

Ce qui permet de décharger de la mémoire les ctrl winsock auxquel leur correspondant ont lâché la communication, et qui donc ne servent plus.



Comment traiter différentes réceptions ou la gestion des ordres :

Souvent vos applis vont s'envoyer des infos, mais pas tjrs les mêmes : donc comment faire pour que le prog distingue s'il vient de recevoir le Pseudo du type ou bien un message qu'il vient d'envoyer pour afficher dans le chat ? Simple encore une fois !!!

Faites correspondre chaque type de données (je ne parle pas du type VB) à un caractère puis faites par exemple :

pour l'envoi d'un pseudo :

§ .senddata « P » & VarPseudo

pour l'envoi d'un msg :

§ .senddata « M » & VarMsg

et pour la réception, on distingue comme ça :

§ Dim data as string
§ Dim Ordre as string * 1
§   .getdata data
§   Ordre = left(data,1)      'récupère dans Ordre le 1er caractère
§   data = right(data,len(data)-1)      'retire ce 1er caractère de data
§   Select case Ordre      'faites ici différents usages des données
§     Case « P »
§       Pseudo = data
§     Case « M »
§       Text1.text = data
§   End Select


Walla




1 2

Cette discussion est classée dans : winsock, connection, multi, commen


Répondre à ce message

Sujets en rapport avec ce message

multi-connexion avec winsock [ par Saeko ] j'explique la situation :j'ai créé un chat permettant le dialogue entre 2 utilisateurs (1 serveur - 1 client) et j'aimerais le rendre multi-utilisateu Connection Winsock via un proxy [ par erreurs404 ] Salut tlm,je fais une appli vb utilisant le contrôle Winsock et je souhaiterais faire une option pour ceux qui sont derriere un proxy afin qu'ils puis Attente de connection avec Winsock... [ par Frederic ] Salut, Je me crée actuellement une application du type client/serveur [VB6/ contrôle Winsock]. Lorsqu'un système nous "demande" une connection, l'évén Probleme de connection multiple (winsock) [ par gint ] JE travail actuellement sur un serveur en visual 6 j'arrive a faire en sorte que plusieur personne se connecte, mais quand un cliend envoi une multitu multi client winsock [ par kut ] g un programme qui me permet de rediriger des messages recus vers des poste de supervisionmon probleme c'est que je n'arrive pas a envoyer les message URGENT ! Winsock [ par idealprog ] salut,j ai cre 2 prog avec winsock, 1 server et 1 client :lorsque je lance le server puis le client et que je me connecte au server ( a partir du clie Connection timeout de winsock. [ par Philipina ] Bonjour,Je voudrais configurer un connection timeout de 30 secondes avec winsock. Cela est-il possible? Si, oui, comment?Merci d'avance.Alain. connection timeout de winsock. [ par Philipina ] Bonjour,J'utilise winsock dans une de mes applications et je voudrais changer le "connection timeout" pour le mettre sur 50 secondes. Est-ce possible? Winsock timeout for connection. [ par Philipina ] Bonjour,J'utilise winsock dans une de mes applications et je voudrais changer le "connection timeout" pour le mettre sur 50 secondes. Est-ce possible? winsock et mail multi recepteur [ par fabdi ] Salut j'ai fais un bout de prog qui utilise winsock pour l'envoi de mail, le probleme c que je veux envoyer a plusieurs personnes en meme temps..... c


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

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