电子科技大学计算机网络编程实验报告echo服务器端(2)

2018-12-03 19:54

void reaper(int sig){ int status;

while(wait3(&status,WNOHANG,(struct rusage *)0)>=0) ; }

int TCPechod(int fd){ char buf[BUFSIZ]; int cc;

while(cc=read(fd,buf,sizeof(buf))){ if(cc<0)

errexit(\ if(write(fd,buf,cc)<0)

errexit(\ } return 0; }

int errexit(const char *format,...){ va_list arg;

va_start(arg, format); vfprintf(stderr,format,arg); va_end(arg); exit(1); }

int passivesock(const char *service, const char *transport, int qlen) {

struct servent*pse;/* pointer to service information entry*/ struct protoent *ppe;/* pointer to protocol information entry*/ struct sockaddr_in sin;/* an Internet endpoint address*/ int s, type;/* socket descriptor and socket type*/

memset(&sin, 0, sizeof(sin)); sin.sin_family = AF_INET;

sin.sin_addr.s_addr = INADDR_ANY;

/* Map service name to port number */ if ( pse = getservbyname(service, transport) )

sin.sin_port = htons(ntohs((unsigned short)pse->s_port)+ portbase); else

if ((sin.sin_port=htons((unsigned short)atoi(service)+portbase)) == 0) errexit(\

if ( (ppe = getprotobyname(transport)) == 0) errexit(\

if (strcmp(transport, \ type = SOCK_DGRAM; else

type = SOCK_STREAM;

s = socket(PF_INET, type, ppe->p_proto); if (s < 0)

errexit(\

if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) errexit(\ strerror(errno));

if (type == SOCK_STREAM && listen(s, qlen) < 0) errexit(\ strerror(errno)); return s; }

int passiveTCP(const char *service,int qlen){ return passivesock(service,\}

4. 编译并调试程序

切换到源代码所在的目录,使用GCC指令进行编译 $ GCC –o echo_s echo_s.c

八、实验数据及结果分析:

在源程序所在的目录键入./echo_s,同时键入./echo_c命令,得到下面的运行结果:

九、总结、改进建议及心得体会:

1.在实验一中编写了echo服务的客户端程序,本实验中实现了echo服务服务端的程序,实现了客户端和服务端之间通信。

2.本实验中,简要实现了echo服务的整个过程,对echo服务有了比较全面的理解,同时也体会到服务端和客户端在编程实现上存在这较大的差异。


电子科技大学计算机网络编程实验报告echo服务器端(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:法律逻辑学 试卷A

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: