计算机⽹络实验socket编程,计算机⽹络实验socket编程
实验三 socket套接字编程实验
⼀、Sockets编程基础知识
⽹络编程就是通过计算机⽹络与其他程序进⾏通信的程序,Socket编程是⽹络编程的主流⼯具。
Socket API是实现进程间通信的⼀种编程设施,也是⼀种为进程间提供底层抽象的机制。尽管应⽤开发⼈员很少需要在该层编写代码,但是理解socket API还是⾮常重要的。主要有两点原因:第⼀,⾼层设施是构建于socket API之上的,它们是利⽤socket API 提供的操作来实现。第⼆,对于响应时间要求较⾼或运⾏于有限资源平台上的应⽤,甚⾄socket API是唯⼀可⽤的进程间通信设施。
socket API出现于20世纪80年代早期,作为Berkeley Unix(BSD 4.2)操作系统程序库来通过进程间通信功能。现在主流操作系统都提供socket API。在基于Unix系统中,如BSD、Linux系统,socket API是操作系统内核的⼀部分;在MS-DOS、Windows OS、OS/2等操作系统中,socket API是以程序库形式提供的,如在Windows系统中,socket API被称为Winsock。
Socket接⼝规范可以适⽤多种通讯协议,主要是TCP/IP。TCP/IP是计算机互联最常适⽤的⽹络通讯协议,TCP/IP的核⼼部分由⽹络操作系统的内核实现,应⽤程序通过编程接⼝来访问TCP/IP,应⽤程序通
讯的⽅式有图3-1所⽰。进程通信方式
图3-1:应⽤程序通信⽅式
TCP/IP使⽤⼀个⽹络地址和⼀个服务端⼝号来惟⼀地标识设备。⽹络地址标识⽹络上的特定设备;端⼝号标识要连接到的该设备上的特定服务。⽹络通讯的基本模式如下:每⼀台通讯的主机都有⼀个本⽹络环境中惟⼀的IP地址,⼀台主机上往往有多个通讯程序存在,每个这样的程序都要占⽤⼀个通讯端⼝。因此,⼀个IP地址,⼀个通讯端⼝,就能确定⼀个通讯程序的位置。
⼆、Socket通讯连接⽅式
Socket主要有三种通讯⽅式:流式Socket、数据报Socket和原始Socket。
1.流式Socket(SOCK_STREAM)
流式套接字提供了基于Unix操作系统的流式I/O的数据传输模式,它仅仅⽀持通过可靠的、⾯向连接的通信,类似于电话系统服务,即每⼀次完整的数据传输都要经过建⽴连接、
1

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。