一、针对ECHO服务的TCP客户软件的实现
1.网络拓扑结构:
2.源码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <unistd.h> 4 #include <string.h> 5 #include <stdarg.h> 6 #include <sys/types.h> 7 #include <sys/socket.h> 8 #include <netinet/in.h> 9 #include <arpa/inet.h> 10 #include <netdb.h> 11 #include <errno.h> 12 13 #define LINELEN 128 14 extern int errno; 15 16 int TCPecho(const char *host, const char *service); 17 int errexit(const char *format,...); 18 int connectsock(const char *host, const char *service, const char *transport ); 19 int connectTCP(const char *host, const char *service); 20 21 int main(int argc, char *argv[]){ 22 char *host= "localhost"; 23 char *service= "echo"; 24 switch(argc){ 25 case 1: 26 host = "localhost"; 27 break; 28 case 3: 29 service = argv[2]; 30 case 2: 31 host=argv[1]; 32 break; 33 default: 34 fprintf(stderr,"usage:TCPecho[host[port]] "); 35 exit(1); 36 } 37 TCPecho(host,service); 38 exit(0); 39 } 40 int TCPecho(const char *host,const char *service){ 41 char buf[LINELEN+1]; 42 int s,n; 43 int outchars, inchars; 44 s=connectTCP(host, service); 45 while(fgets(buf,sizeof(buf),stdin)){ 46 buf[LINELEN]='