Experimento 4, cómo programar el socket del servidor web
1. Pasos de programación del socket de transmisión TCP
Antes de usarlo, debe vincular la función de biblioteca: Proyecto->Configuración->Enlace->Ingrese ws2_32.lib, ¡OK!
SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);//Crea un socket (socket).
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//Convertir cortos sin firmar al formato de orden de bytes de red
addrSrv .sin_family =AF_INET;
addrSrv.sin_port=htons(6000);
El código del cliente es el siguiente:
#include
#include
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData ); Cargando la biblioteca de sockets
if ( err != 0 ) {
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||< / p>
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup()( );
retorno
}
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0); Crea un socket.
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); emite una solicitud de conexión (conexión) al servidor.
char recvBuf[100]; comunicarse con el servidor (enviar/recv).
recv(sockClient,recvBuf,100,0);
printf("%s\n",recvBuf);
send(sockClient,"Esto es lisi",strlen("Esto es lisi")+1,0);
closesocket(sockClient);Cierra el socket.
WSACleanup()();//Esta función debe llamarse para borrar parámetros
}