分享
 
 
 

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

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

刚接触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.阻塞方式

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

(二)循环读写方式

1.一次直接读写报文

在一次接收或发送报文动作中一次性不加分别地全部读取或全部

发送报文字节。

2.不指定长度循环读写

这一般发生在短连接进程中,受网络路由等限制,一次较长的报

文可能在网络传输过程中被分解成了好几个包。一次读取可能不

能全部读完一次报文,这就需要循环读报文,直到读完为止。

3.带长度报文头循环读写

这种情况一般是在长连接进程中,由于在长连接中没有条件能够

判断循环读写什么时候结束,所以必须要加长度报文头。读函数

先是读取报文头的长度,再根据这个长度去读报文.实际情况中,

报头的码制格式还经常不一样,如果是非ASCII码的报文头,还必须

转换成ASCII,常见的报文头码制有:

(1)n个字节的ASCII码

(2)n个字节的BCD码

(3)n个字节的网络整型码

以上是几种比较典型的读写报文方式,可以与通信方式模板一起

预先提供一些典型的API读写函数。当然在实际问题中,可能还

必须编写与对方报文格式配套的读写API.

在实际情况中,往往需要把我们自己的系统与别人的系统进行连接,

有了以上模板与API,可以说连接任何方式的通信程序都不存在问题。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有