Guest User

codes_cn_final

a guest
Nov 6th, 2016
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 46.64 KB | None | 0 0
  1. Program 1:OSI Model
  2. Source Code:
  3. #include<stdio.h>
  4. #include<conio.h>
  5. void main()
  6. {
  7. printf("\n \t\t ISO-OSI Model");
  8. printf("\n LAYERS Sender Side");
  9. printf("\n APPLICATION lAYER !! AH !!DATA!!");
  10. sleep(1);
  11. printf("\n PRESENTATION lAYER !! PH !!AH!!DATA!!");
  12. sleep(1);
  13. printf("\n SESSION LAYER !! SH !!PH!!AH!!DATA!!");
  14. sleep(1);
  15. printf("\n TRANSPORT LAYER !! TH !!SH!!PH!!AH!!DATA!!");
  16. sleep(1);
  17. printf("\n NETWORK LAYER !! NH !!TH!!SH!!PH!!AH!!DATA!!");
  18. sleep(1);
  19. printf("\n DATALINK LAYER !! DH !!NH!!TH!!SH!!PH!!AH!!DATA!! CRC !!");
  20. sleep(1);
  21. printf("\n PHYSICAL LAYER 100100101010101110001010010 \n");
  22. sleep(1);
  23. printf("\n LAYERS Recevier Side");
  24. printf("\n PHYSICAL LAYER 100100101010101110001010010 ");
  25. sleep(1);
  26. printf("\n DATALINK LAYER !! DH !!NH!!TH!!SH!!PH!!AH!!DATA!! CRC !!");
  27. sleep(1);
  28. printf("\n NETWORK LAYER !! NH !!TH!!SH!!PH!!AH!!DATA!!");
  29. sleep(1);
  30. printf("\n TRANSPORT LAYER !! TH !!SH!!PH!!AH!!DATA!!");
  31. sleep(1);
  32. printf("\n SESSION LAYER !! SH !!PH!!AH!!DATA!!");
  33. sleep(1);
  34. printf("\n PRESENTATION lAYER !! PH !!AH!!DATA!!");
  35. sleep(1);
  36. printf("\n APPLICATION lAYER !! AH !!DATA!!");
  37. sleep(1);
  38. }
  39. Output Screen Snapshot:
  40.  
  41.  
  42.  
  43.  
  44. Program 2:Bit Stuffing
  45. Sorce Code:
  46. #include<stdio.h>
  47. #include<conio.h>
  48. main()
  49. {
  50. int a[15];
  51. int i,j,k,n,c=0,pos=0;
  52. printf("\n Enter the number of bits:");
  53. scanf("%d",&n);
  54. printf("\n Enter the bits:");
  55. for(i=0;i<n;i++)
  56. scanf("%d",&a[i]);
  57. for(i=0;i<n;i++)
  58. {
  59. if(a[i]==1)
  60. {
  61. c++;
  62. if(c==5)
  63. {
  64. pos=i+1;
  65. c=0;
  66. for(j=n;j>=pos;j--)
  67. {
  68. k=j+1;
  69. a[k]=a[j];
  70. }
  71. a[pos]=0;
  72. n=n+1;
  73. }
  74. }
  75. else
  76. c=0;
  77. }
  78.  
  79. printf("\n DATA AFTER STUFFING \n");
  80. printf(" 01111110 ");
  81. for(i=0;i<n;i++)
  82. {
  83. printf("%d",a[i]);
  84. }
  85. printf(" 01111110 ");
  86. getch();
  87. }
  88. Output Screen Snapshot:
  89.  
  90. Program 3:Byte Stuffing
  91. Source Code:
  92. #include<stdio.h>
  93. #include<conio.h>
  94. void main()
  95. {
  96. char frame[100],str[50][50];
  97. char flag='z';
  98. char esc='x';
  99. int i,j,k=0,n;
  100. frame[k++]='z';
  101. printf("Enter no.of String ::\t");
  102. scanf("%d",&n);
  103. printf("Enter String :");
  104. for(i=0;i<=n;i++)
  105. {
  106. gets(str[i]);
  107. }
  108. printf("You entered ::\n");
  109. for(i=0;i<=n;i++)
  110. {
  111. puts(str[i]);
  112. }
  113. printf("\n");
  114. for(i=1;i<=n;i++)
  115. {
  116. for(j=0;j<strlen(str[i]);j++)
  117. {
  118. if(str[i][j]!=flag&&str[i][j]!=esc)
  119. {
  120. frame[k++]=str[i][j];
  121. }
  122. else{
  123. frame[k++]='x';
  124. frame[k++]=str[i][j];
  125. }
  126. }
  127. }
  128.  
  129. frame[k++]='z';
  130. frame[k++]='\0';
  131. printf("------------------------------\n");
  132. printf("Byte stuffing at sender side:\n\n");
  133. printf("------------------------------\n");
  134. for(i=0;i<k;i++)
  135. {
  136. printf("%c",frame[i]);
  137. }
  138. printf("\n------------------------------");
  139. printf("\nByte stuffing at receiver side\n\n");
  140. printf("------------------------------\n");
  141. for(i=0;i<k;i++)
  142. {
  143. if(frame[i]=='x'|| frame[i]=='z')
  144. {
  145. i++;
  146. }
  147. printf("%c",frame[i]);
  148. }
  149. getch();
  150. }
  151. Output Screen Snapshot:
  152.  
  153.  
  154. Program 4:Character Count
  155. Source Code:
  156. #include<stdio.h>
  157. #include<conio.h>
  158. #include<string.h>
  159. void main()
  160. {
  161. int i,j,k,n,c=0,l;
  162. char s[20];
  163. printf("Enter the string:");
  164. gets(s);
  165. l=strlen(s);
  166. printf("\n%d",l);
  167. printf("\n\n");
  168. j=0;
  169. printf("Enter the frame size:");
  170. scanf("%d",&n);
  171. k=l/n;
  172. for(i=0;i<k;i++)
  173. {
  174. printf("\t dlestx");
  175. while(j<l)
  176. {
  177.  
  178. putchar(s[j]);
  179. c++;
  180. j++;
  181. if(c==n)
  182. break;
  183. }
  184. printf(" dlestx \t");
  185. printf("\n\n");
  186. c=0;
  187. }
  188. }
  189.  
  190. Output Screen Snapshot:
  191.  
  192.  
  193. Program 5:CRC
  194. Source Code:
  195. #include<stdio.h>
  196. #include<string.h>
  197. #define N strlen(g)
  198.  
  199. char t[28],cs[28],g[]="10001000000100001";
  200. int a,e,c;
  201.  
  202. void xor(){
  203. for(c = 1;c < N; c++)
  204. cs[c] = (( cs[c] == g[c])?'0':'1');
  205. }
  206.  
  207. void crc(){
  208. for(e=0;e<N;e++)
  209. cs[e]=t[e];
  210. do{
  211. if(cs[0]=='1')
  212. xor();
  213. for(c=0;c<N-1;c++)
  214. cs[c]=cs[c+1];
  215. cs[c]=t[e++];
  216. }while(e<=a+N-1);
  217. }
  218.  
  219. int main()
  220. {
  221. printf("\nEnter data : ");
  222. scanf("%s",t);
  223. printf("\n----------------------------------------");
  224. printf("\nGeneratng polynomial : %s",g);
  225. a=strlen(t);
  226. for(e=a;e<a+N-1;e++)
  227. t[e]='0';
  228. printf("\n----------------------------------------");
  229. printf("\nModified data is : %s",t);
  230. printf("\n----------------------------------------");
  231. crc();
  232. printf("\nChecksum is : %s",cs);
  233. for(e=a;e<a+N-1;e++)
  234. t[e]=cs[e-a];
  235. printf("\n----------------------------------------");
  236. printf("\nFinal codeword is : %s",t);
  237. printf("\n----------------------------------------");
  238. printf("\nTest error detection 0(yes) 1(no)? : ");
  239. scanf("%d",&e);
  240. if(e==0)
  241. {
  242. do{
  243. printf("\nEnter the position where error is to be inserted : ");
  244. scanf("%d",&e);
  245. }while(e==0 || e>a+N-1);
  246. t[e-1]=(t[e-1]=='0')?'1':'0';
  247. printf("\n----------------------------------------");
  248. printf("\nErroneous data : %s\n",t);
  249. }
  250. crc();
  251. for(e=0;(e<N-1) && (cs[e]!='1');e++);
  252. if(e<N-1)
  253. printf("\nError detected\n\n");
  254. else
  255. printf("\nNo error detected\n\n");
  256. printf("\n----------------------------------------\n");
  257. return 0;
  258. }
  259. Output Screen Snapshot:
  260.  
  261. Program 6:Sliding Window Protocol
  262. Source Code:
  263. #include<stdio.h>
  264. #include<conio.h>
  265. void main()
  266. {
  267. char sender[50],receiver[50];
  268. int i,winsize;
  269. printf("\n ENTER THE WINDOWS SIZE : ");
  270. scanf("%d",&winsize);
  271. printf("\n SENDER WINDOW IS EXPANDED TO STORE MESSAGE OR WINDOW \n");
  272. printf("\n ENTER THE DATA TO BE SENT: ");
  273. fflush(stdin);
  274. gets(sender);
  275. for(i=0;i<winsize;i++)
  276. receiver[i]=sender[i];
  277. receiver[i]=NULL;
  278. printf("\n MESSAGE SEND BY THE SENDER:\n");
  279. puts(sender);
  280. printf("\n WINDOW SIZE OF RECEIVER IS EXPANDED\n");
  281. printf("\n ACKNOWLEDGEMENT FROM RECEIVER \n");
  282. for(i=0;i<winsize;i++);
  283. printf("\n ACK:%d",i);
  284. printf("\n MESSAGE RECEIVED BY RECEIVER IS : ");
  285. puts(receiver);
  286. printf("\n WINDOW SIZE OF RECEIVER IS SHRINKED \n");
  287. }
  288.  
  289. Output Screen Snapshot:
  290.  
  291.  
  292. Program 7:Hamming Code
  293. Source Code:
  294. #include<stdio.h>
  295. #include<math.h>
  296. int main()
  297. {
  298. int a[20],b[20],c[20],d[20],i,k,m,f,n,j,r,p,x,y,z,ch,key,q,v,sum=0;
  299. system("clear");
  300. printf("\n ENTER THE LENGTH OF DATA WORD :");
  301. scanf("%d",&k);
  302. printf("\n ENTER THE DATA WORD \n");
  303. for(i=1; i<=k; i++){
  304. scanf("%d",&a[i]);
  305. }
  306. m=1;
  307. while((k+m+1)>=pow(2,m)){
  308. m++;
  309. }
  310. printf("\n Value of m is : %d",m);
  311. n=k+m;
  312. j=1; r=0;
  313. for(i=1; i<=n; i++){
  314. p=pow(2,r);
  315. if(i==p){
  316. b[i]=0;
  317. r++;
  318. }
  319. else{
  320. b[i]=a[j];
  321. j++;
  322. }
  323. }
  324. printf("\n INTERMEDIATE CODE WORD IS \n");
  325. for(i=1; i<=n; i++)
  326. printf("%d",b[i]);
  327. p=0;
  328. for(i=1; i<=m; i++)
  329. {
  330. x=pow(2,p); r=1;
  331. for(j=x; j<=n; j=j+(x*2)){
  332. for(y=j; y<(j+x); y++){
  333. c[r]=b[y];
  334. r++;
  335. }
  336. }
  337. z=0;
  338. for(y=1; y<=(r-1); y++)
  339. {
  340. if(c[y]==1) z++;
  341. }
  342. if(z%2==0)
  343. b[x]=0;
  344. else
  345. b[x]=1;
  346. for(y=1; y<=20; y++)
  347. c[y]=0;
  348. p++;
  349. }
  350. printf("\n\n THE HAMMING CODE IS \n");
  351. for(i=1; i<=n; i++)
  352. printf("%d",b[i]);
  353. while(1){
  354. printf("\n\n PRESS 1 TO ALTER A BIT 0 to EXIT \n\n");
  355. scanf("%d",&ch);
  356. if(ch==1){
  357. printf("\n ENTER THE BIT YOU WANT TO CHANGE \n");
  358. scanf("%d",&key);
  359. for(i=1; i<=n; i++){
  360. if(i==key){
  361. if(b[key]==1) b[key]=0;
  362. else b[key]=1;
  363. break;
  364. }
  365. }
  366. printf("\n THE NEW CODE IS \n\n");
  367. for(i=1; i<=n; i++)
  368. printf("%d",b[i]);
  369. }
  370. else
  371. break;
  372. }
  373. p=0; q=0;
  374. for(i=1; i<=m; i++)
  375. {
  376. x=pow(2,p); r=1;
  377. for(j=x; j<=n; j=j+(x*2)){
  378. for(y=j; y<(j+x); y++){
  379. c[r]=b[y];
  380. r++;
  381. }
  382. }
  383. z=0;
  384. for(y=1; y<=(r-1); y++)
  385. {
  386. if(c[y]==1) z++;
  387. }
  388. v=z%2;
  389. d[q]=v;
  390. sum=sum+(v*pow(2,q));
  391. q++;
  392. for(y=1; y<=20; y++)
  393. c[y]=0;
  394. p++;
  395. }
  396. if(sum==0)
  397. printf("\n\n NO ERROR FOUND....... \n\n");
  398. else
  399. printf("\n\n ERROR AT POSITION %d",sum);
  400. printf("\n");
  401. return 0;
  402. }
  403. Output Screen Snapshot:
  404.  
  405.  
  406. Program 8 : CHECKSUM
  407. Source Code:
  408. #include<stdio.h>
  409. #include<conio.h>
  410. #include<math.h>
  411. void main()
  412. {
  413. int r,t[20],x,o,a[30],i,j,k,z,aa,b[20],n,y,s,n1,flag=0;
  414. printf("*********sender side***********\n");
  415. printf("enter the data length:");
  416. scanf("%d",&n);
  417. for(i=1;i<=30;i++)
  418. {
  419. a[i]=0;
  420. }
  421. printf("enter the data:");
  422. for(i=1;i<=n;i++)
  423. scanf("%d",&a[i]);
  424. printf("enter the chopping size:");
  425. scanf("%d",&o);
  426. z=0;
  427. for(i=1;i<=n;i=i+o)
  428. {
  429. x=o-1;
  430. k=0;
  431. for(j=i;j<i+o;j++)
  432. {
  433. k+=pow(2,x)*a[j];
  434. x--;
  435. }
  436. z=z+k;
  437. }
  438. printf("\ntotal in decimal is=%d",z);
  439. y=0;
  440. s=1;
  441. while(z>=1)
  442. {
  443. aa=z%2;
  444. t[s]=aa;
  445. s++;
  446. z=z/2;
  447. y++;
  448. }
  449. if(y>o)
  450. {
  451. t[1]=t[o+1]+t[1];
  452. }
  453. r=1;
  454. for(i=o;i>=1;i--)
  455. {
  456. b[r]=t[i];
  457. r++;
  458. }
  459. for(i=o;i>=1;i--)
  460. {
  461. if(b[i]>1)
  462. {
  463. b[i]=b[i]%2;
  464. b[i-1]+=1;
  465. }
  466. }
  467. printf("\nb[i]=");
  468. for(i=1;i<=o;i++)
  469. printf("\t%d",b[i]);
  470. for(i=1;i<=o;i++)
  471. {
  472. if(b[i]==0)
  473. b[i]=1;
  474. else
  475. b[i]=0;
  476. }
  477. printf("\nthe checksum value is:");
  478. for(i=1;i<=o;i++)
  479. {
  480. printf("\t%d",b[i]);
  481. }
  482. printf("\n*********Receiver side*********\n");
  483. for(i=1;i<=30;i++)
  484. {
  485. a[i]=0;
  486. }
  487. n=n+o;
  488. printf("enter the data:");
  489. for(i=1;i<=n;i++)
  490. scanf("%d",&a[i]);
  491. z=0;
  492. for(i=1;i<=n;i=i+o)
  493. {
  494. x=o-1;
  495. k=0;
  496. for(j=i;j<i+o;j++)
  497. {
  498. k+=pow(2,x)*a[j];
  499. x--;
  500. }
  501. z=z+k;
  502. }
  503. printf("total in decimal is:%d",z);
  504. y=0;
  505. s=1;
  506. while(z>=1)
  507. {
  508. aa=z%2;
  509. t[s]=aa;
  510. s++;
  511. z=z/2;
  512. y++;
  513. }
  514. if(y>o)
  515. {
  516. t[1]=t[o+1]+t[1];
  517. }
  518. r=1;
  519. for(i=o;i>=1;i--)
  520. {
  521. b[r]=t[i];
  522. r++;
  523. }
  524. for(i=o;i>=1;i--)
  525. {
  526. if(b[i]>1)
  527. {
  528. b[i]=b[i]%2;
  529. b[i-1]+=1;
  530. }
  531. }
  532. printf("\nb[i]=");
  533. for(i=1;i<=o;i++)
  534. printf("\t%d",b[i]);
  535. for(i=1;i<=o;i++)
  536. {
  537. if(b[i]==0)
  538. b[i]=1;
  539. else
  540. b[i]=0;
  541. }
  542. printf("\nthe checksum value is:");
  543. for(i=1;i<=o;i++)
  544. {
  545. printf("\t%d",b[i]);
  546. }
  547. for(i=1;i<=o;i++)
  548. {
  549. if(b[i]==1)
  550. {
  551. flag=1;
  552. }
  553. }
  554. if(flag!=0)
  555. printf("\nError present in the code....");
  556. else
  557. {
  558. printf("\nNO error present in the code....");
  559. getch();
  560. printf("\n\tcode successfully accepted by receiver.....");
  561. }
  562. getch();
  563. }
  564.  
  565. 14BCE0728
  566. SHREEJIT VERMA
  567.  
  568. 8. Chat application using TCP/IP.
  569.  
  570. //client side
  571.  
  572. #include<stdio.h>
  573. #include<sys/types.h>
  574. #include<sys/socket.h>
  575. #include<netinet/in.h>
  576. #include<netdb.h>
  577. #define SERV_TCP_PORT 5035
  578. int main(int argc,char*argv[])
  579. {
  580. int sockfd;
  581. struct sockaddr_in serv_addr;
  582. struct hostent *server;
  583. char buffer[4096];
  584. int k=5,cnt=0;
  585. sockfd=socket(AF_INET,SOCK_STREAM,0);
  586. serv_addr.sin_family=AF_INET;
  587. serv_addr.sin_addr.s_addr=inet_addr("127.0.0.1");
  588. serv_addr.sin_port=htons(SERV_TCP_PORT);
  589. printf("\nReady for sending...");
  590. connect(sockfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr));
  591. while(cnt <= k)
  592. {
  593. printf("\nEnter the message to send\n");
  594. printf("\nClient: ");
  595. fgets(buffer,4096,stdin);
  596. write(sockfd,buffer,4096);
  597. printf("Serverecho:%s",buffer);
  598. printf("\n");
  599. cnt++;
  600. }
  601. close(sockfd);
  602. return 0;
  603. }
  604.  
  605. //Server Side
  606.  
  607. #include<stdio.h>
  608. #include<netinet/in.h>
  609. #include<netdb.h>
  610. #include<string.h>
  611. #define SERV_TCP_PORT 5035
  612. int main(int argc,char**argv)
  613. {
  614. int sockfd,newsockfd,clength;
  615. struct sockaddr_in serv_addr,cli_addr;
  616. char buffer[4096];
  617. //creating a socket
  618. sockfd=socket(AF_INET,SOCK_STREAM,0);
  619.  
  620. serv_addr.sin_family=AF_INET;
  621. serv_addr.sin_addr.s_addr=INADDR_ANY;
  622. serv_addr.sin_port=htons(SERV_TCP_PORT);
  623. printf("\nStart");
  624. //bind the socket to port address and any local interface
  625. bind(sockfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr));
  626. printf("\nListening...");
  627. printf("\n");
  628. listen(sockfd,5);
  629. clength=sizeof(cli_addr);
  630. newsockfd=accept(sockfd,(struct sockaddr*)&cli_addr,&clength);
  631. //newsockfd=accept(sockfd,(struct sockaddr*)NULL,NULL);
  632. printf("\nAccepted");
  633. printf("\n");
  634. while(1)
  635. {
  636. bzero(buffer,4096);
  637. read(newsockfd,buffer,4096);
  638. printf("\nClient message:%s",buffer);
  639. write(newsockfd,buffer,strlen(buffer)+1);
  640. printf("\n");
  641. }
  642. //close(sockfd);
  643. //return 0;
  644.  
  645. }
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654. Ques. Simulation of Sliding Window Protocol
  655.  
  656. Simulation of Sliding Window Protocol
  657. /* Simulation of Sliding Window Protocol */
  658. #include<stdio.h>
  659. #include<stdlib.h>
  660. #include<string.h>
  661.  
  662. int main() {
  663.  
  664. int win_size;
  665. int no_of_packets;
  666. int base = 0;
  667. int next_seq_no = 0;
  668.  
  669.  
  670. printf("Enter the window size: ");
  671. scanf("%d",&win_size);
  672. printf("Enter no of packets: ");
  673. scanf("%d",&no_of_packets);
  674. int *buffer = (int *)malloc(no_of_packets * sizeof(int));
  675.  
  676. int i,j;
  677. printf("\nCurrent buffer:\n");
  678. for(i=0;i<no_of_packets; i++) {
  679. buffer[i] = i+1;
  680. printf("%4d",i+1);
  681. }
  682.  
  683. j=0;
  684. int choice;
  685. while(base < no_of_packets) {
  686. j=0;
  687. printf("\nTransmitting packets:");
  688. while( ((base+j+next_seq_no) < no_of_packets) && (j+next_seq_no)<win_size ) {
  689. printf("%4d",buffer[base+j+next_seq_no]);
  690. j++;
  691. }
  692.  
  693. printf("\nUnacknowledged packets: ");
  694. j=0;
  695. while( (base+j) < no_of_packets && j< win_size) {
  696. printf("%4d",buffer[base+j]);
  697. j++;
  698. }
  699.  
  700. printf("\nEnter a packet no to acknowledge that packet or -1 to simulate timout event: ");
  701. scanf("%d",&choice);
  702.  
  703. if(choice < 0) {
  704. printf("\nRetransmitting packets:");
  705. j=0;
  706. while( (base+j) < no_of_packets && j<win_size ) {
  707. printf("%4d",buffer[base+j]);
  708. j++;
  709. }
  710. next_seq_no = base+win_size;
  711. }
  712. else {
  713. next_seq_no = base+win_size-choice;
  714. base = choice;
  715. }
  716. }
  717. return 0;
  718. }
  719.  
  720.  
  721. OSI Model
  722.  
  723. #include<stdio.h>
  724. #include<stdlib.h>
  725. #include<string.h>
  726.  
  727. int main()
  728. {
  729. char msg[100];
  730. char temp[100];
  731. char ah[100]="AH ", ph[100]="PH", sh[100]="SH", th[100]="TH", nh[100]="NH", dh[100]="DH";
  732. char ahr[100], phr[100], shr[100], thr[100], nhr[100], dhr[100];
  733. printf("Enter your message is: ");
  734. scanf("%s",msg);
  735. printf("Transmitter:\n");
  736. strcpy(temp,msg);
  737. strcat(ah,temp);
  738. printf("Application Layer: %s\n",ah);
  739. strcpy(temp,ah);
  740. strcat(ph,temp);
  741. printf("Presentation Layer: %s\n",ph);
  742. strcpy(temp,ph);
  743. strcat(sh,temp);
  744. printf("Session Layer: %s\n",sh);
  745. strcpy(temp,sh);
  746. strcat(th,temp);
  747. printf("Transport Layer: %s\n",th);
  748. strcpy(temp,th);
  749. strcat(nh,temp);
  750. printf("Network Layer: %s\n",nh);
  751. strcpy(temp,nh);
  752. strcat(dh,temp);
  753. printf("DataLink Layer: %s\n",dh);
  754. strcpy(temp,dh);
  755. printf("%s",temp);
  756. printf("\nMessage reached to Physical Layer and ready to be transmitted.\n\n");
  757. printf("RECEIVER:\n\n");
  758. printf("Message entered into Physical Layer");
  759. int j,k,i=2;
  760. strcpy(dhr,temp);
  761. printf("\nDataLink Layer: ");
  762. printf("%s",dhr);
  763. printf("\nNetwork Layer: ");
  764. for(j=i,k=0;temp[j]!='\0';j++,k++)
  765. {
  766. nhr[k]=temp[j];
  767. printf("%c",nhr[k]);
  768. }
  769. i=i+2;
  770. printf("\nTransport Layer: ");
  771. for(j=i,k=0;temp[j]!='\0';j++,k++)
  772. {
  773. thr[k]=temp[j];
  774. printf("%c",thr[k]);
  775. }
  776. i=i+2;
  777. printf("\nSession Layer: ");
  778. for(j=i,k=0;temp[j]!='\0';j++,k++)
  779. {
  780. shr[k]=temp[j];
  781. printf("%c",shr[k]);
  782. }
  783. i=i+2;
  784. printf("\nPresentation Layer: ");
  785. for(j=i,k=0;temp[j]!='\0';j++,k++)
  786. {
  787. phr[k]=temp[j];
  788. printf("%c",phr[k]);
  789. }
  790. i=i+2;
  791. printf("\nApplication Layer: ");
  792. for(j=i,k=0;temp[j]!='\0';j++,k++)
  793. {
  794. ahr[k]=temp[j];
  795. printf("%c",ahr[k]);
  796. }
  797. }
  798.  
  799.  
  800.  
  801.  
  802. Frame Length
  803.  
  804.  
  805. #include<iostream>
  806. using namespace std;
  807.  
  808. int main()
  809. {
  810. cout << "Enter the number of frames: ";
  811. int n;
  812. cin >> n;
  813. string str;
  814. string op;
  815. char size;
  816. while(n--)
  817. {
  818. cout << "Enter the word: ";
  819. cin >> str;
  820. size=(str.size())+'0';
  821. op = op + size + str;
  822. }
  823. cout << "The transmitted data is: \n";
  824. cout << op;
  825. }
  826.  
  827.  
  828.  
  829.  
  830. Hamming Code
  831.  
  832.  
  833. #include<stdio.h>
  834. #include<conio.h>
  835. int main() {
  836. int data[7],rec[7],i,c1,c2,c3,c;
  837. printf("this works for message of 4bits in size \nenter message bit one by one: ");
  838. scanf("%d%d%d%d",&data[0],&data[1],&data[2],&data[3]);
  839. data[6]=data[3]^data[2]^data[1];
  840. data[5]=data[2]^data[1]^data[0];
  841. data[4]=data[3]^data[2]^data[0];
  842. printf("\nthe encoded bits are given below: \n");
  843. for (i=0;i<7;i++) {
  844. printf("%d ",data[i]);
  845. }
  846. printf("\nenter the received data bits one by one: ");
  847. for (i=0;i<7;i++) {
  848. scanf("%d",&rec[i]);
  849. }
  850. c1=rec[1]^rec[2]^rec[3]^rec[6];
  851. c2=rec[0]^rec[1]^rec[2]^rec[5];
  852. c3=rec[0]^rec[2]^rec[3]^rec[4];
  853. c=c3*4+c2*2+c1 ;
  854. if(c==0) {
  855. printf("\ncongratulations there is no error: ");
  856. } else if( c==1)
  857. {
  858. printf("\n Error in 7th bit");
  859. if(rec[6]==1)
  860. rec[6]=0;
  861. else
  862. rec[6]=1;
  863. }
  864. else if(c==2)
  865. {
  866. printf("\n Error in 6th bit");
  867. if(rec[5]==1)
  868. rec[5]=0;
  869. else
  870. rec[5]=1;
  871. }
  872. else if(c==3)
  873. {
  874. printf("\n Error in 2nd bit");
  875. if(rec[1]==1)
  876. rec[1]=0;
  877. else
  878. rec[1]=1;
  879. }
  880. else if(c==4)
  881. {
  882. printf("\n Error in 5th bit");
  883. if(rec[4]==1)
  884. rec[4]=0;
  885. else
  886. rec[4]=1;
  887. }
  888. else if(c==5)
  889. {
  890. printf("\n Error in 4th bit");
  891. if(rec[3]==1)
  892. rec[3]=0;
  893. else
  894. rec[3]=1;
  895. }
  896. else if(c==6)
  897. {
  898. printf("\n Error in 1st bit");
  899. if(rec[0]==1)
  900. rec[0]=0;
  901. else
  902. rec[0]=1;
  903. }
  904. else if(c==7)
  905. {
  906. printf("\n Error in 2nd bit");
  907. if(rec[1]==1)
  908. rec[1]=0;
  909. else
  910. rec[1]=1;
  911. }
  912. printf("\n Corrected pattern\t");
  913. for (i=0;i<7;i++) {
  914. printf("%d ",rec[i]);
  915. }
  916. getch();
  917. return 0;
  918. }
  919.  
  920.  
  921.  
  922.  
  923.  
  924. Bit Stuffing
  925.  
  926.  
  927. #include <iostream>
  928. using namespace std ;
  929. int main ()
  930. {
  931.  
  932. char a[25] = "110011111100111111110";
  933. char b[25] = "", c[25] = "";
  934. int i = 0, count = 0, j = 0 ;
  935.  
  936. cout << endl << "Before stuffing \t: " << a <<endl ;
  937.  
  938. for ( i = 0, j = 0 ; a[i] ; i++, j++ )
  939. {
  940. if ( a[i] == '1' )
  941. count++ ;
  942. else
  943. count = 0 ;
  944.  
  945. b[j] = a[i] ;
  946.  
  947. if ( count == 5 )
  948. {
  949. b[++j] = '0' ;
  950. count = 0 ;
  951. }
  952. }
  953.  
  954. cout << endl << "After stuffing \t: " << b <<endl ;
  955.  
  956. for ( i = 0, j = 0 ; b[i] ; i++, j++ )
  957. {
  958. if ( b[i] == '1' )
  959. count++ ;
  960. else
  961. count = 0 ;
  962.  
  963. c[j] = b[i] ;
  964.  
  965. if ( count == 5 )
  966. {
  967. i++ ;
  968. count = 0 ;
  969. }
  970. }
  971.  
  972. cout << endl << "After de-stuffing \t: " << c << endl << endl;
  973. }
  974.  
  975.  
  976. Byte Stuffing
  977.  
  978.  
  979.  
  980.  
  981.  
  982. #include <stdio.h>
  983. #include <conio.h>
  984. int main()
  985. {
  986. char str[100];
  987. int k=0; int i,j;
  988. for(j=0;j<100;j++)
  989. str[j]=' ';
  990. printf("\n Enter length of data");
  991. scanf("%d", &k);
  992. printf("\n Enter data");
  993. scanf("%s",str);
  994. char flag='e';
  995. char ent='z';
  996. char temp;
  997. for (i=0;i<k;i++)
  998. {
  999. if(str[i]==flag)
  1000. {
  1001. for (j=k+1;j>=i+1;j--)
  1002. {
  1003. temp=str[j-1];
  1004. str[j]=temp;
  1005. }
  1006. k++;
  1007. str[i]='z';
  1008. i++;
  1009. }
  1010. if(str[i]=='z')
  1011. {
  1012. for (j=k+1;j>=i;j--)
  1013. {
  1014. str[j]=str[j-1];
  1015. }
  1016. k++;
  1017. str[i]='z';
  1018. i++;
  1019. }
  1020. }
  1021. for(i=k+1;i>=1;i--)
  1022. {
  1023. temp=str[i-1];
  1024. str[i]=temp;
  1025. }
  1026. str[0]=flag;
  1027. str[k+1]=flag;
  1028. printf("\nOutput:");
  1029. puts(str);
  1030. getch();
  1031. }
  1032.  
  1033.  
  1034.  
  1035. Check Sum
  1036.  
  1037.  
  1038.  
  1039.  
  1040. #include<stdio.h>
  1041. #include<conio.h>
  1042. int adder( int binary1, int binary2)
  1043. {
  1044. int ad=0,sumer[20],i=0,remainder=0;
  1045. while(binary1!=0||binary2!=0)
  1046. {
  1047. sumer[i++] = (binary1 %10 + binary2 %10 + remainder ) % 2;
  1048. remainder = (binary1 %10 + binary2 %10 + remainder ) / 2;
  1049. binary1=binary1/10;
  1050. binary2=binary2/10;
  1051. }
  1052. if(remainder!=0)
  1053. sumer[i++]=remainder;
  1054. --i;
  1055. while(i>=0)
  1056. {
  1057. ad=ad*10+sumer[i];
  1058. --i;
  1059. }
  1060. return ad;
  1061. }
  1062. int main()
  1063. {
  1064. printf("Enter the number of binary numbers for which you want to find the checksum \n");
  1065. int count,rem=0,temp2=0;
  1066. scanf("%d",&count);
  1067. int temp;
  1068. int sum=0;
  1069. printf("Enter a binary number\n");
  1070. scanf("%d",&temp);
  1071. for(int i=2;i<=count;i++)
  1072. {
  1073. if(i==2)
  1074. {
  1075. printf("Enter a binary number\n");
  1076. scanf("%d",&temp2);
  1077. sum=sum+adder(temp2, temp);
  1078. }
  1079. else
  1080. {
  1081. printf("Enter a binary number\n");
  1082. scanf("%d",&temp2);
  1083. sum=adder(temp2, sum);
  1084. }
  1085. }
  1086. printf("Sum=%d\n",sum);
  1087. int newsum[100],c=0;
  1088. for(int i=0;i<100;i++)
  1089. newsum[i]=0;
  1090. while(sum>0)
  1091. {
  1092. rem=sum%10;
  1093. if(rem==0)
  1094. {
  1095. newsum[c]=1;
  1096. }
  1097. else if(rem==1)
  1098. {
  1099. newsum[c]=0;
  1100. }
  1101. c++;
  1102. sum/=10;
  1103. }
  1104. c=c-1;
  1105. printf("Checksum=");
  1106. while(c>=0)
  1107. {
  1108. printf("%d",newsum[c]);
  1109. c-=1;
  1110. }
  1111. return 0;
  1112. }
  1113.  
  1114.  
  1115.  
  1116. CRC Calculator
  1117.  
  1118.  
  1119.  
  1120. #include <stdio.h>
  1121. #include <conio.h>
  1122. #include <string.h>
  1123. void main()
  1124. {
  1125. int i,j,keylen,msglen;
  1126. char input[100], key[30],temp[30],quot[100],rem[30],key1[30];
  1127. printf("Enter Data: ");
  1128. gets(input);
  1129. printf("Enter Key: ");
  1130. gets(key);
  1131. keylen=strlen(key);
  1132. msglen=strlen(input);
  1133. strcpy(key1,key);
  1134. for(i=0;i<keylen-1;i++)
  1135. {
  1136. input[msglen+i]='0';
  1137. }
  1138. for(i=0;i<keylen;i++)
  1139. temp[i]=input[i];
  1140. for(i=0;i<msglen;i++)
  1141. {
  1142. quot[i]=temp[0];
  1143. if(quot[i]=='0')
  1144. for(j=0;j<keylen;j++)
  1145. key[j]='0';
  1146. else
  1147. for(j=0;j<keylen;j++)
  1148. key[j]=key1[j];
  1149. for(j=keylen-1;j>0;j--)
  1150. {
  1151. if(temp[j]==key[j])
  1152. rem[j-1]='0';
  1153. else
  1154. rem[j-1]='1';
  1155. }
  1156. rem[keylen-1]=input[i+keylen];
  1157. strcpy(temp,rem);
  1158. }
  1159. strcpy(rem,temp);
  1160. printf("\nQuotient is ");
  1161. for(i=0;i<msglen;i++)
  1162. printf("%c",quot[i]);
  1163. printf("\nRemainder is ");
  1164. for(i=0;i<keylen-1;i++)
  1165. printf("%c",rem[i]);
  1166. printf("\nFinal data is: ");
  1167. for(i=0;i<msglen;i++)
  1168. printf("%c",input[i]);
  1169. for(i=0;i<keylen-1;i++)
  1170. printf("%c",rem[i]);
  1171. getch();
  1172. }
  1173.  
  1174.  
  1175.  
  1176.  
  1177. Sliding Window
  1178.  
  1179.  
  1180.  
  1181.  
  1182. #include<stdio.h>
  1183.  
  1184. #include<conio.h> void main()
  1185. {
  1186.  
  1187. char sender[50],receiver[50]; int i,winsize;
  1188. clrscr();
  1189.  
  1190. printf("\n ENTER THE WINDOWS SIZE : ");
  1191.  
  1192. scanf("%d",&winsize);
  1193.  
  1194. printf("\n SENDER WINDOW IS EXPANDED TO STORE MESSAGE OR WINDOW \n"); printf("\n ENTER THE DATA TO BE SENT: ");
  1195. fflush(stdin); gets(sender); for(i=0;i<winsize;i++) receiver[i]=sender[i]; receiver[i]=NULL;
  1196. printf("\n MESSAGE SEND BY THE SENDER:\n");
  1197.  
  1198. puts(sender);
  1199.  
  1200. printf("\n WINDOW SIZE OF RECEIVER IS EXPANDED\n"); printf("\n ACKNOWLEDGEMENT FROM RECEIVER \n");
  1201. for(i=0;i<winsize;i++); printf("\n ACK:%d",i);
  1202. printf("\n MESSAGE RECEIVED BY RECEIVER IS : ");
  1203.  
  1204. puts(receiver);
  1205.  
  1206. printf("\n WINDOW SIZE OF RECEIVER IS SHRINKED \n");
  1207.  
  1208.  
  1209.  
  1210. getch();
  1211.  
  1212. }
  1213.  
  1214.  
  1215.  
  1216. Client server based Sliding window protocol
  1217.  
  1218.  
  1219.  
  1220. SENDER
  1221.  
  1222. #include<sys/socket.h>
  1223.  
  1224. #include<sys/types.h>
  1225.  
  1226. #include<netinet/in.h>
  1227.  
  1228. #include<netdb.h>
  1229.  
  1230. #include<stdio.h>
  1231.  
  1232. #include<string.h>
  1233.  
  1234. #include<stdlib.h>
  1235.  
  1236. #include<unistd.h>
  1237.  
  1238. #include<errno.h> int main()
  1239. {
  1240.  
  1241. int sock,bytes_received,connected,true=1,i=1,s,f=0,sin_size; char send_data[1024],data[1024],c,fr[30]=" ";
  1242. struct sockaddr_in server_addr,client_addr; if((sock=socket(AF_INET,SOCK_STREAM,0))==-1)
  1243. {
  1244.  
  1245. perror("Socket not created"); exit(1);
  1246. }
  1247.  
  1248.  
  1249.  
  1250. if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&true,sizeof(int))==-1)
  1251.  
  1252. {
  1253.  
  1254. perror("Setsockopt"); exit(1);
  1255. }
  1256.  
  1257. server_addr.sin_family=AF_INET; server_addr.sin_port=htons(17000); server_addr.sin_addr.s_addr=INADDR_ANY;
  1258. if(bind(sock,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1)
  1259.  
  1260. {
  1261.  
  1262. perror("Unable to bind"); exit(1);
  1263. }
  1264.  
  1265. if(listen(sock,5)==-1)
  1266.  
  1267. {
  1268.  
  1269. perror("Listen"); exit(1);
  1270. }
  1271.  
  1272. fflush(stdout); sin_size=sizeof(struct sockaddr_in);
  1273. connected=accept(sock,(struct sockaddr *)&client_addr,&sin_size); while(strcmp(fr,"exit")!=0)
  1274. {
  1275.  
  1276. printf("Enter Data Frame %d:(Enter exit for End): ",i); scanf("%s",fr);
  1277.  
  1278.  
  1279.  
  1280. send(connected,fr,strlen(fr),0); recv(sock,data,1024,0); if(strlen(data)!=0)
  1281. printf("I got an acknowledgement : %s\n",data); fflush(stdout);
  1282. i++;
  1283.  
  1284. }
  1285.  
  1286. close(sock); return (0);
  1287. }
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311. RECEIVER
  1312.  
  1313. #include<sys/socket.h>
  1314.  
  1315. #include<sys/types.h>
  1316.  
  1317.  
  1318.  
  1319. #include<netinet/in.h>
  1320.  
  1321. #include<netdb.h>
  1322.  
  1323. #include<stdio.h>
  1324.  
  1325. #include<string.h>
  1326.  
  1327. #include<stdlib.h>
  1328.  
  1329. #include<unistd.h>
  1330.  
  1331. #include<errno.h> int main()
  1332. {
  1333.  
  1334. int sock,bytes_received,i=1; char receive[30];
  1335. struct hostent *host;
  1336.  
  1337. struct sockaddr_in server_addr; host=gethostbyname("127.0.0.1"); if((sock=socket(AF_INET,SOCK_STREAM,0))==-1)
  1338. {
  1339.  
  1340. perror("Socket not created"); exit(1);
  1341. }
  1342.  
  1343. printf("Socket created"); server_addr.sin_family=AF_INET; server_addr.sin_port=htons(17000); server_addr.sin_addr=*((struct in_addr *)host->h_addr); bzero(&(server_addr.sin_zero),8);
  1344. if(connect(sock,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1)
  1345.  
  1346.  
  1347.  
  1348. {
  1349.  
  1350. perror("Connect"); exit(1);
  1351. }
  1352.  
  1353. while(1)
  1354.  
  1355. {
  1356.  
  1357. bytes_received=recv(sock,receive,20,0); receive[bytes_received]='\0'; if(strcmp(receive,"exit")==0||strcmp(receive,"exit")==0)
  1358. {
  1359.  
  1360. close(sock); break;
  1361. }
  1362.  
  1363. else
  1364.  
  1365. {
  1366.  
  1367. if(strlen(receive)<10)
  1368.  
  1369. {
  1370.  
  1371. printf("\n Frame %d data %s received\n",i,receive); send(0,receive,strlen(receive),0);
  1372. }
  1373.  
  1374. else
  1375.  
  1376. {
  1377.  
  1378. send(0,"negative",10,0);
  1379.  
  1380. } i++;
  1381.  
  1382.  
  1383.  
  1384. }
  1385.  
  1386. }
  1387.  
  1388. close(sock); return(0);
  1389. }
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408. OUTPUT SENDER
  1409. $ cc sender.c
  1410.  
  1411. $ ./a.out
  1412.  
  1413. Enter Data Frame 1:(Enter exit for End): saveetha Enter Data Frame 2:(Enter exit for End): mca Enter Data Frame 3:(Enter exit for End): exit
  1414. $
  1415.  
  1416.  
  1417.  
  1418. RECEIVER
  1419.  
  1420. $ cc receiver.c
  1421.  
  1422.  
  1423.  
  1424. $ ./a.out Socket created
  1425. Frame 1 data saveetha received Frame 2 data mca received
  1426. $
  1427.  
  1428.  
  1429.  
  1430.  
  1431. HOST INFORMATION
  1432.  
  1433.  
  1434. #include <stdio.h>
  1435. #include <string.h>
  1436. #include <stdlib.h>
  1437. #include <sys/socket.h>
  1438. #include <errno.h>
  1439. #include <netdb.h>
  1440. #include <arpa/inet.h>
  1441.  
  1442. int get_ip(char * , char *);
  1443.  
  1444. int main(int argc , char *argv[])
  1445. {if(argc <2)
  1446. {printf("Please provide a hostname");
  1447. exit(1);}
  1448. char *hostname = argv[1];
  1449. char ip[100];
  1450. get_ip(hostname , ip);
  1451. printf("%s resolved to %s" , hostname , ip);
  1452. printf("\n");}
  1453.  
  1454. int get_ip(char * hostname , char* ip)
  1455. { struct hostent *he;
  1456. struct in_addr **addr_list;
  1457. int i;
  1458. if ( (he = gethostbyname( hostname ) ) == NULL)
  1459. { herror("gethostbyname");
  1460. return 1;}
  1461. addr_list = (struct in_addr **) he->h_addr_list;
  1462. for(i = 0; addr_list[i] != NULL; i++)
  1463. { strcpy(ip , inet_ntoa(*addr_list[i]) );
  1464. return 0;}
  1465. return 1;
  1466. }
  1467.  
  1468.  
  1469.  
  1470.  
  1471. DAY TIME SERVER
  1472.  
  1473. #include<netinet/in.h>
  1474. #include<sys/socket.h>
  1475. main( )
  1476. {
  1477. struct sockaddr_in sa;
  1478. struct sockaddr_in cli;
  1479. int sockfd,coontfd;
  1480. int len,ch;
  1481. char str[100];
  1482. time_t tick;
  1483. sockfd=socket(AF_INET,SOCK_STREAM,0);
  1484. if(socket<0)
  1485. {
  1486. printf(“error in socket\n”);
  1487. exit(0);
  1488. }
  1489. else
  1490. printf(“Socket Opened”);
  1491. bzero(7sa,sizeof(sa));
  1492. sa.sin_port=htons(5600);
  1493. sa.sin_addr.s_addr=htonl(0);
  1494. if(bind(sockfd,(struct sockaddr*)&sa,sizeof(sa))<0)
  1495. {
  1496. printf(“Error in binding\n”);
  1497. }
  1498. else
  1499. printf(“Binded Successfully”);
  1500. listen(sockfd,50)
  1501. for(;;)
  1502. {
  1503. len=sizeof(ch);
  1504. conntfd=accept(sockfd,(struct sockaddr*)&cli,&len);
  1505. printf(“Accepted”);
  1506. tick=ctime(NULL);
  1507. snprintf(str,sizeof(str),”%s”,ctime(&tick));
  1508. write(conntfd,str,100);
  1509. }
  1510. }
  1511.  
  1512.  
  1513.  
  1514. DAY TIME CLIENT
  1515.  
  1516. #include<netinet/in.h>
  1517. #include<sys/socket.h>
  1518. main()
  1519. {
  1520. struct sockaddr_in sa,cli;
  1521. int n,sockfd;
  1522. int len;
  1523. char buff[100];
  1524. sockfd=socket(AF_INET,SOCK_STREAM,0);
  1525. if(sockfd<0)
  1526. {
  1527. printf(“Error in Socket”);
  1528. exit(0);
  1529. }
  1530. else
  1531. printf(“Socket is Opened”);
  1532. bzero(&sa,sizeof(sa));
  1533. sa.sin_family=AF_INET;
  1534. sa.sin_port=htons(5600);
  1535. if(connect(sockfd,(struct sockaddr*)&sa,sizeof(sa))<0)
  1536. {
  1537. printf(“Error in connection failed”);
  1538. exit(0);
  1539. }
  1540. else
  1541. printf(“connected successfully”):
  1542. if(n=read(sockfd,buff,sizeof(buff))<0)
  1543. {
  1544. printf(“Error in Reading”);
  1545. exit(0);
  1546. }
  1547. else
  1548. {
  1549. printf(“Message Read %s”,buff);
  1550. buff[n]=’\0’;
  1551. printf(“%s”,buff);
  1552. }
  1553. }
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559. Chat App TCP IP - client
  1560.  
  1561.  
  1562. #include<stdio.h>
  1563. #include<stdlib.h>
  1564. #include<string.h>
  1565. #include<sys/socket.h>
  1566. #include<netdb.h>
  1567. #include<arpa/inet.h>
  1568.  
  1569. void error(char *msg)
  1570. {
  1571. perror(msg);
  1572. exit(1);
  1573. }
  1574.  
  1575. int main(int argc,char* argv[])
  1576. {
  1577. int sockfd,portno;
  1578. char recvbuffer[256],sendbuffer[256];
  1579. struct sockaddr_in ser_addr;
  1580. struct hostent* server;
  1581. int i;
  1582.  
  1583. if(argc<3)
  1584. error("./client hostname portno");
  1585.  
  1586. server=gethostbyname(argv[1]);
  1587. portno=atoi(argv[2]);
  1588.  
  1589. bzero((char*)&ser_addr,sizeof(ser_addr));
  1590. ser_addr.sin_family=AF_INET;
  1591. bcopy((char*)server->h_addr,(char*)&ser_addr.sin_addr.s_addr,server->h_length);
  1592. ser_addr.sin_port=htons(portno);
  1593.  
  1594. sockfd=socket(AF_INET,SOCK_STREAM,0);
  1595. if(sockfd==-1)
  1596. error("error in socket descriptor");
  1597. printf("\nsocket created\n");
  1598.  
  1599. if(connect(sockfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1)
  1600. error("error in connect");
  1601. printf("\nconnect successfully\n");
  1602.  
  1603. bzero(recvbuffer,sizeof(recvbuffer));
  1604. bzero(sendbuffer,sizeof(sendbuffer));
  1605.  
  1606. i=fork();
  1607. if(i==0)
  1608. {
  1609. printf("\nfork reading\n");
  1610. while(1)
  1611. {
  1612. if(read(sockfd,recvbuffer,sizeof(recvbuffer))<0)
  1613. error("error in reading");
  1614. printf("\nserver:%s\n",recvbuffer);
  1615. bzero(recvbuffer,sizeof(recvbuffer));
  1616. }
  1617. }
  1618. else
  1619. {
  1620. printf("\n fork writing\n");
  1621. while(1)
  1622. {
  1623. scanf("%s",sendbuffer);
  1624. if(write(sockfd,sendbuffer,sizeof(sendbuffer))<0)
  1625. error("error in writing");
  1626. }
  1627. }
  1628. close(sockfd);
  1629. return 0;
  1630. }
  1631.  
  1632.  
  1633.  
  1634.  
  1635. Chat App TCP IP - Server
  1636.  
  1637.  
  1638.  
  1639. #include<stdio.h>
  1640. #include<stdlib.h>
  1641. #include<string.h>
  1642. #include<sys/socket.h>
  1643. #include<netdb.h>
  1644. #include<arpa/inet.h>
  1645.  
  1646. void error(char *msg)
  1647. {
  1648. perror(msg);
  1649. exit(1);
  1650. }
  1651.  
  1652. int main(int argc,char* argv[])
  1653. {
  1654. int sockfd,newsockfd,portno;
  1655. char recvbuffer[256],sendbuffer[256];
  1656. struct sockaddr_in ser_addr,cli_addr;
  1657. int i;
  1658.  
  1659. if(argc<2)
  1660. error("./server portno");
  1661.  
  1662. portno=atoi(argv[1]);
  1663.  
  1664. bzero((char*)&ser_addr,sizeof(ser_addr));
  1665. ser_addr.sin_family=AF_INET;
  1666. ser_addr.sin_addr.s_addr=INADDR_ANY;
  1667. ser_addr.sin_port=htons(portno);
  1668.  
  1669. sockfd=socket(AF_INET,SOCK_STREAM,0);
  1670. if(sockfd==-1)
  1671. error("error in socket descriptor");
  1672. printf("\nsocket created\n");
  1673.  
  1674. if(bind(sockfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1)
  1675. error("error in binding");
  1676. printf("\nbinding successful\n");
  1677.  
  1678. if(listen(sockfd,5)==-1)
  1679. error("error in listening");
  1680. printf("\nlisten successfully\n");
  1681.  
  1682. bzero(recvbuffer,sizeof(recvbuffer));
  1683. bzero(sendbuffer,sizeof(sendbuffer));
  1684.  
  1685.  
  1686. newsockfd=accept(sockfd,(struct sockaddr*)NULL,NULL);
  1687.  
  1688. i=fork();
  1689. if(i==0)
  1690. {
  1691. printf("\nfork reading\n");
  1692. while(1)
  1693. {
  1694. if(read(newsockfd,recvbuffer,sizeof(recvbuffer))<0)
  1695. error("error in reading");
  1696. printf("\nclient:%s\n",recvbuffer);
  1697. bzero(recvbuffer,sizeof(recvbuffer));
  1698. }
  1699. }
  1700. else
  1701. {
  1702. printf("\n fork writing\n");
  1703. while(1)
  1704. {
  1705. scanf("%s",sendbuffer);
  1706. if(write(newsockfd,sendbuffer,sizeof(sendbuffer))<0)
  1707. error("error in writing");
  1708. }
  1709.  
  1710. }
  1711. close(newsockfd);
  1712. return 0;
  1713. }
  1714.  
  1715.  
  1716. File Transfer Client
  1717.  
  1718.  
  1719. #include<stdio.h>
  1720. #include<stdlib.h>
  1721. #include<string.h>
  1722. #include<sys/socket.h>
  1723. #include<netdb.h>
  1724. #include<arpa/inet.h>
  1725.  
  1726. void error(char *msg)
  1727. {
  1728. perror(msg);
  1729. exit(1);
  1730. }
  1731.  
  1732. int main(int argc,char* argv[])
  1733. {
  1734. int sockfd,portno;
  1735. char buffer[256];
  1736. struct sockaddr_in ser_addr;
  1737. struct hostent* server;
  1738.  
  1739. if(argc<3)
  1740. error("./client hostname portno");
  1741.  
  1742. server=gethostbyname(argv[1]);
  1743. portno=atoi(argv[2]);
  1744.  
  1745. bzero((char*)&ser_addr,sizeof(ser_addr));
  1746. ser_addr.sin_family=AF_INET;
  1747. bcopy((char*)server->h_addr,(char*)&ser_addr.sin_addr.s_addr,server->h_length);
  1748. ser_addr.sin_port=htons(portno);
  1749.  
  1750. sockfd=socket(AF_INET,SOCK_STREAM,0);
  1751. if(sockfd==-1)
  1752. error("error in socket descriptor");
  1753. printf("\nsocket created\n");
  1754.  
  1755. if(connect(sockfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1)
  1756. error("error in connect");
  1757. printf("\nconnect successfully\n");
  1758.  
  1759. FILE* fp;
  1760. int nread;
  1761. fp=fopen("sample1.txt","r");
  1762. if(fp==NULL)
  1763. error("error in file opening");
  1764.  
  1765. while(1)
  1766. {
  1767. nread=fread(buffer,1,sizeof(buffer),fp);
  1768. if(nread>0)
  1769. write(sockfd,buffer,nread);
  1770. if(nread<256)
  1771. {
  1772. if(feof(fp))
  1773. printf("\nEnd of file\n");
  1774.  
  1775. if(ferror(fp))
  1776. printf("\n error in file\n");
  1777.  
  1778. break;
  1779. }
  1780. }
  1781. close(sockfd);
  1782. return 0;
  1783. }
  1784.  
  1785.  
  1786. File Transfer Server
  1787.  
  1788.  
  1789.  
  1790.  
  1791. #include<stdio.h>
  1792. #include<stdlib.h>
  1793. #include<string.h>
  1794. #include<sys/socket.h>
  1795. #include<netdb.h>
  1796. #include<arpa/inet.h>
  1797.  
  1798. void error(char *msg)
  1799. {
  1800. perror(msg);
  1801. exit(1);
  1802. }
  1803.  
  1804. int main(int argc,char* argv[])
  1805. {
  1806. int sockfd,newsockfd,portno;
  1807. char buffer[256];
  1808. struct sockaddr_in ser_addr;
  1809.  
  1810. if(argc<2)
  1811. error("./server portno");
  1812.  
  1813. portno=atoi(argv[1]);
  1814.  
  1815. bzero((char*)&ser_addr,sizeof(ser_addr));
  1816. ser_addr.sin_family=AF_INET;
  1817. ser_addr.sin_addr.s_addr=INADDR_ANY;
  1818. ser_addr.sin_port=htons(portno);
  1819.  
  1820. sockfd=socket(AF_INET,SOCK_STREAM,0);
  1821. if(sockfd==-1)
  1822. error("error in socket descriptor");
  1823. printf("\nsocket created\n");
  1824.  
  1825. if(bind(sockfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1)
  1826. error("error in binding");
  1827. printf("\nbinding successful\n");
  1828.  
  1829. if(listen(sockfd,5)==-1)
  1830. error("error in listening");
  1831. printf("\nlisten successfully\n");
  1832.  
  1833. newsockfd=accept(sockfd,NULL,NULL);
  1834.  
  1835. FILE* fp;
  1836. int nread;
  1837. fp=fopen("sample.txt","ab");
  1838. if(fp==NULL)
  1839. error("error in file opening");
  1840.  
  1841. while((nread=read(newsockfd,buffer,sizeof(buffer)))>0)
  1842. {
  1843. fwrite(buffer,1,nread,fp);
  1844. bzero(buffer,sizeof(buffer));
  1845. }
  1846.  
  1847. close(newsockfd);
  1848. return 0;
  1849. }
  1850.  
  1851.  
  1852.  
  1853. Message Transfer Client UDP
  1854.  
  1855.  
  1856. #include<stdio.h>
  1857. #include<stdlib.h>
  1858. #include<string.h>
  1859. #include<sys/socket.h>
  1860. #include<netdb.h>
  1861. #include<arpa/inet.h>
  1862.  
  1863. void error(char *msg)
  1864. {
  1865. perror(msg);
  1866. exit(1);
  1867. }
  1868.  
  1869. int main(int argc,char* argv[])
  1870. {
  1871. int sockfd,portno;
  1872. char buffer[256];
  1873. struct sockaddr_in ser_addr;
  1874. struct hostent* server;
  1875.  
  1876. if(argc<3)
  1877. error("./client hostname portno");
  1878.  
  1879. server=gethostbyname(argv[1]);
  1880. portno=atoi(argv[2]);
  1881.  
  1882. bzero((char*)&ser_addr,sizeof(ser_addr));
  1883. ser_addr.sin_family=AF_INET;
  1884. bcopy((char*)server->h_addr,(char*)&ser_addr.sin_addr.s_addr,server->h_length);
  1885. ser_addr.sin_port=htons(portno);
  1886.  
  1887. sockfd=socket(AF_INET,SOCK_STREAM,0);
  1888. if(sockfd==-1)
  1889. error("error in socket descriptor");
  1890. printf("\nsocket created\n");
  1891.  
  1892. if(connect(sockfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1)
  1893. error("error in connect");
  1894. printf("\nconnect successfully\n");
  1895.  
  1896. bzero(buffer,sizeof(buffer));
  1897.  
  1898.  
  1899. while(1)
  1900. {
  1901. printf("\nEnter message for server:");
  1902. scanf("%s",buffer);
  1903. if(write(sockfd,buffer,sizeof(buffer))<0)
  1904. printf("writing error");
  1905.  
  1906. if(read(sockfd,buffer,sizeof(buffer))<0)
  1907. printf("\n message read error\n");
  1908.  
  1909. printf("\nmessage got from client:%s",buffer);
  1910. bzero(buffer,sizeof(buffer));
  1911.  
  1912.  
  1913. }
  1914. close(sockfd);
  1915. return 0;
  1916. }
  1917.  
  1918.  
  1919.  
  1920.  
  1921. Username password server
  1922.  
  1923. #include <stdio.h>
  1924. #include <stdlib.h>
  1925. #include <unistd.h>
  1926. #include <errno.h>
  1927. #include <string.h>
  1928. #include <netdb.h>
  1929. #include <sys/types.h>
  1930. #include <netinet/in.h>
  1931. #include <sys/socket.h>
  1932. #include <arpa/inet.h>
  1933. int main(int argc, char *argv[])
  1934. {
  1935. int sock_des,port,n1,n2,s1,s2;
  1936. char null_character;
  1937. char buffer1[100],buffer2[100],buffer3[100],buffer4[100];
  1938. int length,new_des;
  1939. struct sockaddr_in server_addr,client_addr;
  1940. bzero(buffer3,sizeof(buffer3));
  1941. printf("\n Input Authentic Username :\n");
  1942. scanf("%s",buffer3);
  1943. bzero(buffer4,sizeof(buffer4));
  1944. printf("\n Input Authentic Password :\n");
  1945. scanf("%s",buffer4);
  1946. if(argc!=2)
  1947. {
  1948. printf("Usage: ./server port\n");
  1949. exit(1);
  1950. }
  1951. port= atoi(argv[1]);
  1952. if((sock_des=socket(AF_INET,SOCK_STREAM,0))==-1)
  1953. {
  1954. perror("socket");
  1955. exit(1);
  1956. }
  1957.  
  1958.  
  1959. server_addr.sin_family = AF_INET;
  1960. server_addr.sin_port = htons(port);
  1961. server_addr.sin_addr.s_addr= htonl(INADDR_ANY);
  1962. if (bind(sock_des,(const struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1)
  1963. {
  1964. perror("bind");
  1965. exit(1);
  1966. }
  1967. if( listen(sock_des,5)==-1)
  1968. {
  1969. perror("listen");
  1970. exit(1);
  1971. }
  1972. printf("Server is listening at port %d \n", port);
  1973. while(1)
  1974. {
  1975. if((new_des=accept(sock_des,(struct sockaddr *)&client_addr,&length))==-1)
  1976. {
  1977. perror("accept");
  1978. exit(1);
  1979. }
  1980. bzero(buffer1,sizeof(buffer1));
  1981. n1=read(new_des,buffer1,sizeof(buffer1));
  1982. buffer1[n1]=null_character;
  1983. if((s1=strcmp(buffer1,buffer3))==0)
  1984. {
  1985. write(new_des,"Username Match!Enter Password",30);
  1986. printf("Username Match !!!\n");
  1987. bzero(buffer2,sizeof(buffer2));
  1988. n2=read(new_des,buffer2,sizeof(buffer2));
  1989. buffer2[n2]=null_character;
  1990. if((s2=strcmp(buffer2,buffer4))==0)
  1991. {
  1992. write(new_des,"Password Match",15);
  1993. printf("Password Match !!!\n");
  1994. }
  1995. else
  1996. {
  1997. write(new_des,"Password NOT Match",19);
  1998. printf("Password NOT Match !!!\n");
  1999. }
  2000. }
  2001. else
  2002. {
  2003. write(new_des,"Username Not Match",19);
  2004. printf("Username Not Match !!!\n");
  2005. }
  2006. close(new_des);
  2007. }
  2008. }
  2009.  
  2010.  
  2011. Username password Client
  2012.  
  2013. #include <stdio.h>
  2014. #include <stdlib.h>
  2015. #include <unistd.h>
  2016. #include <errno.h>
  2017. #include <string.h>
  2018. #include <netdb.h>
  2019. #include <sys/types.h>
  2020. #include <netinet/in.h>
  2021. #include <sys/socket.h>
  2022. #include <arpa/inet.h>
  2023. int main(int argc,char *argv[])
  2024. {
  2025. int sock_des,port,n;
  2026. char null_character;
  2027. struct hostent *host;
  2028. char buffer1[100],buffer2[100],buffer3[100],buffer4[100];
  2029. struct sockaddr_in server_addr;
  2030. if(argc!=3)
  2031. {
  2032. printf("Usage: ./client hostname port\n");
  2033. exit(1);
  2034. }
  2035. if((host=gethostbyname(argv[1]))==NULL)
  2036. {
  2037. printf("Unknown Host\n");
  2038. exit(1);
  2039. }
  2040. port = atoi(argv[2]);
  2041. if((sock_des=socket(AF_INET,SOCK_STREAM,0))==-1)
  2042. {
  2043. perror("socket");
  2044. exit(1);
  2045. }
  2046. server_addr.sin_family = AF_INET;
  2047. server_addr.sin_port = htons(port);
  2048. server_addr.sin_addr = *((struct in_addr *)host->h_addr);
  2049. if(connect(sock_des,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1)
  2050. {
  2051. perror("connect");
  2052. exit(1);
  2053. }
  2054. bzero(buffer1,sizeof(buffer1));
  2055. printf("Enter the Username :\n");
  2056. scanf("%s",buffer1);
  2057. write(sock_des,buffer1,sizeof(buffer1));
  2058. bzero(buffer4,sizeof(buffer4));
  2059.  
  2060.  
  2061. n=read(sock_des,buffer4,sizeof(buffer4));
  2062. buffer4[n]= null_character;
  2063. printf("Server Sent : %s\n", buffer4);
  2064. bzero(buffer2,sizeof(buffer2));
  2065. printf("Enter the Password :\n");
  2066. scanf("%s",buffer2);
  2067. write(sock_des,buffer2,sizeof(buffer2));
  2068. bzero(buffer3,sizeof(buffer3));
  2069. n=read(sock_des,buffer3,sizeof(buffer3));
  2070. buffer3[n]=null_character;
  2071. printf("Server Sent : %s\n", buffer3);
  2072. close(sock_des);
  2073. }
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080. Message Transfer Server UDP
  2081.  
  2082.  
  2083.  
  2084. #include<stdio.h>
  2085. #include<stdlib.h>
  2086. #include<string.h>
  2087. #include<sys/socket.h>
  2088. #include<netdb.h>
  2089. #include<arpa/inet.h>
  2090.  
  2091. void error(char *msg)
  2092. {
  2093. perror(msg);
  2094. exit(1);
  2095. }
  2096.  
  2097. int main(int argc,char* argv[])
  2098. {
  2099. int sockfd,newsockfd,portno;
  2100. char buffer[256];
  2101. struct sockaddr_in ser_addr;
  2102.  
  2103. if(argc<2)
  2104. error("./server portno");
  2105.  
  2106. portno=atoi(argv[1]);
  2107.  
  2108. bzero((char*)&ser_addr,sizeof(ser_addr));
  2109. ser_addr.sin_family=AF_INET;
  2110. ser_addr.sin_addr.s_addr=INADDR_ANY;
  2111. ser_addr.sin_port=htons(portno);
  2112.  
  2113. sockfd=socket(AF_INET,SOCK_STREAM,0);
  2114. if(sockfd==-1)
  2115. error("error in socket descriptor");
  2116. printf("\nsocket created\n");
  2117.  
  2118. if(bind(sockfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1)
  2119. error("error in binding");
  2120. printf("\nbinding successful\n");
  2121.  
  2122. if(listen(sockfd,5)==-1)
  2123. error("error in listening");
  2124. printf("\nlisten successfully\n");
  2125.  
  2126. newsockfd=accept(sockfd,NULL,NULL);
  2127.  
  2128. bzero(buffer,sizeof(buffer));
  2129.  
  2130. while(1)
  2131. {
  2132. if(read(newsockfd,buffer,sizeof(buffer))<0)
  2133. printf("\n message read error\n");
  2134.  
  2135. printf("\nmessage got from client:%s",buffer);
  2136. bzero(buffer,sizeof(buffer));
  2137.  
  2138. printf("\nEnter message for client:");
  2139. scanf("%s",buffer);
  2140. if(write(newsockfd,buffer,sizeof(buffer))<0)
  2141. printf("writing error");
  2142. }
  2143. close(newsockfd);
  2144. return 0;
  2145. }
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151. ECHO - UDP
  2152.  
  2153.  
  2154. #include <stdio.h> /* standard C i/o facilities */
  2155. #include <stdlib.h> /* needed for atoi() */
  2156. #include <unistd.h> /* defines STDIN_FILENO, system calls,etc */
  2157. #include <sys/types.h> /* system data type definitions */
  2158. #include <sys/socket.h> /* socket specific definitions */
  2159. #include <netinet/in.h> /* INET constants and stuff */
  2160. #include <arpa/inet.h> /* IP address conversion stuff */
  2161. #include <netdb.h> /* gethostbyname */
  2162.  
  2163.  
  2164.  
  2165. /* this routine echos any messages (UDP datagrams) received */
  2166.  
  2167. #define MAXBUF 1024*1024
  2168.  
  2169. void echo( int sd ) {
  2170. int len,n;
  2171. char bufin[MAXBUF];
  2172. struct sockaddr_in remote;
  2173.  
  2174. /* need to know how big address struct is, len must be set before the
  2175. call to recvfrom!!! */
  2176.  
  2177. len = sizeof(remote);
  2178.  
  2179. while (1) {
  2180. /* read a datagram from the socket (put result in bufin) */
  2181. n=recvfrom(sd,bufin,MAXBUF,0,(struct sockaddr *)&remote,&len);
  2182.  
  2183. /* print out the address of the sender */
  2184. printf("Got a datagram from %s port %d\n",
  2185. inet_ntoa(remote.sin_addr), ntohs(remote.sin_port));
  2186.  
  2187. if (n<0) {
  2188. perror("Error receiving data");
  2189. } else {
  2190. printf("GOT %d BYTES\n",n);
  2191. /* Got something, just send it back */
  2192. sendto(sd,bufin,n,0,(struct sockaddr *)&remote,len);
  2193. }
  2194. }
  2195. }
  2196.  
  2197. /* server main routine */
  2198.  
  2199. int main() {
  2200. int ld;
  2201. struct sockaddr_in skaddr;
  2202. int length;
  2203.  
  2204. /* create a socket
  2205. IP protocol family (PF_INET)
  2206. UDP protocol (SOCK_DGRAM)
  2207. */
  2208.  
  2209. if ((ld = socket( PF_INET, SOCK_DGRAM, 0 )) < 0) {
  2210. printf("Problem creating socket\n");
  2211. exit(1);
  2212. }
  2213.  
  2214. /* establish our address
  2215. address family is AF_INET
  2216. our IP address is INADDR_ANY (any of our IP addresses)
  2217. the port number is assigned by the kernel
  2218. */
  2219.  
  2220. skaddr.sin_family = AF_INET;
  2221. skaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  2222. skaddr.sin_port = htons(0);
  2223.  
  2224. if (bind(ld, (struct sockaddr *) &skaddr, sizeof(skaddr))<0) {
  2225. printf("Problem binding\n");
  2226. exit(0);
  2227. }
  2228.  
  2229. /* find out what port we were assigned and print it out */
  2230.  
  2231. length = sizeof( skaddr );
  2232. if (getsockname(ld, (struct sockaddr *) &skaddr, &length)<0) {
  2233. printf("Error getsockname\n");
  2234. exit(1);
  2235. }
  2236.  
  2237. /* port number's are network byte order, we have to convert to
  2238. host byte order before printing !
  2239. */
  2240. printf("The server UDP port number is %d\n",ntohs(skaddr.sin_port));
  2241.  
  2242. /* Go echo every datagram we get */
  2243. echo(ld);
  2244. return(0);
  2245. }
  2246.  
  2247.  
  2248.  
  2249.  
  2250. list all ports hosting a TCP server in a specified host.
  2251.  
  2252.  
  2253. #include(stdio.h)
  2254.  
  2255. #include(arpa/inet.h)
  2256.  
  2257. #include(netdb.h)
  2258.  
  2259. #include(stdlib.h)
  2260.  
  2261. int main(int argc,char* argv[])
  2262.  
  2263. {
  2264.  
  2265. struct hostent *host;
  2266.  
  2267. struct sockaddr_in server_addr;
  2268.  
  2269. int sock_des,port;
  2270.  
  2271. if(argc != 2)
  2272.  
  2273. {
  2274.  
  2275. printf(“Usage ;./a.out hostname \n”);
  2276.  
  2277. exit(1);
  2278.  
  2279. }
  2280.  
  2281. if ((host=gethostbyname(argv[1])) == NULL)
  2282.  
  2283. {
  2284.  
  2285. printf(“Unknown Host\n”);
  2286.  
  2287. exit(1);
  2288.  
  2289. }
  2290.  
  2291. for(port = 0; port<= 65535; port++)
  2292.  
  2293. {
  2294.  
  2295. if((sock_des = socket(AF_INET,SOCK_STREAM,0) == -1))
  2296.  
  2297. {
  2298.  
  2299. perror(“socket”);
  2300.  
  2301. exit(1);
  2302.  
  2303. }
  2304.  
  2305. server_addr.sin_family = AF_INET;
  2306.  
  2307. server_addr.sin_port = htons(port);
  2308.  
  2309. server_addr.sin_addr = *((struct in_addr *)host->h_addr);
  2310.  
  2311. if (connect(sock_des, (struct sockaddr *)&server_addr, sizeof(struct sockaddr))
  2312.  
  2313. != -1)
  2314.  
  2315. {
  2316.  
  2317. printf(“port %d is open \n”,port);
  2318.  
  2319. }
  2320.  
  2321. close(sock_des);
  2322.  
  2323. }
  2324.  
  2325. return 0 ;
  2326.  
  2327. }
  2328.  
  2329.  
  2330. ****EOF****
  2331. Checksum
  2332. #include<stdio.h>
  2333. #include<conio.h>
  2334. #include<math.h>
  2335.  
  2336. int sender(int b[10],int k)
  2337. {
  2338. int checksum,sum=0,i;
  2339. printf("\n****SENDER****\n");
  2340.  
  2341. for(i=0;i<k;i++)
  2342. sum+=b[i];
  2343. printf("SUM IS: %d",sum);
  2344.  
  2345. checksum=~sum;
  2346. printf("\nSENDER's CHECKSUM IS:%d",checksum);
  2347. return checksum;
  2348. }
  2349.  
  2350. int receiver(int c[10],int k,int scheck)
  2351. {
  2352. int checksum,sum=0,i;
  2353. printf("\n\n****RECEIVER****\n");
  2354. for(i=0;i<k;i++)
  2355. sum+=c[i];
  2356. printf(" RECEIVER SUM IS:%d",sum);
  2357. sum=sum+scheck;
  2358. checksum=~sum;
  2359. printf("\nRECEIVER's CHECKSUM IS:%d",checksum);
  2360. return checksum;
  2361. }
  2362. main()
  2363. {
  2364. int a[10],i,m,scheck,rcheck;
  2365. clrscr();
  2366. printf("\nENTER SIZE OF THE STRING:");
  2367. scanf("%d",&m);
  2368. printf("\nENTER THE ELEMENTS OF THE ARRAY:");
  2369. for(i=0;i<m;i++)
  2370. scanf("%d",&a[i]);
  2371. scheck=sender(a,m);
  2372. rcheck=receiver(a,m,scheck);
  2373. if(rcheck==0)
  2374. printf("\n\nNO ERROR IN TRANSMISSION\n\n");
  2375. else
  2376. printf("\n\nERROR DETECTED");
  2377. getch();
  2378. }
Add Comment
Please, Sign In to add comment