当前位置: 首页 > news >正文

手机制作ppt百度搜索引擎优化

手机制作ppt,百度搜索引擎优化,搭建合作平台,网站建设哪些公司bind 摘要 :在套接口中#xff0c;一个套接字只是用户程序与内核交互信息的枢纽#xff0c;它自身没有太多的信息#xff0c;也没有网络协议地址和 端口号等信息#xff0c;在进行网络通信的时候#xff0c;必须把一个套接字与一个地址相关联#xff0c;这个过程就是地址…bind 摘要 :在套接口中一个套接字只是用户程序与内核交互信息的枢纽它自身没有太多的信息也没有网络协议地址和 端口号等信息在进行网络通信的时候必须把一个套接字与一个地址相关联这个过程就是地址绑定的过程。许多时候内核会我们自动绑定一个地址然而有时用 户可能需要自己来完成这个绑定的过程以满足实际应用的需要最典型的情况是一个服务器进程需要绑定一个众所周知的地址或端口以等待客户来连接。这个事由 bind的函数完成。 从bind函数功能我们很容易推测出这个函数的需要的参数与相应的返回值如果此时大家已经对socket接口有点熟悉了 #includesys/socket.h int bind ( int sockfd, struct sockaddr * addr, socklen_t addrlen ) 返回 0 ──成功 - 1 ──失败 参数sockfd 指定地址与哪个套接字绑定这是一个由之前的socket函数调用返回的套接字。调用bind的函数之后该套接字与一个相应的地址关联发送到这个地址的数据可以通过这个套接字来读取与使用。 参数addr 指定地址。这是一个地址结构并且是一个已经经过填写的有效的地址结构。调用bind之后这个地址与参数sockfd指定的套接字关联从而实现上面所说的效果。 参数addrlen 正如大多数socket接口一样内核不关心地址结构当它复制或传递地址给驱动的时候它依据这个值来确定需要复制多少数据。这已经成为socket接口中最常见的参数之一了。 bind函数并不是总是需要调用的只有用户进程想与一个具体的地址或端口相关联的时候才需要调用这个函数。如果用户进程没有这个需要那么程序可 以依赖内核的自动的选址机制来完成自动地址选择而不需要调用bind的函数同时也避免不必要的复杂度。在一般情况下对于服务器进程问题需要调用 bind函数对于客户进程则不需要调用bind函数。 bind函数 int bind(SOCKET s,const struct sockaddr FAR *name,int namelen ); 当创建了一个Socket以后套接字数据结构中有一个默认的IP地址和默认的端口号。一个服务程序必须调用bind函数来给其绑定一个IP地址和 一个特定的端口号。客户程序一般不必调用bind函数来为其Socket绑定IP地址和断口号。该函数的第一个参数指定待绑定的Socket描述符第二 个参数指定一个sockaddr结构该结构是这样定义的 struct sockaddr {u_short sa_family;char sa_data[14]; }; 其中sin_family置AF_INETsin_port指明端口号sin_addr结构体中只有一个唯一的字段s_addr表示IP地 址该字段是一个整数一般用函数inet_addr把字符串形式的IP地址转换成unsigned long型的整数值后再置给s_addr。有的服务器是多宿主机至少有两个网卡那么运行在这样的服务器上的服务程序在为其Socket绑定IP地址时 可以把htonl(INADDR_ANY)置给s_addr这样做的好处是不论哪个网段上的客户程序都能与该服务程序通信如果只给运行在多宿主机上的 服务程序的Socket绑定一个固定的IP地址那么就只有与该IP地址处于同一个网段上的客户程序才能与该服务程序通信。我们用0来填充 sin_zero数组目的是让sockaddr_in结构的大小与sockaddr结构的大小一致。下面是一个bind函数调用的例子 struct sockaddr_in saddr saddr.sin_family AF_INET; saddr.sin_port htons(8888); saddr.sin_addr.s_addr htonl(INADDR_ANY); bind(ListenSocket,(struct sockaddr *)saddr,sizeof(saddr)) listen 摘要:listen函数使用主动连接套接口变为被连接套接口使得一个进程可以接受其它进程的请求从而成为一个服务器进程。在TCP服务器编程中listen函数把进程变为一个服务器并指定相应的套接字变为被动连接。 listen函数在一般在调用bind之后-调用accept之前调用它的函数原型是 #includesys/socket.h int listen ( int sockfd,  int backlog ) 返回 0──成功  - 1──失败 参数sockfd 被listen函数作用的套接字sockfd之前由socket函数返回。在被socket函数返回的套接字fd之时它是一个主动连接的套接字也就是此时系统假设用户会对这个套接字调用connect函数期待它主动与其它进程连接然后在服务器编程中用户希望这个套接字可以接受外来的连接请求也就是被动等待用户来连接。由于系统默认时认为一个套接字是主动连接的所以需要通过某种方式来告诉系统用户进程通过系统调用listen来完成这件事。 参数backlog 这个参数涉及到一些网络的细节。在进程正理一个一个连接请求的时候可能还存在其它的连接请求。因为TCP连接是一个过程所以可能存在一种半连接的状态有时由于同时尝试连接的用户过多使得服务器进程无法快速地完成连接请求。如果这个情况出现了服务器进程希望内核如何处理呢内核会在自己的进程空间里维护一个队列以跟踪这些完成的连接但服务器进程还没有接手处理或正在进行的连接这样的一个队列内核不可能让其任意大所以必须有一个大小的上限。这个backlog告诉内核使用这个数值作为上限。 毫无疑问服务器进程不能随便指定一个数值内核有一个许可的范围。这个范围是实现相关的。很难有某种统一一般这个值会小30以内。 当调用listen之后服务器进程就可以调用accept来接受一个外来的请求。关于accept更的信息请接着关注本系统文章。 下面是来自于http://blog.csdn.net/forrest_chen/article/details/7021409的一段话 TCP的服务器端socket基本流程socket-bind-listen-accept-send/recv-closesocket客户端基本流程socket-[bind-]-connect-send/recv-closesocket其中客户端connect函数应该是和服务器端的listen函数相互作用而不是accept函数。在listen函数中的第二个参数backlog代表着等待处理的连接队列以下简称队列的长度神马意思我也不太懂但是通过代码实践我可以简单的说每当有一个客户端connect了listen的队列中就加入一个连接每当服务器端accept了就从listen的队列中取出一个连接转成一个专门用来传输数据的socketaccept函数的返回值所以在服务器端程序中有两个socket前者是用来接收客户端连接的socket.. 文章转载 https://blog.csdn.net/forrest_chen/article/details/7021409 https://blog.csdn.net/dongliqiang2006/article/details/5824651
http://www.hkea.cn/news/14524761/

相关文章:

  • 安徽省建设厅焊工证查询网站网站建设 万网
  • 亚马逊网站网址是多少建设好网站怎么付费推广
  • 网站建设的常用技术有哪些做微信公众号页面的网站
  • 公司设计网站需要多久微信网站平台建设
  • 基于ASP与Access数据库的网站开发上海高端网站建设公
  • 订阅号做微网站宽屏网站设计
  • 企业网站改版升级叫别人做网站后怎么更改密码
  • 绥化建设局网站php做的网站
  • 粘贴以下代码到网站首页代码的与标签之间龙华营销型网站建设公司
  • 网站建设运营的灵魂是网站建立者
  • 小型购物网站开发费用广州搜狗快速排名原
  • 亚购物车功能网站怎么做的网站建设用什么网站好一点
  • 免费制作二维码网站dw做网站首页代码
  • 建设银行网站怎么打印明细厦门网站推广找谁
  • 中国建设教育协会网站培训中心吉林响应式网站建设
  • 深圳专业做网站排名多少钱海外代理服务器 免费
  • 烟台定制网站建设公司个人网页制作成品图
  • 建站系统网站建设广东营销网站建设
  • 做外贸的网站平台有哪些内容商业网站的建设
  • 建设网站网站建设公司自建营销型企业网站
  • 崂山区建设局网站句容网站
  • 健身俱乐部网站建设方案设计物流网站建设流程图
  • 西宁网站运营公司电子商务网站开发与管理
  • 江东外贸seo网站建设wordpress安装后怎么修改主题
  • wordpress商品宣传网络推广优化是干啥的
  • 哪个网站有介绍拿到家做的手工活青海做网站
  • 深圳做网站网络公司怎么样网站栏目名称大全
  • 榆林建设银行的网站网站建设客户需求调查问卷
  • 做网站客源佛山网站seo公司
  • 网站专题报道页面怎么做的佛山 网站开发