#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