嵌入式系统第九章 Linux环境下应用程序开发.pptVIP

嵌入式系统第九章 Linux环境下应用程序开发.ppt

  1. 1、本文档共89页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

建立socket程序通过socket()调用建立了一个套接字socket。#includesys/types.h#includesys/socket.hintsocket(intfamily,inttype,intprotocol);参数family表示协议或者地址族参数type表示套接字的类型参数protocol表示使用的协议号程序if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)建立一个TCP类型的套接字,如果建立成功,这个套接字描述符就保存在变量sockfd中了,如果建立套接字失败,将在控制台打印出错误信息。该函数是用于将本地IP地址定端口号的,若定其他地址则不能成功。另外,它主要用于TCP的连接,而在UDP的连接中则无必要。①函数原型②相关头文件③函数参数说明④函数返回值(2)bind函数说明绑定本地地址bind()函数,可以帮助一个套接字使用地址和端口。并且可以根据需要将socket绑定上一个本地地址和端口。#includesys/types.h#includesys/socket.hintbind(intsockfd,structsockaddr*sa,intaddrlen);如果调用成功,则返回0,否则返回-1最常见的错误时端口已经被其他程序绑定。下面两个函数用来为bind()准备其需要的参数server_addr.sin_addr.s_addr=htonl(INADDR_ANY);server_addr.sin_port=htons(portnumber);如果要指定某个具体的IP地址,可以采取如下的代码:server_addr.sin_addr,s_addr=inet_addr(“192,168,1.1”);(3)listen函数说明listen函数用于流式Socket(TCP协议)中使用。用于监听网络通信端口,检测客户端的服务请求。①函数原型②相关头文件③函数参数说明④函数返回值listen函数listen函数调用非常简单,其原型如下:#includesys/socket.hintlisten(intsockfd,intbacklog);该函数主要将一个套接字转换成倾听套接字。包括以下两方面的工作:1.将这个套接字由CLOSED状态转换为LISTEN状态。2.listen()函数可以确定连接请求队列的长度,也就是参数中的backlog,本地能够等待的最大连接数目就是backlog的数值因为需要等待别人的连接,通常需要指定本地的端口号,所以在调用之前,需要使用bind()函数来指定使用本地的哪一个端口号,否则由系统指定一个随机的端口。等待连接if((new_fd=accept(sockfd,(structsockaddr*)(client_addr),sin_size))==-1)当服务器执行了listen()调用后,一般就使用accept()函数来响应连接请求accpet函数原型如下:#includesys/socket.hintaccept(intsockfd,void*addr,int*addrlen);accpet函数默认为是阻塞函数,将一直阻塞知道有连接请求。如果执行成功,返回值是有内核自动生成的一个新的socket,同时将远程计算机的地址信息充到参数addr所指的内存空间中。该函数在流式Socket中是用于bind的之后的client端,用于与服器端建立连接。①函数原型intconnect(intsockfd,structsockaddr*serv_addr,intaddrlen)②相关头文件#includesys/socket.h③函数参数说明socktd:套接字描述符;serv_addr:服务器端地址;addrlen:地址长度。④函数返回值成功返回非负套接字描述符;出错返回-1(4)connect函数说明发送数据。①函数原型intsend(intsockfd,constvoid*msg,intlen,intflags)②相关头文件#includesys/socket.h③函数参数说明socktd:套接字描述符;msg:指向要发送数据的指针;len:数据长度;f

文档评论(0)

t_github + 关注
实名认证
文档贡献者

计算机研究者

1亿VIP精品文档

相关文档