/*
Programa que manda un string de 512 caracteres
de una maquina a otra.
para la clase de programacion II.
Instituto Tecnologico de Ensenada.
20-Octubre 2006
por: Joel Rodriguez.
Versamedium Web Services
http://www.versamedium.com
*/
#include <sys/types.h>
#include <stdio.h>
#include <inttypes.h>
#include <string.h>
#include <unistd.h>
#include <winsock.h>
#define SERVER_PORT 1067
#define MAX_MSG 1536
#define PRINTERROR(s) \
fprintf(stderr,"\n%: %d\n", s, WSAGetLastError())
#define SIM_LENGTH 2000 /* number of integers to be written and read */
/* define IP_ADDRESS "200.94.161.124" Internet address of server */
/* #define PORT 8888 local port on which the server establishes connection */
int main (int argc, char *argv[]) {
int port,i;
char string1[40];
struct sockaddr_in localAddr, servAddr;
struct hostent *h;
FILE *matrizHAM;
WORD wVersionRequested = MAKEWORD(1,1);
WSADATA wsaData;
char recibe[512];
char IP_ADDRESS[80];
char stripnumber[80];
int PORT;
int nRet;
short nPort;
char *szServer;
//short nPort;
char cadenaflotantes[512];
char numerochar[4];
float *elnuevo;
float *temporalf;
float vector[512];
/* if(argc < 3) {
printf("usage: %s <server> <data1> <data2> ... <dataN>\n",argv[0]);
exit(1);
}
*/
printf("usese como: manda-internet 192.168.0.4\n");
printf("A sockets connetion will be made at port number 1067 \n");
strncpy(string1, argv[1], 40);
/*printf("%s\n",string1);*/
sscanf(string1, "%s", &stripnumber);
port=1067;
strcpy(IP_ADDRESS,stripnumber);
PORT = port;
nPort = port;
//
// Initialize WinSock and check the version
//
nRet = WSAStartup(wVersionRequested, &wsaData);
if (wsaData.wVersion != wVersionRequested)
{
fprintf(stderr,"\n Wrong version\n");
//return;
}
//
// Go do the stuff a stream client does
//
//StreamClient(IP_ADDRESS, nPort);
szServer=IP_ADDRESS;
printf("\nStream Client connecting to server: %s on port: %d\n",szServer, nPort);
//
// Find the server
//
LPHOSTENT lpHostEntry;
lpHostEntry = gethostbyname(szServer);
if (lpHostEntry == NULL)
{
PRINTERROR("gethostbyname()");
return;
}
//
// Create a TCP/IP stream socket
//
SOCKET sock;
printf("\nPaso1: \n");
sock = socket(AF_INET, // Address family
SOCK_STREAM, // Socket type
IPPROTO_TCP); // Protocol
if (sock == INVALID_SOCKET)
{
PRINTERROR("socket()");
return;
}
printf("\nPaso2: \n");
//
// Fill in the address structure
//
SOCKADDR_IN saServer;
saServer.sin_family = AF_INET;
saServer.sin_addr = *((LPIN_ADDR)*lpHostEntry->h_addr_list);
// ^ Server's address
saServer.sin_port = htons(nPort); // Port number from command line
//
// connect to the server
//
printf("Client is alive and establishing socket connection.\n");
nRet = connect(sock, // Socket
(LPSOCKADDR)&saServer, // Server address
sizeof(struct sockaddr));// Length of server address structure
if (nRet == SOCKET_ERROR)
{
PRINTERROR("socket()");
printf("\nPaso3 error: \n");
closesocket(sock);
return;
}
printf("Server is alive, socket connection established.\n");
strcpy(cadenaflotantes,"Hola Roberto clase de Programacion II?,..");
for(i=1;i<10000;i++){
send(sock,(char *)cadenaflotantes,512,MSG_OOB);
recv(sock,(char *)recibe ,512, 0);
printf("%d %s\n",i,recibe);
}
getchar();
getchar();
return 0;
}