Red de conocimiento informático - Problemas con los teléfonos móviles - Socket v c++

Socket v c++

¿do? Linux? Delia

Sistema operativo Linux

cc -o?

cc -o servidor servidor.c

. /¿servidor?

. /?

¿Enchufe? ¿abierto? (Igual que las organizaciones internacionales) ¿Las organizaciones internacionales

shock?

tl.h & gt

#Definir tamaño de búfer 128

#Definir PERM 0644 /*? */

#define littleBUFSIZE 126

/*#definechar DATA[]= "Media liga, media liga..." */

main( argc, argv)

int argc

char * argv[];

{

struct hostent *hp, *gethostbyname ()

int archivo de salida, archivo de archivo, msgsock, calcetín, longitud, clilen, rval, realn, I = 0

ssize _ t nread

char buf[; BUFSIZE];

char charnum

struct sockaddr_in servidor, cliente;

if(argc<4)

{

printf("\n\n");

printf("#.

/Nombre de envío del puerto IP del servidor\n");

printf("ip?IP\n");

printf("puerto?\n");

printf(" enviarnombre?\ n \ n \ n ");

Salir(1

}

/* * * * *; * * * * * * * * * * * * * * * * * * * * * * *Outlet************************/

calcetín=socket(AF_INET, SOCK_STREAM, 0); /* AF_INET, SOCK_STREAMTCP*/

if (calcetín & lt; 0)

{

error("Abrir socket de flujo");

Salir(1);

}

server.sin _ family = AF _ INET/ *?,?Internet*/

HP = gethostbyname(argv[1]); /*?hostent*/

if (hp==0) /**/

{

fprintf(stderr, " %s:host desconocido\n ", argv[1]);

Salir(2);

}

memcpy((char *)& server.sin_addr, (char *)HP->h_addr, HP->h_length /*Internet* /

servidor . sin _ puerto = htons(atoi(argv[2]); /*argv[2]?2000-5000?server*/

if (connect(sock, (struct sockaddr *)& servidor, tamaño del servidor)<0) /*serversock*/

{

perror("?);

Salir(1);

}

printf(" \ n \ n ");

/************ ******** *******?Socketsock?************/

if((outfile=open("test2.txt ", O_WRONLY|O_CREAT|O_TRUNC, PERM ))==-1)

{

printf(" \ n ");

Salir(1);

}

memset(buf, 0, tamaño de buf); /*?*/

printf("**************** ** ****? ¿cliente? * * * * * * * * * * * * * * * * * \ n ");

printf(" * * * * * * * * * * * * * * * prueba de cliente 2 . txt * * * * * * * * * * * * * * * * \ n \ n ");

while((nread=read(sock,buf,BUFSIZE))& gt; 0 )/*?Calcetines? */

{

realn = buf[BUFSIZE-2];/*?*/

if(realn== - 128)

{

printf(" prueba 2 . txt \ n ");

Romper

}

>printf("?Calcetines?%3d?,?%3d,",++i,n leído);

realn = buf[BUFSIZE-2];/*?*/

printf("?%3d %c\n\n ",realn,buf[BUFSIZE-1]);

if(write(outfile,buf,realn)<realn) / * */

printf("?\n ");

charnum = buf[BUFSIZE-1];

memset(buf, 0, tamaño de buf ) ;/*?*/

buf[0]= charnum;/*i+48? ¿I? ¿ASCII? */

write(sock, buf, BUFSIZE); /**/

}

Cerrar (archivo de salida);

/************************************?************ ************************************************* ***** /

if((infile=open(argv[3], O_RDONLY))==-1)

{

printf( "?%s, \n ", argv[3]);

Salir(1);

}

printf("\n\n\ n**** **********? ¿Cliente? * * * * * * * * * * * \n ");

printf("**** * **********Cliente? % 13s * * * * * * * * * * * * * \n \n ", argv[3]);

I = 0; /*****?**********/

memset(buf, 0, tamaño de buf); /*?*/

mientras (( nread=read(infile,buf,little bufsize))>0) /**/

{

printf(" %3d?,", n read) ;

buf[little bufsize]= n leer;/**/

i++;

buf[little bufsize+1]=(I % 10) +48; /*yo+48? ¿I? ¿ASCII? */

if(write(sock,buf,little bufsize+2)<=nread)

printf("? ¿Calcetín?");

Otros

printf("? Calcetines? %3d?,?%3d,", I, n read

memset(buf, 0, sizeof buf /* ? */

if(rval=read(sock,buf,little bufsize+2)<0)

/*?Calcetín? */

printf("?Calcetines?\n ");

Otros

printf("?%3s \n\n ",buf);

}/*Cuando*/

printf("%s\n\n ", argv[3]);

Cerrar(infile);

Cerrar (calcetines);

Salir (0);

}

/*

Autor: yanzi52351.

¿Servidor?

Test.txt

¿Cliente?

Cliente

>

¿Cliente?

#./Nombre de guardado del servidor

savname

Linux, UNIX, WindowsCYGWIN

*/

# incluir & ltsys/types

# incluir & ltsys/socket

# incluir & ltnetinet/in .

# incluir & ltnetdb.h & gt

# incluir & ltstdio.h & gt

# incluir & ltunistd.h & gt

# incluir & ltfcntl.h & gt

#define true 1

#define littleBUFSIZE 126

#define tamaño de búfer 128

#define PERM 0644 /*? */

/*?128,*/

main(argc, argv)

int argc

char * argv[] ;

{

int calcetín, longitud, clilen

estructura sockaddr_in servidor, cliente;

int msgsock

struct hostent *hp, * gethostbyname();

int outfile, infile

ssize_t nread

char buf[BUFSIZE];

int rval

int realn

int i=0,j;/**/

char charnum

if (argc<. 2)

{

printf("?\n\n");

printf("#.

/nombre de guardado del servidor \ n ");

printf(" nombre de guardado \ n \ n \ n ");

Salir (1);

}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Enchufe********* *** *******************/

calcetín=socket(AF_INET, SOCK_STREAM, 0);

if(calcetín & lt; 0)

{

error("Abrir socket de flujo");

Salir(1);

}

}

p>

server.sin_family = AF_INET

servidor . sin_adr s_adr = in addr_ANY; /

servidor . sin _ puerto = 0; /*1024?5000*/

if (bind(sock, (struct sockaddr *)&servidor,tamaño del servidor)< 0) /*? IPsock? */

{

error("Enlazar socket de flujo");

Salir(1);

}

longitud=tamañodelservidor;

if (getsockname(sock, (struct sockaddr *)&server.length)<0) /*socket0? p>

{

error("Obtener nombre del socket");

Salir(1);

}

printf ("Puerto de socket # %d\n ", ntohs(servidor . sin _ puerto)); >

Hacer {

printf(" %d?.?,?CTRL+C\n ",ntohs(servidor . sin _ puerto));

/** **************,,?socket,**********/

clilen = tamaño del cliente

msgsock= aceptar(sock, (struct sockaddr *) & cliente, (int *)&

clilen);/*?Calcetines? ¿enchufe? */

if (msgsock==-1) /*? */

error("Aceptar");

Otros

{ /**********,?***** *******/

printf("?\ n \ n ");

if((infile=open("test.txt ",O_RDONLY))= =-1)

{

printf("?test.txt,\n ");

Salir (1);

}

printf("************************? ¿Servidor? * * * * * * * * * * * * * * * * * * \ n ");

printf("******************servidor?test.txt * * * * * * * * * * * * * * * * * * \ n \ n ");

memset(buf, 0, tamaño de buf); /*?*/

mientras ((nread=read( infile, buf, little bufsize))& gt; 0) /**/

{

printf(" %3d?,", n read) ;

buf[little bufsize]= n leer;/**/

i++;

buf[little bufsize+1]=(I % 10) +48;/*yo +48? ¿I? ¿ASCII? */

if(write(msgsock,buf,little bufsize+2)<=nread)

/*?sock*/

printf( " ? Calcetines? \ n ");

Otros

printf("? ¿Calcetines? %3d?, %3d,", I, n leo);

memset(buf, 0, tamaño de buf); /*?*/

if(rval=read(msgsock, buf, pequeño bufsize+2)& lt; 0)

/*?Skok? */

printf("?Calcetines?\n ");

Otros

printf("?%3s \n\n ",buf);

}/*cuando*/

memset(buf, 0, tamaño de buf

buf[pequeño bufsize]= 128; p>write(msgsock, buf, little bufsize+2);

printf(" prueba . txt ");

Cerrar (infile); /*else*/

/*************************************** *******************************************/

if ((outfile=open(argv[1],O_WRONLY|O_CREAT|O_APPEND,PERM))==-1)/*? */

{

printf(" \ n ");

Salir (1); p>printf("\n\n\n************? Servidor? * * * * * * * * * * * * * \ n ");

printf("**********servidor%13s****

******\n\n ", argv[1]);

I = 0;

memset(buf, 0, tamaño de buf); /*?* /

mientras((nread=read(msgsock,buf,BUFSIZE))>0)/*?Sock? */

{

printf ( "?Calcetines?%3d?,?%3d,",++i,n leído);

realn = buf[BUFSIZE-2];/*?*/

printf("?%3d %3c\n\n ",realn,buf[BUFSIZE-1]);

if(write(outfile,buf,realn)<realn) /** /

printf("?\n ");

charnum = buf[BUFSIZE-1];

memset(buf, 0, tamaño de buf /*); ?*/

buf[0]= charnum; /*i+48? ASCII */

write(msgsock,buf,BUFSIZE);/** /

}

Cerrar (archivo de salida);

Cerrar (mensaje calcetín);

printf("%s\n\ n\n " , argv[1]);

}

mientras(1);

Salir(0);

}

server.c?

#./Nombre de guardado del servidor

savname

Prueba.txt

¿Cliente? p>

savname

savname?

Cliente

Cliente.c

#./Nombre de envío del puerto IP del cliente

ip? Protocolo de Internet (abreviatura de Protocolo de Internet)

¿Puerto?

enviar nombre? p>

Texto2.txt

Enviar nombre