[Résolu] SOCKET
Anonyme
Bonjour,

J'ai un probléme avec la fonction socketlit. Elle a l'air de marcher trés bien lorsque j'ecris dans une socket avec socketecrit.

Par contre la c'est que j'ai un programme écrit en C qui le fait.

Voici le code du serveur coté windev :

code initialisation de la fenetre :

ThreadMode(threadSectionCritique)
// crée une socket sur le poste serveur
SI SocketCrée ( "Serveur" , 4902 ) = Faux ALORS
	Erreur ( "Erreur de création " + ErreurInfo ( errMessage ))
SINON
	// Gestion des connexions des postes clients dans un thread
	ThreadExécute ( "Thread1" , threadNormal , ProcedureAttente )
FIN


Fonction ProcedureAttente

Dans cette fonction j'ai bien le trace qui s'affiche lorsque je me connecte avec mon client en C
BOUCLE
	SI SocketAttendConnexion ( "Serveur" ) ALORS
		Canal est une chaîne
		Trace("connection etabli")
		// Si la connexion est acceptée, 
		// la gestion de cette connexion est réalisée dans un thread spécifique
		Canal = SocketAccepte ( "Serveur" )
		ThreadExécute (Canal, threadNormal , ProcedureGestion , Canal )
	FIN
FIN 


Procedure ProcedureGestion
J'ai egalement le trace entrer gestion qui s'affiche
Trace("entrer gestion")
lu est une chaîne

lu=SocketLit(canal)
Trace( "gestion:" + lu)
RETOUR


Par contre ca bloque au socketlit ca n'affiche rien alorq que coté client j'envoi bien des messages.

Client en C :

#include <sys/socket.h>
#include <sys/types.h> 
#include <netinet/in.h> 
#include <unistd.h> 
#include <stdlib.h> 

#define MAX_SEND 100 

int main() 
{ 
  int sock;
  struct sockaddr_in sin;
  char buffer[512];
  int i=0;

  sock = socket(AF_INET, SOCK_STREAM, 0);
  if(sock==-1){
     perror("erreur creation socket");
     return 0;
  }
  sin.sin_addr.s_addr			= inet_addr("127.0.0.1");
  sin.sin_family				= AF_INET;
  sin.sin_port				= htons(4902);
  if(connect(sock, (struct sockaddr *)&sin, sizeof(sin))==-1) {
     perror("erreur connect");
     return 0;
  }
  strcpy(buffer,"bonjour windev");
  for(i=0;i<20;i++)
    printf("%d\n",send(sock, buffer, sizeof(buffer), 0));

  return 0;
}




Voila ce code est sensé compilé pour linux j'utilise cygwin.

Vraiment je ne comprends pas pourquoi le socketlit ne marche pas.. Y'a un parametre a modifié ???

Contribution le : 23/05/2005 13:03
Créer un fichier PDF de la contribution Imprimer


Re: SOCKET
Anonyme
Bonjour ,

C'est re moi.

En changeant le mode de transmission ca a l'air de marcher plutot bien.

Je suis passé en transmission sansmarqueurdefin

Merci et désolé du derangement

Contribution le : 23/05/2005 13:14
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2