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 : Winsock multi connection commen faire ? [ Réseaux & Internet / Client - Serveur ] (belette321)

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

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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 : 0,265 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é.