"Network Programming"--linux socket Demo

Source: Internet
Author: User

#include <stdio.h>#include<string.h>#include<stdlib.h>#include<sys/socket.h>#include<unistd.h>#include<netinet/inch.h>#include<arpa/inet.h>#if0#defineUdp#else#defineTcp#endifintsockfd;Char* IP ="10.8.2.60";//char *ip = "127.0.0.1";#ifdef UDP ShortPORT =1025;#endif#ifdef TCP ShortPORT =2222;#endiftypedefstructsockaddr SA;voidinit () {#ifdef UDP sockfd= Socket (Af_inet, SOCK_DGRAM,0);#endif#ifdef TCP sockfd= Socket (Af_inet, Sock_stream,0); structsockaddr_in addr; Addr.sin_family=af_inet; Addr.sin_port=htons (PORT); Addr.sin_addr.s_addr=inet_addr (IP); if(Connect (SOCKFD, (sa*) &addr,sizeof(addr)) == -1) {printf ("Connect failed!\n"); Exit (-1); }#endif}intMain (intargcChar*argv[]) {    //Char buf[2048];    Charbuf[ +]; intIndex, i =0; if(ARGC = =2) {Index= Atoi (argv[1]); } Else{printf ("Usage:./client <times>\n"); return-1; } printf ("start init ... \ n");    Init (); printf ("connected...\n"); memset (BUF,1,sizeof(BUF)); #ifdef UDPstructsockaddr_in addr; Addr.sin_family=af_inet; Addr.sin_port=htons (PORT); Addr.sin_addr.s_addr=inet_addr (IP);#endif     while(1) {        //printf ("Please input something:\n"); //scanf ("%s", buf); //puts (BUF);        if(i = =index) Break; #ifdef TCP Send (SOCKFD, buf,sizeof(BUF),0); printf ("Send 2048! index:%d\n", i);#endif#ifdef UDP printf ("sendto 2048! index:%d\n", i); if(SendTo (SOCKFD, buf,sizeof(BUF),0, (structSOCKADDR *) &addr,sizeof(structSOCKADDR)) = =-1) {printf ("sendto error!\n"); return-1; }#endif        //sleep (1);i++;    } close (SOCKFD); return 0;}

Client

#include <stdio.h>#include<string.h>#include<stdlib.h>#include<sys/socket.h>#include<unistd.h>#include<netinet/inch.h>#include<arpa/inet.h>intsockfd;Char* IP ="10.8.2.56";//char *ip = "127.0.0.1";typedefstructsockaddr SA;#if0#defineUdp#else#defineTcp#endif#ifdef UDP ShortPORT =1025;#else ShortPORT =2222;#endifvoidinit () {#ifdef TCP sockfd= Socket (Af_inet, Sock_stream,0);//TCP#endif#ifdef UDP sockfd= Socket (Af_inet, SOCK_DGRAM,0);//UDP#endif    if(SOCKFD = =-1) {printf ("Socket failed!\n"); Exit (-1); }    structsockaddr_in addr; Addr.sin_family=af_inet; Addr.sin_port=htons (PORT); Addr.sin_addr.s_addr=inet_addr (IP); if(Bind (SOCKFD, (SA *) &addr,sizeof(addr)) == -1) {printf ("bind failed!\n"); Exit (-1); } #ifdef TCPif(Listen (SOCKFD,Ten) == -1) {printf ("Listen failed!\n"); Exit (-1); }#endif}intMain (intargcChar*argv[]) {    intFD; intret; Charbuf[ +]; intindex =0;    Init ();  while(1) {#ifdef TCPstructsockaddr_in fromaddr; socklen_t Len=sizeof(FROMADDR); FD= Accept (SOCKFD, (SA *) &fromaddr, &Len); if(FD <0) {printf ("Accept failed!\n"); Continue; } printf ("fd:%d\n", FD);#endifmemset (buf,1,sizeof(BUF));  while(1) {#ifdef TCPif(ret = recv (FD, BUF,sizeof(BUF), Msg_waitall) >0) {#endif#ifdef UDP printf ("udp!\n"); if(ret = Recvfrom (SOCKFD, buf,sizeof(BUF), msg_waitall, NULL, NULL) >0) {#endifprintf ("ret%d\n", ret); } Else{printf ("recvfrom failed! ret:%d\n", ret);  Break; } printf ("index:%d\n", index); Index++; }    }    return 0;}

Server

"Network Programming"--linux socket Demo

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.