spcay Posté 10 Octobre 2004 Partager Posté 10 Octobre 2004 J'ai un pti souci pour recuperer des donnees envoyer a partir d'un prog cgi a un autre prog en java. Je transmet un nom d'utilisateur par ex sur le prog en c en utilisant les socket , mais au moment de la recuperation des donnees transmises sur le prog en java , je reste bloqué sur .readLine(). Voici les progs et merci pour votre aide. Prog cgi --------- /* Initialisation de l'interface "windows socket" */ if(WSAStartup(MAKEWORD(2,0),&wsa_info) != 0) test_erreur("interface socket"); /* Creation de la socket de communication */ if((sock_comm=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET) test_erreur_socket("Creation socket de communication"); printf("CREATION SOCKET ...OK \n"); /* Recuperation de l'adresse du serveur DB */ if( (serveur_DB_distant=gethostbyname(nom_serveur_DB_distant))==NULL) test_erreur_socket("recuperation adresse seveur DB"); memset(&addr_sock,0,sizeof(addr_sock)); addr_sock.sin_family=AF_INET; addr_sock.sin_port=htons(numero_port); memcpy(&addr_sock.sin_addr,serveur_DB_distant->h_addr_list[0],serveur_DB_distant->h_length); /* Connexion avec la socket du serveur */ if(connect(sock_comm,(struct sockaddr *)&addr_sock,sizeof(addr_sock))== SOCKET_ERROR) test_erreur_socket("connexion au serveur DB"); printf("CONNEXION AU SERVEUR SQL ....OK\n"); /* Envoie d'information vers ke serveur DB */ strcpy(info,utilisateur); if(send(sock_comm,info,strlen(info),0) == SOCKET_ERROR ) test_erreur_socket("envoie d'information au serveur DB"); printf("Non d'utilisateur envoyer !!!\n"); prog java ----------- public class ServeurDB { private static final int NUM_PORT=7777; ServerSocket socketserveur; lecteur_db data; Vector resultat; Socket socket; InputStreamReader sinsr; BufferedReader sin; BufferedOutputStream soutbuf; DataOutputStream datasend; PrintWriter sout; String utilisateur=null; DataInputStream ois; InputStream is; // Constructeur par defaut ServeurDB(){ //data = new lecteur_db(); //resultat = new Vector(); // Traitement de la communication try { socketserveur = new ServerSocket(NUM_PORT); socket = null; System.out.print("Creation socket ...OK\n"); } catch(Exception e) { JOptionPane.showMessageDialog(null,"Erreur de sortie", "Message d'erreur", JOptionPane.INFORMATION_MESSAGE); System.out.print("\nEtat de la pile :");e.printStackTrace(); System.exit(0); } }//Fin du constructeur /*****************************************************************************/ public void init() throws Exception { socket=socketserveur.accept(); sinsr=new InputStreamReader(socket.getInputStream()); datasend= new DataOutputStream(socket.getOutputStream()); sin = new BufferedReader(sinsr); soutbuf=new BufferedOutputStream(socket.getOutputStream()); sout=new PrintWriter(soutbuf); is = socket.getInputStream(); ois = new DataInputStream(is); } /***************************************************************************/ /***************************************************************************/ public void finish() throws Exception { sinsr.close(); datasend.close(); sin.close(); soutbuf.close(); sout.close(); socket.close(); } /***************************************************************************/ /********************************************************************************/ public void boucle() { // Boucle d'attente du serveur try { //while(true) //{ init(); System.out.print("init ok \n"); utilisateur = ois.readLine(); System.out.print(" sin ok \n"); System.out.print(utilisateur +" connecte \n"); finish(); //} } catch(Exception e) { JOptionPane.showMessageDialog(null,"erreur lors de la boucle du serveur", "Message d'erreur", JOptionPane.INFORMATION_MESSAGE); System.out.print("\nEtat de la pile :");e.printStackTrace(); System.exit(0); } } public static void main(String argv[]) { try { ServeurDB serv = new ServeurDB(); serv.boucle(); } catch(Exception e) { JOptionPane.showMessageDialog(null,"erreur dans main", "Message d'erreur", JOptionPane.INFORMATION_MESSAGE); System.out.print("\nEtat de la pile :");e.printStackTrace(); System.exit(0); } }// Fin de la fonction pricipale }// Fin de la classe ServeurDB Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant