Utiliser une socket en C pas en C++

Signaler
Messages postés
40
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
2 octobre 2006
-
Messages postés
40
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
2 octobre 2006
-
Bonjour,

J'aurais voulu savoir si qqn connais un moyen pour que je puisse utiliser des sockets en C. Je precise en C et pas en C++. Je précise que je travaille sous devcpp

Merci

3 réponses

Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
11
deja ma premiere question es pourquoi absolument en C?
bon bref c'est ton choix et tu dois avoir tes raisons, mais tu c'est tu utilises les sockets pareil en C que en C++, seul les fonction d'affichage change et tout ce qui differe entre les langages, mais la facon d'utiliser les sockets est la meme !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
Messages postés
40
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
2 octobre 2006

Bah je dis absolument en C parce que je dois faire un projet en C pour l'école...
Le truc c'est que j'ai essayé de mettre le code que j'ai trouvé pour les sockets dans la MSDN il marche très bien en C++ mais dès que je le mets en C DevCPP ne le compile plus... voila mon problème.
Messages postés
40
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
2 octobre 2006

Voila je mets ici le code que j'utilise:

#include <stdio.h>
#include "winsock2.h"

void main() {

// Initialize Winsock.
WSADATA wsaData;
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
printf("Error at WSAStartup()\n");

// Create a socket.
SOCKET m_socket;
m_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );

if ( m_socket == INVALID_SOCKET ) {
printf( "Error at socket(): %ld\n", WSAGetLastError() );
WSACleanup();
return;
}

// Connect to a server.
sockaddr_in clientService;

clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr( "127.0.0.1" );
clientService.sin_port = htons( 27015 );

if ( connect( m_socket, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) {
printf( "Failed to connect.\n" );
WSACleanup();
return;
}

// Send and receive data.
int bytesSent;
int bytesRecv = SOCKET_ERROR;
char sendbuf[32] = "Client: Sending data.";
char recvbuf[32] = "";

bytesSent = send( m_socket, sendbuf, strlen(sendbuf), 0 );
printf( "Bytes Sent: %ld\n", bytesSent );

while( bytesRecv == SOCKET_ERROR ) {
bytesRecv = recv( m_socket, recvbuf, 32, 0 ); if ( bytesRecv 0 || bytesRecv WSAECONNRESET ) {
printf( "Connection Closed.\n");
break;
}
if (bytesRecv < 0)
return;
printf( "Bytes Recv: %ld\n", bytesRecv );
}

return;
}