spcay Posté 10 Octobre 2004 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant