网络应用程序工作机制

我们在设计每一对网络应用程序时,都要让他们按照顺序执行互补的网络操作,而不是同时执行。服务器的应用程序首先启动,然后等待接收信息;客户端程序后启动,并发送第一个网络数据包。在经过了双方的第一次通信后,应用程序所提供的服务能够在任意时刻改变两者的相对关系。

对于两个分别作为客户端和服务器进行通信的socket来说,它们必须是同一种socket类型。两个socket要么都必须是流(TCP)类型,要么都必须是数据报(UDP)类型。客户端应用程序必须能够定位和识别一个服务器的socket,服务器应用程序通过对自己的socket命名来建立身份识别,这样客户端能够引用它。一个TCP/IP的socket名称包含ip的地址、端口号和协议。

所有网络应用程序都可以缩减为五个简单步骤:

*打开socket;

*命名socket;

*与另一个socket建立关联;

*在socket之间发送和接收数据;

*关闭socket;

客户端和服务器都需要通过socket来访问网络,打开socket需要调用socket()函数:

SOCKET PASCAL FAR socket( int af ,                         /* protocol suite */

                                   int type,                                 /* protocol type */     

                                   int protocol);                        /* protocol name */

af:“地址族”,否则视为socket域; PF_INET (TCP/IP)

type:socket类型;SOCK_DGRAM(UDP)         SOCK_STREAM(TCP)        SOCK_RAW

protocol:所采用的协议。  (tcp/udp)忽略protocol的值,但是把它设为0是一个好习惯 ;   SOCK_RAM时,不再有默认值,需要自己指定协议各字段的值。

服务器应用程序必须对其socket进行命名,如果服务器程序没有对其socket命名,协议栈将拒绝客户端的通信请求。构成socket名称的有三个属性,协议、端口号和地址。所以服务器必须为socket分配这三个属性,客户端必须引用这三个属性,客户端和服务器才能通信。


























  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值