Windows网络编程(一)

网络基本知识

网络编程的实现可以有多种方式,Windows Socket就是其中一种比较简单的实现方式。

1. 端口

端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序通过系统调用与某端口建立连接后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都通过该端口输出。

端口用一个整数型标识符来表示,即端口号。端口号跟协议有关,TCP/IP传输层的两个协议TCPUDP是完全独立的两个软件模块,因此各自的端口号也相互独立。也就是说,基于TCP和UDP协议的不同的网络应用程序,它们可以拥有相同的端口号。

端口使用一个16位的数字来表示,它的范围是0~655351024(包括1024)以下的端口保留给预定义的服务。我们在编写网络应用程序时,要为程序指定1024以上的端口号。

2. 套接字的引入

套接字存在于通信区域中。通信区域也叫地址族,它是一个抽象的概念,主要用于将通过套接字通信的进程的共有特性综合在一起。套接字通常只与同一区域的套接字交换数据(也有可能跨区域通信,但这只在执行了某种转换进程后才能实现)Window Sockets只支持一个通信区域:网际域(AF_INET),这个域被使用网际协议通信的进程使用

3. 网络字节顺序

不同的计算机存放多字节值得顺序不同,有的机器在起始地址存放低位字节(低位先存),有的机器在起始地址存放高位字节(高位先存)基于IntelCPU,即我们常用的PC机采用的是低位先存。为保证数据的正确性,在网络协议中需要制定网络字节顺序,TCP/IP协议使用16位整数和32位整数的高位先存格式。由于不同的计算机存放数据字节的顺序不同,这样发送方发送数据后,即使接收方接收到该数据,也有可能无法查看所接收到的数据。所以在网络中不同主机间进行通信时,要同一采用网络字节顺序。

4. 客户机/服务器模式

客户机/服务器模式在操作过程中采取的是主动请求的方式。首先服务器方要先启动,并根据请求提供相应的服务:

①打开一个通信通道并告知本地主机,它愿意在某一地址和端口上接收客户请求。

②等待客户请求到达该端口。

③接收到重复服务请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一个新的进程(或线程)来处理这个客户请求。新进程(或线程)处理此客户请求,并不需要对其它请求作出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。

④返回第二步,等待另一客户请求。

⑤关闭服务器。

而客户方:

①打开一个通信通道,并连接到服务器所在主机的特定端口。

②向服务器发送服务请求报文,等待并接收应答;继续提出请求。

③请求结束后关闭通信通道并终止。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值