当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++基础入门教程

TCP/IP通信程序设计的丰富多样性

    TCP/IP通信程序设计的丰富多样性

 

    刚接触TCP/IP通信设计的人根据范例可以很快编出一个通信程
    序,据此一些人可能会认为TCP/IP编程很简单。其实不然,
    TCP/IP编程具有较为丰富的内容。其编程的丰富性主要体现在
    通信方式和报文格式的多样性上。


    一。通信方式

    主要有以下三大类:

    (一)SERVER/CLIENT方式

    1.一个Client方连接一个Server方,或称点对点(peer to peer):
    2.多个Client方连接一个Server方,这也是通常的并发服务器方式。
    3.一个Client方连接多个Server方,这种方式很少见,主要
    用于一个客户向多个服务器发送请求情况。


    (二)连接方式

    1.长连接

    Client方与Server方先建立通讯连接,连接建立后不断开,
    然后再进行报文发送和接收。这种方式下由于通讯连接一直
    存在,可以用下面命令查看连接是否建立:

    netstat –f inet|grep 端口号(如567。

    此种方式常用于点对点通讯。


    2.短连接

    Client方与Server每进行一次报文收发交易时才进行通讯连
    接,交易完毕后立即断开连接。此种方式常用于一点对多点
    通讯,比如多个Client连接一个Server.


    (三)发送接收方式

    1.异步

    报文发送和接收是分开的,相互独立的,互不影响。这种方
    式又分两种情况:

    (1)异步双工:接收和发送在同一个程序中,有两个不同的
    子进程分别负责发送和接收
    (2)异步单工:接收和发送是用两个不同的程序来完成。

    2.同步

    报文发送和接收是同步进行,既报文发送后等待接收返回报文。
    同步方式一般需要考虑超时问题,即报文发上去后不能无限等
    待,需要设定超时时间,超过该时间发送方不再等待读返回报
    文,直接通知超时返回。


    实际通信方式是这三类通信方式的组合。比如一般书上提供的
    TCP/IP范例程序大都是同步短连接的SERVER/CLIENT程序。有的
    组合是基本不用的,比较常用的有价值的组合是以下几种:

    同步短连接Server/Client
    同步长连接Server/Client
    异步短连接Server/Client
    异步长连接双工Server/Client
    异步长连接单工Server/Client

    其中异步长连接双工是最为复杂的一种通信方式,有时候经
    常会出现在不同银行或不同城市之间的两套系统之间的通信。
    比如金卡工程。由于这几种通信方式比较固定,所以可以预
    先编制这几种通信方式的模板程序。


    二.报文格式

    通信报文格式多样性更多,相应地就必须设计对应的读写报文的接
    收和发送报文函数。

    (一)阻塞与非阻塞方式 

    1.非阻塞方式

    读函数不停地进行读动作,如果没有报文接收到,等待一段时间后
    超时返回,这种情况一般需要指定超时时间。

    2.阻塞方式

    如果没有报文接收到,则读函数一直处于等待状态,直到有报文到达。

 

 

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接