begin process at 2012 05 28 22:03:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Réseau & Internet

 > 

communication serveur c et client java


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

communication serveur c et client java

mercredi 15 février 2012 à 08:07:49 | communication serveur c et client java

andoid

Bonjour
Je voulais savoir commment on peut faire communiquer un serveur C et un cleint java avec les sockets voici juste un petit serveur qui dit bonjour au client quand il se connecte:

#if defined (WIN32)
#include <winsock2.h>
typedef int socklen_t;
#elif defined (linux)
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
#define closesocket(s) close(s)
typedef int SOCKET;
typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr SOCKADDR;
#endif

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define PORT 23



int main(void)
{
#if defined (WIN32)
WSADATA WSAData;
int erreur = WSAStartup(MAKEWORD(2,2), &WSAData);
#else
int erreur = 0;
#endif

SOCKET sock;
SOCKADDR_IN sin;
SOCKET csock;
SOCKADDR_IN csin;
char buffer[32] = "Bonjour !";
socklen_t recsize = sizeof(csin);
int sock_err;

/* Si les sockets Windows fonctionnent */
if(!erreur)
{
sock = socket(AF_INET, SOCK_STREAM, 0);

/* Si la socket est valide */
if(sock != INVALID_SOCKET)
{
printf("La socket %d est maintenant ouverte en mode TCP/IP\n", sock);

/* Configuration */
sin.sin_addr.s_addr = htonl(INADDR_ANY); /* Adresse IP automatique */
sin.sin_family = AF_INET; /* Protocole familial (IP) */
sin.sin_port = htons(PORT); /* Listage du port */
sock_err = bind(sock, (SOCKADDR*)&sin, sizeof(sin));

/* Si la socket fonctionne */
if(sock_err != SOCKET_ERROR)
{
/* Démarrage du listage (mode server) */
sock_err = listen(sock, 5);
printf("Listage du port %d...\n", PORT);

/* Si la socket fonctionne */
if(sock_err != SOCKET_ERROR)
{
/* Attente pendant laquelle le client se connecte */
printf("Patientez pendant que le client se connecte sur le port %d...\n", PORT);

csock = accept(sock, (SOCKADDR*)&csin, &recsize);
printf("Un client se connecte avec la socket %d de %s:%d\n", csock, inet_ntoa(csin.sin_addr), htons(csin.sin_port));

sock_err = send(csock, buffer, 32, 0);

if(sock_err != SOCKET_ERROR)
printf("Chaine envoyée : %s\n", buffer);
else
printf("Erreur de transmission\n");

/* Il ne faut pas oublier de fermer la connexion (fermée dans les deux sens) */
shutdown(csock, 2);
}
}

/* Fermeture de la socket */
printf("Fermeture de la socket...\n");
closesocket(sock);
printf("Fermeture du serveur terminee\n");
}

#if defined (WIN32)
WSACleanup();
#endif
}

/* On attend que l'utilisateur tape sur une touche, puis on ferme */
getchar();

return EXIT_SUCCESS;
}
dimanche 19 février 2012 à 11:24:49 | Re : communication serveur c et client java

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Et c'est quoi la question ?
Le java propose des sockets en standard.

Ce type de communication entre un programme C et un programme java est très courante et ne devrait pas te poser de problème.


Cette discussion est classée dans : port, include, socket, sin, sock


Répondre à ce message

Sujets en rapport avec ce message

[C] Scanner de port utilise socket version linux [ par firemax ] Salut :) J'ai une erreur de segmentation et je n'est pas la moindre idée d'ou ca peut venir :( Je n'est aucun warning lors de la compilation mais l erreur bind: Address already in use [ par andoid ] Bonjour j'ai mon programme suivant qui marche et je suis en route pour creer mon serveur pour l'instant le client qui se connecte je lui envoi juste l les socket [ par ben83510 ] Bonjour, Je me suis lancer dans le tutoriel sur les socket. J arrive a effectuer la connexion lorsque j execute le serveur et le client sur mon pc.Ma Problèmes avec les Socket [ par baptchr55 ] Bonjour à tous, Je suis ennuyé avec la création de socket. J'aimerais pouvoir envoyer des données (dans un premier temps que j'écris) une par une se Pb chaine de caractères [ par baptchr55 ] Bonjour à tous encore une fois j'ai besoin de votre aide. J'essaye d'envoyer par le biais d'un socket une chaine de caractères. Ce qui fonctionne, se Chaine de caractères Via Socket [ par baptchr55 ] Bonjour à tous encore une fois j'ai besoin de votre aide. J'essaye d'envoyer par le biais d'un socket une chaine de caractères. Ce qui fonctionne, se socket trop lents [ par cid7777777 ] bonjour,jessaye de faire un jeu qui peu se jouera 2 en reseau local.je ne connais absolument rien en reso, mais en fouillant sur le net,  jai trouver [socket et api win]recevoir et envoyer en meme temps [ par shadow1779 ] Bonjour je me suis fais un petit programme irc qui me servira de bot pour auto-op des personne ou d'autre taches diverses, le client aura une boite de probleme de communication entre deux programme [ par smook ] re salut le dernier message que j ai poster c etait pour les socket et la librairie "libwsock.a" mais sayer j ai passer cette etape j ai reussi a fair Socket C et api [ par shadow1779 ] Bonjour,j'ai un petit prob avec un bot que j'essai de faire avec l'api et les sockets en C, pour l'instant on ne peux que cliquer sur le bouton connec


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,811 sec (3)

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