菜单
  

    SOCKET socket{
    int af,
    int type,
    int protocol
    };
    3)Connect( )函数
    该函数用来完成到指定地址的连接。说明如下:
    int PASCAL FAR connect( SOCKET s, const struct sockaddr FAR* name,int namelen);
    4)Send( )函数
    Send( )函数作用是向已建立连接的套接字上发送数据。说明如下:
    int PASCAL FAR send( SOCKET s, const char FAR* buf, int len, int flags);
    5)Recv( )函数
    该函数用于从已连接的套接字上接收数据。说明如下:
    int PASCAL FAR recv( SOCKET s, char FAR* buf, int len, int flags);
    其他函数不一一说明。
    3.5 Socket的编程框架
    Windows Socket应用程序最常见的是客户机/服务器模式,服务器是能够提供某种或某些功能的程序或进程;客户机是用户想使用服务器的某种或某些功能的程序或进程。在该模式中,应首先启动服务器进程,然后客户机通过网络(也可以是本机)访问服务器资源,以完成相应的操作。
    通常的网络通信有两种方式,这里主要针对传输层而言,即:面向连接方式,如TCP协议;面向无连接方式,如UDP方式。但是有时为了编程方便,在使用UDP协议时采用面向连接的处理方式。
    另外,针对如何处理网络请求,网络程序又可分为交互方式和并发方式。交互方式的特点是编程简单,不易出错,但是执行效率不高;相反,并发方式则相对复杂,不易控制,但是执行效率高。对于并发的实现有多种方式,其中主要的两种方式如下:
    (1)创建线程为客户机服务,这里同样有以下几种方式实现:
    i.为每一个客户端创建一个线程;
    ii.服务器创建一定量的线程,形成一个线程池,当有客户端请求时,则分配一个线程为其服务,若没有线程可用,则客户端不得不等待,直到有其他客户端释放连接为止。
    iii.服务器并不事先创建线程,而是在有客户连接到来时创建线程,线程的数量受到服务器预置值得限制。
    (2)使用事件驱动方式。在一个线程内可以通过异步I/O操作方式,当有事件发生时,就触发相应的过程来处理。
      对于面向连接方式:
    1)首先启动服务器方,以提供相应服务:
    a) 首先调用WSAStartup( )函数来初始化网络环境;
    b) 调用socket( )函数来创建一个套接字;
    c) 调用bind( )函数将本地地址与刚创建的套接字关联起来;
    d) 调用listen( )函数监听发向该套接字的连接请求;
    e)客户端的连接请求房子连接请求队列里,服务器调用accept( )函数从连接请求队列中取出第一个请求,创建一个为之服务的新套接字,该套接字处理所有与该客户交互的操作;而服务器进程的监听套接字这时继续处理来自其他客户的连接请求,直到因队列空而等待新的连接请求的到来。
    f) 调用closesocket( )关闭监听套接字,释放套接字资源;
    g) 调用WSACleanup( )函数释放相应的资源。
    图7进一步说明了服务器端的编程框架。
     
    图7 服务器结构
    2)客户端进程:
    a) 首先使用WSAStartup( )来初始化网络环境;
    b) 调用socket( )来创建一个套接字;
    c) 调用connect( )函数连接远程服务器,以请求服务;
    d) 服务器响应连接后,此时客户进程开始于服务器交互操作,直到请求结束为止;
    e) 调用closesocket( )关闭套接字,释放套接字资源;
    f) 调用WSACleanup( )释放相应资源。
    图8进一步说明了客户端的编程框架。
     
    图8 客户端编程框架
    3.6 本章小结
    本章对WinSock机制做了介绍,分别讲述了WinSock的描述字,Socket的系统数据结构、地址说明,几个实验中使用的重要的Socket应用程序接口,以及Socket的编程框架。本章工作是实现TRCTC算法的基础。
  1. 上一篇:MP3音乐文件解码程序设计
  2. 下一篇:C#个人事务管理系统的设计与实现+ER图
  1. 基于MATLAB的图像增强算法设计

  2. 基于Kinect的手势跟踪与识别算法设计

  3. JAVA基于安卓平台的医疗护工管理系统设计

  4. 基于核独立元分析的非线...

  5. 基于Hadoop的制造过程大数据存储平台构建

  6. 基于安卓系统的测量软件...

  7. 基于VC++的GIS矢量图形系统开发

  8. java+mysql车辆管理系统的设计+源代码

  9. 乳业同业并购式全产业链...

  10. 河岸冲刷和泥沙淤积的监测国内外研究现状

  11. 酸性水汽提装置总汽提塔设计+CAD图纸

  12. 杂拟谷盗体内共生菌沃尔...

  13. 中考体育项目与体育教学合理结合的研究

  14. 当代大学生慈善意识研究+文献综述

  15. 电站锅炉暖风器设计任务书

  16. 十二层带中心支撑钢结构...

  17. 大众媒体对公共政策制定的影响

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回