› Foros › PC › Software libre
CÓDIGO CLIENTE TCP
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
int ID_socket_cli, result;
struct sockaddr_in address_ser, address_cli;
struct hostent *h;
char mensaje[] = "Esto es un mensaje al mundo.";
if(argc<2) {
printf("uso : %s servidor \n", argv[0]);
exit(1);
}
ID_socket_cli=socket(AF_INET, SOCK_STREAM,0);
if (ID_socket_cli==-1)
{
printf("error\n");
exit(-1);
}
address_cli.sin_family = AF_INET;
address_cli.sin_addr.s_addr = htonl(INADDR_ANY);
address_cli.sin_port = htons(0);
result = bind(ID_socket_cli, (struct sockaddr *) &address_cli, sizeof(address_cli)); if (result<0) {
printf("error\n");
exit(-1);
}
h = gethostbyname(argv[1]);
printf("Escribe mensaje para %s\n",inet_ntoa(*(struct in_addr *)h->h_addr_list[0]));
address_ser.sin_family = h->h_addrtype;
memcpy((char *) &address_ser.sin_addr.s_addr, h->h_addr_list[0], h->h_length);
address_ser.sin_port = htons(6001);
result = connect(ID_socket_cli, (struct sockaddr *) &address_ser, sizeof(address_ser));
if (result<0) {
printf("error\n");
exit(-1);
}
do {
strcpy(mensaje,"");
gets(mensaje);
result = send(ID_socket_cli, mensaje, strlen(mensaje)+1, 0);
if (result<0) {
printf("error\n");
exit(-1);
}
} while(strncmp(mensaje,"fi",2));
return 0;
}
SERVIDOR TCP
#include
#include
#include
#include
#include
#include
#include
#define TAMBUFFER 256
int main()
{
int ID_socket_ser, ID_socket_ser2, result, long_cli;
struct sockaddr_in address_ser, address_cli;
char mensaje[TAMBUFFER];
ID_socket_ser=socket(AF_INET, SOCK_STREAM,0);
if (ID_socket_ser==-1)
{
printf("error\n");
exit(-1);
}
address_ser.sin_family = AF_INET;
address_ser.sin_addr.s_addr = htonl(INADDR_ANY);
address_ser.sin_port = htons(6001);
result = bind(ID_socket_ser, (struct sockaddr *) &address_ser, sizeof(address_ser));
if (result<0) {
printf("error\n");
exit(-1);
}
listen(ID_socket_ser,2);
long_cli = sizeof(address_cli);
ID_socket_ser2 = accept(ID_socket_ser, (struct sockaddr *) &address_cli, &long_cli);
if (ID_socket_ser2<0) {
printf("Error\n");
exit(-1);
}
do {
memset(mensaje,0x0,TAMBUFFER);
result = recv(ID_socket_ser2, mensaje, TAMBUFFER, 0);
if (result<0) {
printf("error\n");
exit(-1);
}
else
{
printf("%s\n",mensaje);
}
} while(strncmp(mensaje,"fi",2));
return 0;
}