C ++ utilise socket, ftp pour le transfert de fichiers, réalise la fonction de téléchargement et de téléchargement de fichiers

C ++ utilise socket, ftp pour le transfert de fichiers, réalise la fonction de téléchargement et de téléchargement de fichiers

Les sockets doivent être divisés en côté serveur et côté client.

Terminal de service

1 Déclarer et initialiser une structure d'adresse de serveur (locale)

 
  sockaddr_in server_addr; 
  server_addr.sin_family = AF_INET; 
  server_addr.sin_addr.S_un.S_addr = INADDR_ANY; 
  server_addr.sin_port = htons(PORT); 

// 2 Initialise le socket


  WSADATA wsaData; 
  WORD socketVersion = MAKEWORD(2, 0); 
  if(WSAStartup(socketVersion, &wsaData) != 0) 
  {
    
     
    printf("Init socket dll error!"); 
    exit(1); 
  } 

3 créer une prise

// 创建socket 
  SOCKET m_Socket = socket(AF_INET, SOCK_STREAM, 0); 
    if (SOCKET_ERROR == m_Socket) 
    {
    
     
      printf("Create Socket Error!"); 
    exit(1); 
    } 

4 moniteur de liaison

//监听 
  if (SOCKET_ERROR == listen(m_Socket, 10)) 
  {
    
     
    printf("Server Listen Failed: %d", WSAGetLastError()); 
    exit(1); 
  } 

5 Lisez les informations pour déterminer si le client a besoin de lire le fichier ou de télécharger le fichier

	char buffer[BUFFER_SIZE]; 
	memset(buffer, 0, BUFFER_SIZE); 
    if (recv(m_New_Socket, buffer, BUFFER_SIZE, 0) < 0) 
    {
    
     
      printf("Client Receive Data Failed!"); 
      break; 
    } 
	
	std::cout<<buffer<<endl;

Client

1Initialisez le socket

// 初始化socket dll 
  WSADATA wsaData; 
  WORD socketVersion = MAKEWORD(2, 0); 
  if(WSAStartup(socketVersion, &wsaData) != 0) 
  {
    
     
    printf("Init socket dll error!"); 
    exit(1); 
  } 

2 Créez un socket, spécifiez le serveur

//创建socket 
	  SOCKET c_Socket = socket(AF_INET, SOCK_STREAM, 0); 
	  if (SOCKET_ERROR == c_Socket) 
	  {
    
     
		  printf("Create Socket Error!"); 
		  system("pause"); 
		  exit(1); 
	  } 
 
	  //指定服务端的地址 
	  sockaddr_in server_addr; 
	  server_addr.sin_family = AF_INET; 
	  server_addr.sin_addr.S_un.S_addr = inet_addr(SERVER_IP); 
	  server_addr.sin_port = htons(PORT); 

3 connectez-vous au serveur

if (SOCKET_ERROR == connect(c_Socket, (LPSOCKADDR)&server_addr, sizeof(server_addr))) 
	  {
    
     
		  printf("Can Not Connect To Client IP!\n"); 
		  system("pause"); 
		  exit(1); 
	  } 

4 Demandez des instructions au serveur, que ce soit pour télécharger ou télécharger.

		if(send(c_Socket, buffer, BUFFER_SIZE, 0) < 0) 
		{
    
     
			  printf("Send File Name Failed\n"); 
			  system("pause"); 
			  exit(1); 
		} 

Ensuite, le processus de téléchargement et de téléchargement est similaire à la lecture et à l'écriture de fichiers locaux.

Les amis qui ont besoin du code source peuvent me contacter. D'autres amis sont également les bienvenus pour laisser un message, échanger et apprendre

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/u011718690/article/details/114387114
conseillé
Classement