电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

网络编程(语言delphi)

20页
  • 卖家[上传人]:第***
  • 文档编号:60834222
  • 上传时间:2018-11-19
  • 文档格式:PDF
  • 文档大小:377.06KB
  • / 20 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、S Socketocket 网络编程网络编程 DelphiDelphi 语言语言 掌握网络编程的基本原理 掌握网络控制的使用方法 具备通过使用网络控制开发简单网络应用程序的能力 DelphiDelphi 的的 SocketSocket 编程概述编程概述 Socket 是建立在传输层协议(主要是 TCP 和 UDP)上的一种套接字规范,它定义两台计算机间进行通 信的规范(即一种编程规范),如果说两台计算机是利用一个“通道”进行通信,那么这个“通道”的两端 就是两个套接字。套接字屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了 TCP 协议软件 和实现了套接字规范的计算机之间的通信成为可能。 在 Delphi 中,其底层的 Socket 也应该是 Windows 的 Socket。Socket 减轻了编写计算机间通信软件 的难度。Inprise 在 Delphi 中对 Windows Socket 进行了有效的封装,使用户可以很方便地编写网络通信 程序。 用户端程序客户端程序 Windows Sockets 网络通信协议服务界面(如:TCP/IP) Windows 物理层通信介质

      2、 TCP/IPTCP/IP 协议及特点协议及特点 1. TCP/IP 体系结构 TCP/IP 协议实际上就是在物理网上的一组完整的网络协议。其中 TCP 是提供传输层服务,而 IP 则 是提供网络层服务。TCP/IP 协议簇(如图 1 所示)包括协议如下。 (1) IP:网间协议(Internet Protocol)。此协议负责主机间数据的路由和网络上数据的存储。同时 为 ICMP,TCP,UDP 提供分组发送服务,用户进程通常不需要涉及这一层。 (2) ARP:地址解析协议(Address Resolution Protocol)。此协议将网络地址映射到硬件地址。 (3) RARP:反向地址解析协议(Reverse Address Resolution Protocol)。此协议将硬件地址映射到 网络地址 (4) ICMP:网间报文控制协议(Internet Control Message Protocol)。此协议处理信关和主机的差 错和传送控制。 (5) TCP:传送控制协议(Transmission Control Protocol)。这是一种提供给用户进程的可靠的全双 工字节

      3、流面向连接的协议。它要为用户进程提供虚电路服务,并为数据可靠传输建立检查(注:大多数网 络用户程序使用 TCP)。 (6) UDP:用户数据报协议(User Datagram Protocol)。这是提供给用户进程的无连接协议,用于传 送数据而不执行正确性检查。 (7) FTP:文件传输协议(File Transfer Protocol)。此协议允许用户以文件操作的方式(文件的增、 删、改、查、传送等)与另一主机相互通信。 (8) SMTP:简单邮件传送协议(Simple Mail Transfer Protocol)。SMTP 协议的作用是为系统之间传 送电子邮件。 (9) Telnet:终端协议(Telnet Terminal Procotol)。允许用户以虚终端方式访问远程主机 (10) HTTP:超文本传输协议(Hypertext Transfer Procotol) (11) TFTP:简单文件传输协议(Trivial File Transfer Protocol) FTPSMTPTelnetHTTPTFTP FTPFTP ICMPIPARPRARP 硬件接口 如图 1 2.

      4、 TCP/IP 特点 TCP/IP 协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在 操作系统内核中实现。因此用户一般不涉及。编程时的编程界面有两种形式:其一是由内核心直接提供的 系统调用;其二是使用以库函数方式提供的各种函数。前者为核内实现,后者为核外实现。用户服务要通 过核外的应用程序才能实现,所以网络编程要使用套接字(Socket)来实现,如图 2 所示是 TCP/IP 协议核 心与应用程序关系图。 应用程序 1应用程序 2应用程序 3 网络应用程序界面(Socket) TCP/IP 核心协议 物理介质 如图 2 SocketSocket 套接字套接字 1. Socket Socket 是网络的基本构件,它是可以被命名和寻址的通信端点,使用中的每一个套接字都有其类型 和一个与之相连接的进程。 2. 基本套接字方法 在 Socket 编程规范中定义了许多套接字方法,为了更好地理解套接字编程原理,下面介绍几个基本 的套接字方法。 1) 创建套接字socket( ) 功能:使用前创建一个新的套接字 格式:SOCKETPASCALFARsock

      5、et(intaf,inttype,intprocotol); 参数:af:通信发生的区域 type:要建立的套接字类型 procotol:使用的特定协议 2) 指定本地地址bind( ) 功能:将套接字地址与所创建的套接字号联系起来。 格式:intPASCALFARbind(SOCKETs,conststructsockaddrFAR*name,intnamelen); 参数:s:是由 socket( )调用返回的并且未作连接的套接字描述符(套接字号)。 其他:如果没有错误,bind( )返回 0,否则返回 SOCKET_ERROR 3) 建立套接字连接connect( )和 accept( ) 功能:共同完成连接工作 格式:intPASCALFARconnect(SOCKETs,conststructsockaddrFAR*name,intnamelen); SOCKETPASCALFARaccept(SOCKETs,structsockaddrFAR*name,intFAR*addrlen); 参数:同上 4) 监听连接listen( ) 功能:用于面向连接服务器,表明它愿意接收连

      6、接。 格式:intPASCALFARlisten(SOCKETs,intbacklog); 5) 数据传输send( )与 recv( ) 功能:数据的发送与接收 格式:intPASCALFARsend(SOCKETs,constcharFAR*buf,intlen,intflags); intPASCALFARrecv(SOCKETs,constcharFAR*buf,intlen,intflags); 参数:buf:指向存有传输数据的缓冲区的指针。 6) 多路复用select( ) 功能:用来检测一个或多个套接字状态。 格式:intPASCALFARselect(intnfds,fd_setFAR*readfds,fd_setFAR*writefds, fd_setFAR*exceptfds,conststructtimevalFAR*timeout); 参数:readfds:指向要做读检测的指针 writefds:指向要做写检测的指针 exceptfds:指向要检测是否出错的指针 timeout:最大等待时间 7) 关闭套接字closesocket( ) 功能:关闭套接字 格式:

      7、BOOLPASCALFARclosesocket(SOCKETs); SocketSocket 工作过程工作过程 在 TCP/IP 网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Servermodel), 客户机/服务器模式在操作过程中采取的是主动请示方式: 服务器方的工作过程如下。 (1) 打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。 (2) 等待客户请求到达该端口。 (3) 接收到客户端服务请求,处理该请求并发送应答信号,等待客户端连接。 (4) 返回第二步,等待另一客户请求。 (5) 接受客户端连接,建立新的套接字,并在该套接字上传输数据。 (6) 关闭套接字。 (7) 关闭服务器。 客户方工作过程如下。 (1) 打开一通信通道,并连接到服务器所在主机的特定端口。 (2) 向服务器发送服务请求报文,等待并接收应答;继续提出请求。 (3) 请求结束后关闭通信通道并终止。 上述客户机/服务器模式工作过程用套接字方法描述如下。 服务器(Server)方首先用 Socket( )方法新建一个 Socket 连接,然后用 Bind( )方法

      8、使该连接同服务 器地址绑定,Listen( )方法使该连接处于监听状态,一旦监听到客户请求便调用 Accept( )方法处理连接 请求并等待客户建立连接,连接建立成功后通过 send( )与 recv( )在该连接上交换数据,最后通过 closesocket( )方法关闭套接字。 客户机(Client)方首先用 Socket( )方法新建一个 Socket 连接,然后通过 Connect( )方法连接到特 定的服务器,并与该服务器建立连接,通过 send( )与 recv( )在该连接上交换数据,最后通过 closesocket( )方法关闭套接字。 (1) 面向连接的套接字的系统调用时序。 服务器端 Socket()方法建立套接字 Bind()方法绑定本机 IP Listen( )监听客户端 Accept( )方法接受连接 Accept( )方法建立连接 Recv( )/Send( )交换数据 Closesocket( )关闭该连接 Closesocket( )关闭服 客户湍 Closesocket( )关闭该连接 Recv( )/Send( )交换数据 Connect( )方法建立

      9、连接 Socket( )方法请求连接 (2) 无连接协议的套接字调用时序。 服务器端 Secket( )方法建立套接字 Bind( )方法绑定本机 IP Recv( )/Send( )交换数据 Closesocket( )关闭该连接 客户端 Socket( )方法请求连接 Bind( )方法绑定服务端 IP Recv( )/Send( )交换数据 Closesocket( )关闭该连接 使用使用 DelphiDelphi 网络控件网络控件 TClientSocketTClientSocket 控件和控件和 TServerSocketTServerSocket 控件控件 TServerSocket 和 TClientSocket 涵盖了基本的 WinSocket 编程,其中 TServerSocket 作为服务器 方使用, TClientSocket作为客户端使用, 这两个控件本身并不提供Socket 连接, 但是它们都有一个Socket 属性,这个属性才提供了 Socket 连接。 由于这两个控件在 Delphi 7 中只以类的形式出现,所以在应用之前需要让用户自己创建该类的实例 并初始化,方法如下。 ClientSocket:TClientSocket; /声明客户端套接字控件 ServerSocket:TServerSocket; /声明服务器端套接字控件 ClientSocket:=TClientSocket.Create(Self); /创建客户端套接字控件实例 /客户端套接字控件实例属性设置 ClientSocket.Active:=False; ClientSocket.Address:=127.0.0.1; ClientSocket.ClientType:=ctNonBlocking; /非堵塞式工作方式 ClientSocket.Port:=1024; /客户端套接字控件实例指定事件 ClientSocket.OnDisconnect:=ClientSocketDisconnect; ClientSocket.OnRead:=ClientSocketRead; ClientSocket.OnError:=ClientSocketError; ServerSocket:=TServerSocket.C

      《网络编程(语言delphi)》由会员第***分享,可在线阅读,更多相关《网络编程(语言delphi)》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.