Después de iniciar la computadora, el ícono del servidor de socket de Borland siempre se muestra en la esquina inferior derecha de la computadora.
sin.sin_port=htons(3300); //el programa escucha en el puerto 3300 sin.sin_addr.s_addr=INADDR_ANY;
====== ============ mi ~~! ~~!=====
============ ¡Será mejor que te muestre el código! ~@=========
// Servidor simple H*F*W 2009 QQ:176469428
#include ".\\\stdio.h"
//#include ".\\\winsock2.h"
#include ".\\include\windows.h"
#pragma comentario(lib ,".\lib\\\ws2_32.lib")
#define WINEPOCH 2208988800
#define WSVERS MAKEWORD(2,0) //Llame a la macro MAKEWORD para obtener el winsock version y asígnelo a la constante WSVERS, donde el primer parámetro es el byte alto de la versión de winsock
int main(int argc, char * argv[])
{ p>
struct protoent *ppe;
struct sockaddr_in sin;
SOCKET s,sock;
char buf[1000000] // Datos entrantes Búfer de caracteres
int alen;
WSADATA wsadata;
if(WSAStartup(WSVERS, &wsadata)) //WSAStartup carga la biblioteca winsock, la primera El parámetro es la versión de la biblioteca winsock y el segundo parámetro es un puntero a la estructura WSDATA.
printf("WSAStartup falló\n"); //Error si la carga no se realiza correctamente
if((ppe=getprotobyname("tcp"))==0)printf(" Entrada de protocolo de error\n");
if((((ppe=getprotobyname("tcp"))=0)printf("Se produjo un error.s=socket(PF_INET,SOCK_STREAM,ppe->p_proto ))==-1)
{
printf("¡No se pudo crear el socket! \n");
exit(-1);
}
memset(&sin,0,sizeof(sin));
sin.sin_family =AF_INET;
sin.sin_port= htons(3300); //El programa escucha en el puerto 3300
sin.sin_addr.s_addr=INADDR_ANY;
if(bind(s,(struct sockaddr *)&sin,sizeof( sin ))==SOCKET_ERROR)
alen=sizeof(sin);
cntx:
if(listen(s,0)==SOCKET_ERROR)
p>sock=accept(s,(struct sockaddr * ) &sin,&alen //Espera la conexión<
while(1)
{
int cc;
cc=recv(sock,buf,sizeof(buf),0);// Esperando recibir datos, después de recibir los datos, asigne los datos al variable buf
if(cc==SOCKET_ERROR) // if(cc==SOCKET_ERROR) // Si hay un error
printf("¡error! (¡Aún es muy fatal!) \n"); // Informar error
else
buf[cc]='\0'; // Eliminar caracteres vacíos después de la cadena
printf ("%s",buf) ; // Salida para mostrar los datos recibidos
send(s,buf,strlen(buf),0); // Enviar datos, buf es el valor de los datos a be sent.buf es enviar datos Variables
if(cc==0)
{
closesocket(sock);
goto cntx; //Si está conectado Si se interrumpe, salte a cntx y vuelva a ingresar a la conexión en espera
}
}
closesocket(sock); Cerrar la conexión
return 1;
}