Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////// Server.c ////////////////
- #include<io.h>
- #include<stdio.h>
- #include<winsock2.h>
- #define MY_PORT 8989
- #define MAXBUF 256
- int main(int argc , char *argv[])
- {
- WSADATA wsa;
- SOCKET sockfd , clientfd;
- struct sockaddr_in self;
- char buffer[MAXBUF];
- printf("\nInitialising Winsock...");
- if (WSAStartup(MAKEWORD(2,2),&wsa) != 0)
- {
- printf("Failed. Error Code : %d",WSAGetLastError());
- return 1;
- }
- printf("Initialised.\n");
- /*---create streaming socket---*/
- if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 )
- {
- perror("Socket");
- exit(errno);
- }
- printf("Socket created.\n");
- /*---initialize address/port structure---*/
- /* bzero(&self, sizeof(self));*/
- self.sin_family = AF_INET;
- self.sin_port = htons(MY_PORT); // Host to Network Short (16-bit)
- self.sin_addr.s_addr = INADDR_ANY;
- /*---assign a port number to the socket---*/
- if ( bind(sockfd, (struct sockaddr*)&self, sizeof(self)) != 0 )
- {
- perror("socket--bind");
- exit(errno);
- }
- puts("Bind done");
- /*---make it a "listening socket"---*/
- if ( listen(sockfd, 20) != 0 )
- {
- perror("socket--listen");
- exit(errno);
- }
- puts("Waiting for incoming connections...");
- /*---forever... ---*/
- while (1)
- { struct sockaddr_in client_addr;
- int addrlen=sizeof(client_addr);
- /*---accept a connection (creating a data pipe)---*/
- clientfd = accept(sockfd, (struct sockaddr*)&client_addr, &addrlen);
- /*---To show the client's IP address and port number---*/
- printf("The IP address is : %s\n",inet_ntoa(client_addr.sin_addr));
- printf("The port number is : %u\n",htons(self.sin_port));
- /*---Loop for client's multiple requests*/
- while(1)
- {
- /*---memset is used to fill a block of memory or lse there will be garbage value---*/
- memset (buffer, 0, MAXBUF);
- /*---Receive data on socket---*/
- recv(clientfd, buffer, MAXBUF, 0);
- /*---Change string to reverse---*/
- strrev(buffer);
- /*---Change string to uppercase---*/
- strupr(buffer);
- /*---Send string to server---*/
- send (clientfd, buffer, sizeof(buffer), 0);
- //send(clientfd, buffer, recv(clientfd, buffer, MAXBUF, 0), 0);
- /*---Find the legth of string---*/
- strlen(buffer);
- printf("number of bytes sent : %ld \n",strlen(buffer));
- while(1)
- {
- if (strlen(buffer) == 0)
- printf("client terminated\n");
- break;
- }
- }
- /*---close connection---*/
- close(clientfd);
- }
- /*---clean up (should never get here!)---*/
- close(sockfd);
- WSACleanup();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement