Socket v c++
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) /**/ p>
{
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) ; p>
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 p>
ip? Protocolo de Internet (abreviatura de Protocolo de Internet)
¿Puerto?
enviar nombre? p>
Texto2.txt
Enviar nombre