cliente servidor en c

Páginas: 3 (739 palabras) Publicado: 30 de mayo de 2013
A continuación se explicará cómo realizar un servidor y un cliente en lenguaje C, haciendo uso de
la API de Windows para sockets. Este artículo es simplemente un resumen, algo modificado, del
temaCreating a Basic Winsock Application (Windows) de la MSDN (The Microsoft Developer
Network).

servidor
/* Enlazar Ws2_32 */
#define _WIN32_WINNT 0x0501
#include
#include
#define PUERTO 27015WSADATA wsa_data;
SOCKET listen_socket, cliente;
struct sockaddr_in clientinfo, servicio;
int rtn;
char buffer[256];
void print_buffer(char *buffer, unsigned int bytes) {
while(bytes--)putchar(*buffer++);
}
int main() {
if ((rtn = WSAStartup(MAKEWORD(2,2), &wsa_data)) != 0) {
fprintf(stderr, "Error WSAStartup: %d\n", rtn);
return 1;
}
if((listen_socket = socket(AF_INET,SOCK_STREAM, IPPROTO_TCP)) ==
INVALID_SOCKET) {
fprintf(stderr, "Error en socket: %d\n", WSAGetLastError());
WSACleanup();
return 1;
}
servicio.sin_family = AF_INET;
servicio.sin_addr.S_un.S_addr =INADDR_ANY;
servicio.sin_port = htons(PUERTO);
if((rtn = bind(listen_socket, (struct sockaddr*) &servicio, (int)
sizeof(servicio))) == SOCKET_ERROR) {
fprintf(stderr, "Error en bind: %d\n",WSAGetLastError());
WSACleanup();
return 1;
}
if (listen(listen_socket, SOMAXCONN) == SOCKET_ERROR) {
fprintf(stderr, "Error en listen: %d\n", WSAGetLastError());
closesocket(listen_socket);
WSACleanup(); return 1;
}
if((cliente = accept(listen_socket, (struct sockaddr*)&clientinfo,
NULL)) == INVALID_SOCKET) {
fprintf(stderr, "Error en accept: %d\n", WSAGetLastError());closesocket(listen_socket);
WSACleanup();
return 1;
}
closesocket(listen_socket);
printf("Cliente IP: %s\n", inet_ntoa(clientinfo.sin_addr));
do {
rtn = recv(cliente, buffer, sizeof(buffer), 0);
if(rtn > 0) {print_buffer(buffer, rtn);
} else if(rtn == 0)
printf("Cerrando la conexión...\n");
else {
fprintf(stderr, "Error en recv: %d\n", WSAGetLastError());
closesocket(cliente);
WSACleanup();
return 1;...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Cliente servidor c
  • Cliente Servidor
  • Cliente Servidor
  • CLIENTE SERVIDOR
  • Cliente-Servidor
  • Cliente-servidor
  • Cliente servidor
  • Cliente servidor

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS