Last active
July 15, 2018 06:12
-
-
Save MaxySpark/a9c23a0227a26e04a049ed76e95b2343 to your computer and use it in GitHub Desktop.
Socket Programming
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /****************** SERVER CODE ****************/ | |
| #include <stdio.h> | |
| #include <sys/socket.h> | |
| #include <netinet/in.h> | |
| #include <string.h> | |
| #include <arpa/inet.h> | |
| int main(){ | |
| int welcomeSocket, newSocket; | |
| char buffer[1024]; | |
| struct sockaddr_in serverAddr; | |
| struct sockaddr_storage serverStorage; | |
| socklen_t addr_size; | |
| /*---- Create the socket. The three arguments are: ----*/ | |
| /* 1) Internet domain 2) Stream socket 3) Default protocol (TCP in this case) */ | |
| welcomeSocket = socket(PF_INET, SOCK_STREAM, 0); | |
| /*---- Configure settings of the server address struct ----*/ | |
| /* Address family = Internet */ | |
| serverAddr.sin_family = AF_INET; | |
| /* Set port number, using htons function to use proper byte order */ | |
| serverAddr.sin_port = htons(7891); | |
| /* Set IP address to localhost */ | |
| serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); | |
| /* Set all bits of the padding field to 0 */ | |
| memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero); | |
| /*---- Bind the address struct to the socket ----*/ | |
| bind(welcomeSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr)); | |
| /*---- Listen on the socket, with 5 max connection requests queued ----*/ | |
| if(listen(welcomeSocket,5)==0) | |
| printf("Listening\n"); | |
| else | |
| printf("Error\n"); | |
| /*---- Accept call creates a new socket for the incoming connection ----*/ | |
| addr_size = sizeof serverStorage; | |
| newSocket = accept(welcomeSocket, (struct sockaddr *) &serverStorage, &addr_size); | |
| /*---- Send message to the socket of the incoming connection ----*/ | |
| strcpy(buffer,"Hello World\n"); | |
| send(newSocket,buffer,13,0); | |
| return 0; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include<stdio.h> | |
| void main() { | |
| int data[7],rec[7],i,c1,c2,c3,c; | |
| printf("this works for message of 4bits in size \nenter message bit one by one: "); | |
| scanf("%d%d%d%d",&data[0],&data[1],&data[2],&data[4]); | |
| data[6]=data[0]^data[2]^data[4]; | |
| data[5]=data[0]^data[1]^data[4]; | |
| data[3]=data[0]^data[1]^data[2]; | |
| printf("\nthe encoded bits are given below: \n"); | |
| for (i=0;i<7;i++) { | |
| printf("%d ",data[i]); | |
| } | |
| printf("\nenter the received data bits one by one: "); | |
| for (i=0;i<7;i++) { | |
| scanf("%d",&rec[i]); | |
| } | |
| c1=rec[6]^rec[4]^rec[2]^rec[0]; | |
| c2=rec[5]^rec[4]^rec[1]^rec[0]; | |
| c3=rec[3]^rec[2]^rec[1]^rec[0]; | |
| c=c3*4+c2*2+c1 ; | |
| if(c==0) { | |
| printf("\ncongratulations there is no error: "); | |
| } else { | |
| printf("\nerror on the postion: %d\nthe correct message is \n",c); | |
| if(rec[7-c]==0) | |
| rec[7-c]=1; | |
| else | |
| rec[7-c]=0; | |
| for (i=0;i<7;i++) { | |
| printf("%d ",rec[i]); | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /****************** SERVER CODE ****************/ | |
| #include <stdio.h> | |
| #include <sys/socket.h> | |
| #include <netinet/in.h> | |
| #include <string.h> | |
| #include <arpa/inet.h> | |
| int main(){ | |
| int welcomeSocket, newSocket; | |
| char buffer[1024]; | |
| struct sockaddr_in serverAddr; | |
| struct sockaddr_storage serverStorage; | |
| socklen_t addr_size; | |
| /*---- Create the socket. The three arguments are: ----*/ | |
| /* 1) Internet domain 2) Stream socket 3) Default protocol (TCP in this case) */ | |
| welcomeSocket = socket(PF_INET, SOCK_STREAM, 0); | |
| /*---- Configure settings of the server address struct ----*/ | |
| /* Address family = Internet */ | |
| serverAddr.sin_family = AF_INET; | |
| /* Set port number, using htons function to use proper byte order */ | |
| serverAddr.sin_port = htons(7891); | |
| /* Set IP address to localhost */ | |
| serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); | |
| /* Set all bits of the padding field to 0 */ | |
| memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero); | |
| /*---- Bind the address struct to the socket ----*/ | |
| bind(welcomeSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr)); | |
| /*---- Listen on the socket, with 5 max connection requests queued ----*/ | |
| if(listen(welcomeSocket,5)==0) | |
| printf("Listening\n"); | |
| else | |
| printf("Error\n"); | |
| /*---- Accept call creates a new socket for the incoming connection ----*/ | |
| addr_size = sizeof serverStorage; | |
| newSocket = accept(welcomeSocket, (struct sockaddr *) &serverStorage, &addr_size); | |
| /*---- Send message to the socket of the incoming connection ----*/ | |
| strcpy(buffer,"Hello World\n"); | |
| send(newSocket,buffer,13,0); | |
| return 0; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <stdio.h> | |
| #include <sys/socket.h> | |
| #include <netinet/in.h> | |
| #include <string.h> | |
| #include <arpa/inet.h> | |
| int main() | |
| { | |
| int clientSocket,newSocket; | |
| struct sockaddr_in serverAddr; | |
| socklen_t addr_size; | |
| char buffer[1024]; | |
| clientSocket = socket(AF_INET,SOCK_STREAM,0); | |
| serverAddr.sin_family = AF_INET; | |
| serverAddr.sin_port = htons(7891); | |
| serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); | |
| memset(serverAddr.sin_zero,'\0',sizeof(serverAddr.sin_zero)); | |
| addr_size = sizeof(serverAddr); | |
| connect(clientSocket,(struct sockaddr *) &serverAddr, addr_size); | |
| recv(clientSocket,buffer,1024,0); | |
| printf("DATA RECEIVED : %s\n",buffer); | |
| printf("Enter MSG : "); | |
| scanf("%s",buffer); | |
| send(clientSocket,buffer,sizeof(buffer),0); | |
| recv(clientSocket,buffer,1024,0); | |
| printf("DATA RECEIVED : %s\n",buffer); | |
| return 0; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <stdio.h> | |
| #include <sys/socket.h> | |
| #include <netinet/in.h> | |
| #include <string.h> | |
| #include <arpa/inet.h> | |
| int main() | |
| { | |
| struct sockaddr_in serverAddr; | |
| struct sockaddr_storage serverStorage; | |
| int welcomeSocket, newSocket; | |
| char buffer[1024]; | |
| welcomeSocket = socket(AF_INET,SOCK_STREAM,0); | |
| serverAddr.sin_family = AF_INET; | |
| serverAddr.sin_port = htons(7891); | |
| serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); | |
| memset(serverAddr.sin_zero,'\0',sizeof(serverAddr.sin_zero)); | |
| bind(welcomeSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr)); | |
| if(listen(welcomeSocket,5)==0) { | |
| printf("Listening\n"); | |
| } else { | |
| printf("Error\n"); | |
| } | |
| socklen_t addr_size; | |
| addr_size = sizeof(serverStorage); | |
| newSocket = accept(welcomeSocket, (struct sockaddr *) &serverAddr, &addr_size); | |
| strcpy(buffer,"Server Started\n"); | |
| send(newSocket,buffer,sizeof(buffer),0); | |
| recv(newSocket,buffer,1024,0); | |
| printf("DATA RECEIVED : %s\n",buffer); | |
| printf("Enter MSG : "); | |
| scanf("%s",buffer); | |
| send(newSocket,buffer,sizeof(buffer),0); | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment