Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

क्लाइंट सर्वर मॉडल का उपयोग करके C/C++ में एक स्ट्रिंग को उल्टा करें

यहां हम देखेंगे कि हम एक सिस्टम कैसे बना सकते हैं, जहां हम एक क्लाइंट और एक सर्वर बनाएंगे, और क्लाइंट सर्वर को एक स्ट्रिंग भेज सकता है, और सर्वर स्ट्रिंग को उलट देगा, और क्लाइंट के पास वापस आ जाएगा। पी>

यहां हम सॉकेट प्रोग्रामिंग की अवधारणा का उपयोग करेंगे। क्लाइंट सर्वर कनेक्शन बनाने के लिए, हमें पोर्ट बनाना होगा। पोर्ट नंबर एक मनमाना संख्या है जिसका उपयोग सॉकेट द्वारा किया जा सकता है। कनेक्शन स्थापित करने के लिए हमें क्लाइंट और सर्वर के लिए एक ही पोर्ट का उपयोग करना होगा।

प्रोग्राम शुरू करने के लिए, पहले सर्वर प्रोग्राम शुरू करें -

gcc Server.c –o server

फिर क्लाइंट प्रोग्राम शुरू करें -

gcc Client.c –o server

अब सर्वर क्लाइंट से एक स्ट्रिंग की प्रतीक्षा करेगा। हमें क्लाइंट साइड से इनपुट के रूप में एक स्ट्रिंग लेनी होगी, फिर इसे ट्रांसफर कर दिया जाएगा। सर्वर स्ट्रिंग को प्रिंट करेगा, और उल्टे स्ट्रिंग को भी भेजेगा। उसके बाद क्लाइंट सर्वर से उल्टे स्ट्रिंग को प्रिंट करेगा।

उदाहरण

//Client Side Code
#include <arpa/inet.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <unistd.h>
#include <string.h>
#define PORT 4000
main() {
   struct sockaddr_in address;
   int my_socket = 0, valread;
   struct sockaddr_in server_address;
   char str[100];
   int l;
   printf("Enter a String:");
   fgets(str, 100, stdin); //read string until new line character is pressed
   char buffer[1024] = { 0 }; //create a buffer and fill with 0
   // Creating socket file descriptor
   if ((my_socket = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
      printf("\nUnable to create Socket \n");
      return -1;
   }
   memset(&server_address, '0', sizeof(server_address));
   server_address.sin_family = AF_INET;
   server_address.sin_port = htons(PORT);
   if (inet_pton(AF_INET, "127.0.0.1", &server_address.sin_addr) <= 0) {
      printf("\nThe address is not supported \n");
      return -1;
   }
   // connect the socket
   if (connect(my_socket, (struct sockaddr*)&server_address, sizeof(server_address)) < 0) {
      printf("\nUnable to connect to the server \n");
      return -1;
   }
   l = strlen(str);
   send(my_socket, str, sizeof(str), 0); // send message to server side
   valread = read(my_socket, str, l); // read message sent by server
   printf("%s\n", str);
}

उदाहरण

//Server Side Code
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <unistd.h>
#include <string.h>
#define PORT 4000
char *strrev(char *str){
   char *p1, *p2;
   if (! str || ! *str)
      return str;
   for (p1 = str, p2 = str + strlen(str) - 1; p2 > p1; ++p1, --p2){
      *p1 ^= *p2;
      *p2 ^= *p1;
      *p1 ^= *p2;
   }
   return str;
}
main() {
   int server_fd, new_socket, valread;
   struct sockaddr_in address;
   char str[100];
   int addrlen = sizeof(address);
   char buffer[1024] = { 0 };
   int i, j, temp;
   int l;
   char* message = "Welcome to the server"; //initial message
   // Creating socket file descriptor
   if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
      perror("Socket connection failed");
      exit(EXIT_FAILURE);
   }
   address.sin_family = AF_INET;
   address.sin_addr.s_addr = INADDR_ANY;
   address.sin_port = htons(PORT);
   if (bind(server_fd, (struct sockaddr*)&address, sizeof(address)) < 0) { //attack with socket 4000
      perror("Unable to bind with the socket 4000");
      exit(EXIT_FAILURE);
   }
   if (listen(server_fd, 3) < 0) {
      perror("Listning.....");
      exit(EXIT_FAILURE);
   }
   if ((new_socket = accept(server_fd, (struct sockaddr*)&address,(socklen_t*)&addrlen)) < 0) {
      perror("Accept");
      exit(EXIT_FAILURE);
   }
   // read string send by client
   valread = read(new_socket, str, sizeof(str));
   l = strlen(str);
   printf("\nString sent by client:%s\n", str);
   strrev(str); //reverse the string
   send(new_socket, str, sizeof(str), 0);
   printf("\nReversed Strng is sent\n");
}

आउटपुट

क्लाइंट सर्वर मॉडल का उपयोग करके C/C++ में एक स्ट्रिंग को उल्टा करें


  1. सी/सी++ में एक स्ट्रिंग को उलट दें

    सी भाषा में एक स्ट्रिंग को उलटने के लिए यहां एक उदाहरण दिया गया है, उदाहरण #include<stdio.h> #include<string.h> int main() {    char s[50], t;    int i = 0, j = 0;    printf("\nEnter the string to reverse :");    gets(s);    

  1. सी ++ प्रोग्राम रिकर्सन का उपयोग करके एक वाक्य को उलटने के लिए

    एक स्ट्रिंग एक आयामी वर्ण सरणी है जिसे एक शून्य वर्ण द्वारा समाप्त किया जाता है। एक स्ट्रिंग के विपरीत विपरीत क्रम में एक ही स्ट्रिंग है। उदाहरण के लिए। Original String: Apple is red Reversed String: der si elppA एक प्रोग्राम जो रिकर्सन का उपयोग करके एक स्ट्रिंग के रूप में एक वाक्य को उलट देता है,

  1. सी # का उपयोग कर स्ट्रिंग को कैसे उलटें?

    एक स्ट्रिंग को उलटने के लिए, Array.Reverse() विधि का उपयोग करें। वह स्ट्रिंग सेट करें जिसे आप उलटना चाहते हैं - string str = "Amit"; उपरोक्त विधि में, हमने स्ट्रिंग को कैरेक्टर ऐरे में बदल दिया है - char[] ch = str.ToCharArray(); फिर रिवर्स () विधि का उपयोग किया जाता है। Array.Reverse(c