(39)-6.5 网络编程基础_第1页
(39)-6.5 网络编程基础_第2页
(39)-6.5 网络编程基础_第3页
(39)-6.5 网络编程基础_第4页
(39)-6.5 网络编程基础_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络编程基础学习目标掌握Socket编程的基础知识和相关的函数网络编程基础网络编程是Linux环境编程的个重要部分。能否熟练掌握Linux环境下的网络编程,已经成为了一个优秀Linux研发工程师的标志。随着近几年Linux在服务器领域的异军突起,Linux环境下的网络编程就变得尤为重要了网络编程基础Linux环境下使用套接字进行进程之间的通信。通过套接字接口,其他进程的位置对于应用程序来讲是透明的。套接字代表通信的端点,也就是说两个端点应该各有一个套接字才可以。两个套接字建立了通信双方的桥梁,而套接字就是这座桥的入口套接字同样拥有一个套接字描述符,应用程序可以像操作文件一样操作一个套接字。因此在进行网络通信的过程中,用户感觉就像在操作一个文件一样。这正是Linux将外部设备抽象为一个文件的好处。字节序由于不同计算机系统采用不同的字节序存储数据,同样一个4字节的32位整数,在内存中存储的方式就不同,这称为本地字节序。字节序分为小端字节序和大端字节序,Intel处理器大多数使用大端字节序,Motorola处理器大多数使用小端字节序。小端字节序是指低位字节存放在内存的低地址处,于此相反,大端字节序指的是高位字节存储在内存的低地址处。网络字节序统一采用大端字节序字节序当两台采用不同字节序的主机通信时,在发送数据之前,必须先将本地字节序转化为网络字节序再进行发送;在收到数据之后,应先将网络字节序转化为本地字节序再进行后续使用。本地字节序转换成网络字节序函数htonl()和htons()用于将本地字节序转化为网络字节序,htonl()主要用于将32位的整型数据从本地字节序转化为网络字节序,而htons()主要用于将16位的整型数据从本地字节序转化为网络字节序。网络字节序转换成本地字节序函数ntohl()和ntohs()用于将网络字节序转化为本地字节序,ntohl()主要用于将32位的整型数据从网络字节序转化为本地字节序,而ntohs()主要用于将16位的整型数据从网络字节序转化为本地字节序。in_addr结构网络环境中每一台主机都有一个唯一标识自己的地址,这个地址称为ip地址。Linux中使用in_addr结构表示一个ip地址in_addr结构当使用唯一的ip地址定位到通信的目标主机后,还需要确定到底是主机中的哪个进程需要通信。使用端口号可以解决该问题,每一个进程都唯一对应一个16位的端口号。因此,在网络环境中,一个IP地址加上一个端口号,可以唯一的确定一台织机上的进程。ip地址是以二进制数的形式存储在地址结构中的,需要输出并观察该地址时未免有些不便,对于程序员来讲,点分十进制表示的ip地址才更直观,因此Linux提供了ip地址的格式转换函数。Inet_ntop()函数将二进制地址转换为字符串形式的地址,成功则返回该字串的首地址:二进制地址格式错误(例如,domain参数是AF_INET,却使用128位的地址)则返回0,如函数出错则返回-1。inet_pton()函数是inet_ntop的逆运算,该函数将字符串形式的地址转换为二进制形式的地址。Socket编程的基础知识Socket编程相关的函数-13-小结-14-作业与拓展查阅资料,加

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论