Puntos de interrupción de la programación de sockets
# incluir ltwinsock2.h gt
# incluir ltstdio.h gt
#pragma comentario (lib, " ws2_32.lib ") p>
void main(){
WORD wV
WSADATA ws
int er
wV=MAKEWORD(1, 1);
er=WSAStartup(wV, ampws);
Si (uh!=0){
Devolver;
}
if(LOBYTE(ws.wVersion)!=1||HIBYTE(ws.wVersion)!=1){
WSACleanup();
Regresar;
}
SOCKET sockSrv=socket(AF_INET, SOCK_STREAM, 0);
SOCKADDR _ IN addrSrv
addrSrv.sin_addr . Sol.
s_addr = htonl(in addr_ANY);
addrSrv.sin_family = AF_INET
addr SRV sin_port = htons(6000);
bind(sockSrv, (SOCKADDR *) amp; addrSrv, tamaño de (SOCKADDR));
escuchar(sockSrv, 5);
SOCKADDR _ IN addrClient
int len = tamaño de (SOCKADDR);
while(1)
{
SOCKET sockConn=accept(sockSrv, (SOCKADDR *) amp ; addr client & len <); /p>
char send buf[100];
sprintf(sendBuf, "Bienvenidos a Wozhe", inet_ntoa(addr client. sin _ addr)); (sockConn, sendBuf, strlen(sendBuf) 1, 0;
char recvBuf[100];
recv(sockConn, recvBuf, 100, 0); p>printf("s\n ", recvBuf);
cerrar socket(conector de calcetín
}
p>}
<); p>//Cliente# incluir ltwinsock2.h gt
# incluir ltstdio.h gt
#pragma comentario(lib, " ws2_32.lib ")
void main(){
WORD wV
WSADATA ws
int er
wV=MAKEWORD( 1, 1);
er=WSAStartup(wV, ampws);
if (uh!=0){
p>Return;
}
if(LOBYTE(ws.wVersion)!=1||HIBYTE(ws.wVersion)!=1){
WSACleanup();
Regresar;
}
SOCKET sockC=socket(AF_INET, SOCK_STREAM, 0);
SOCKADDR_IN direcciónS
direcciónS .sin_addr. Sol.
s _ addr = inet _ addr(" 127 . 0 . 0 . 1 ");
addrS.sin _ family = AF _ INET
addrs . 6000);
connect(sockC, (SOCKADDR *) amp; addrS, sizeof(SOCKADDR));
char recvB[100];
recv( sockC, recvB, 100, 0);
printf("s\n ", recvB);
send(sockC, "Esta es una lista", strlen("Esto es una lista ") 1, 0);
cerrar socket(sockC);
WSACleanup();
}