Red de conocimiento informático - Conocimiento del nombre de dominio - 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.

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_family =AF_INET;

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[])

{

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;

}