xtu湘潭大学网络编程练习题:填空题代码源码解析【第1页/27页】
客户库例程实现。阅读以下说明和 C 代码,将__(n)__处缺少的内容填写完整。【说明】源文件 connectsock.c 中定义的函数 connectsock 分配套接口和连接该套接口,该函数通常作为库例程被其它程序调用(如 UDPecho.c 和 TCPecho.c 等)。【源文件 connectsock.c 代码】 /* connectsock.c - allocate socket and connect it */ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> /* * Allocate and connect a socket using TCP or UDP */ int connectsock( const char *host, const char *service, const char *transport ) { struct hostent *phe; struct servent *pse; struct sockaddr_in sin; int s, type; bzero( (char *)&sin, sizeof(sin) ); sin.sin_family = AF_INET; /* Determine the protocol to use */ if (strcmp(transport, "udp") == 0) type = SOCK_DGRAM; else type = SOCK_STREAM; /* Map service name to port number */ if ( pse = getservbyname(service, transport) ) sin.sin_port = htons(ntohs((unsigned short)pse->s_port)); else if ( (sin.sin_port = htons((unsigned short)atoi(service))) == 0 ) { fprintf(stderr, "can't get \"%s\" service entry ", service); exit(1); } /* Map host name to IP address */ if ( phe = gethostbyname(host) ) memcpy(&sin.sin_addr, phe->h_addr, phe->h_length); else if ( (sin.sin_addr.s_addr = inet_addr(host)) == INADDR_NONE ) { fprintf(stderr, "can't get \"%s\" host entry ", host); exit(1); } /* Allocate a socket */ s = socket(PF_INET, type, 0); if (s < 0) { perror("can't create socket "); exit(1); } /* Connect the socket */ if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) { perror("can't connect to server "); exit(1); } return s; }*** 在这段代码中,connectsock 函数的主要功能是根据传入的参数分配套接口并连接套接口。首先根据传入的参数确定使用的协议是 TCP 还是 UDP,然后根据服务名称或端口号获取端口号,再根据主机名获取 IP 地址。最后通过 socket 函数创建一个套接口,并通过 connect 函数连接到指定的主机。 总结来说,connectsock 函数是一个用于分配套接口并连接套接口的库例程函数,可以在其他程序中被调用,用于 TCP 或 UDP 的通信连接。其核心实现是根据传入的参数获取对应的端口号和 IP 地址,并创建和连接套接口。这样的函数可以帮助实现网络编程中的客户端功能,实现网络通信的目的。
剩余26页未读,继续阅读
- 粉丝: 16
- 资源: 3
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
评论0