网络编程简介.ppt
《网络编程简介.ppt》由会员分享,可在线阅读,更多相关《网络编程简介.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络编程简介网络编程简介授课老师:赵增华助教:杨金峰邮件:两台计算机通过网络进行通信两台计算机通过网络进行通信AB网络网络192.168.0.118192.168.0.10协议协议协议协议端端口口端端口口IP地址地址IP网络中每台主机都必须有一个惟一的网络中每台主机都必须有一个惟一的IP地址;地址;IP地址是一个逻辑地址;地址是一个逻辑地址;因特网上的因特网上的IP地址具有全球唯一性;地址具有全球唯一性;32位,位,4个字节,常用点分十进制的格式表个字节,常用点分十进制的格式表示,例如:示,例如:192.168.0.16端口端口端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程
2、序通过系统调用与某端口建立连接(binding)后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都通过该端口输出。端口用一个整数型标识符来表示,即端口号。端口号跟协议相关,TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立,端口通常称为协议端口(protocol port),简称端口。端口使用一个16位的数字来表示,它的范围是065535,1024以下的端口号保留给预定义的服务。例如:http使用80端口。协议协议为进行网络中的数据交换(通信)而建立的为进行网络中的数据交换(通信)而建立的规则、标准或约定。规则、标准或约定。(
3、=语义语义+语法语法+规则规则)不同层具有各自不同的协议。不同层具有各自不同的协议。数据封装数据封装一台计算机要发送数据到另一台计算机,数据首一台计算机要发送数据到另一台计算机,数据首先必须打包,打包的过程称为先必须打包,打包的过程称为封装封装。封装就是在数据前面加上特定的协议头部。封装就是在数据前面加上特定的协议头部。数据数据数据数据协议头协议头TCP/IP模型TCP/IP起源于美国国防部高级研究规划署起源于美国国防部高级研究规划署(DARPA)的一项研究计划的一项研究计划实现若干台主机的实现若干台主机的相互通信。相互通信。现在现在TCP/IP已成为已成为Internet上通信的工业标准。上
4、通信的工业标准。TCP/IP模型包括模型包括5个层次:个层次:应用层应用层传输层传输层网络层网络层数据链路层数据链路层物理层物理层套接字(socket)的引入为了能够方便的开发网络应用软件,由美国伯克利大学在Unix上推出了一种应用程序访问通信协议的操作系统调用socket(套接字)。socket的出现,使程序员可以很方便地访问TCP/IP,从而开发各种网络应用的程序。随着Unix的应用推广,套接字在编写网络软件中得到了极大的普及。后来,套接字又被引进了Windows等操作系统中。Java语言也引入了套接字编程模型。Socket SocketSocket是由应用层程序创建,用于和传输层通信的接
5、口是由应用层程序创建,用于和传输层通信的接口 socketsocket由由OSOS维护,类似于文件描述符。维护,类似于文件描述符。它允许与远程主机上的进程发送它允许与远程主机上的进程发送/接收消息。接收消息。ApplicationSocketsTCPIPdata linkphysicalApplicationSocketsTCPIPdata linkphysicalPhysical CommunicationTCP API:a sessionsocket()bind()listen()write|send()socket()connect()Locks until connectionacce
6、pt()Little delay(TCP handshake)read|recv()close()write|send()ElabSERVERCLIENTread|recv()close()NOTE:bind()can be skipped in the clientUDP API:a sessionsocket()bind()sendto()socket()recvfrom()sendto()close()SERVERCLIENTrecvfrom()close()NOTE:no connect()for the clientNOTE:no listen()and accept()by the
7、 serverSocket API:socket()要使用要使用socketsocket用于通信,首先需要创建用于通信,首先需要创建socketsocket:/*socket_type=SOCK_STREAM|SOCK_DGRAM*/*socket_type=SOCK_STREAM|SOCK_DGRAM*/*AF_INET means we use IP(version 4)*/*AF_INET means we use IP(version 4)*/*0 is for IP(not ICMP or others)*/*0 is for IP(not ICMP or others)*/int
8、sdint sd=socket(AF_INET,socket_type,0);=socket(AF_INET,socket_type,0);Protocol FamilySymbolic NameTCP/IP InternetAF_INETXerox NSAF_NSIntra-host UnixAF_UNIXDEC DNAAF_DECNETService Typesymbolic namedatagram(UDP)SOCK_DGRAMreliable,in order(TCP)SOCK_STREAMraw socketSOCK_RAW Socket API:bind()功能:将套接字绑定上本机
9、功能:将套接字绑定上本机IPIP地址以及端口号地址以及端口号struct struct sockaddrsockaddr local_addr;local_addr;int size=sizeof(local_addr);int size=sizeof(local_addr);bind(sd,&local_addr,size);bind(sd,&local_addr,size);Note:Note:1 1、只有服务器端必需调用此函数,客户端不需要、只有服务器端必需调用此函数,客户端不需要2 2、传递的是、传递的是sockaddrsockaddr结构而不是结构而不是sockaddr_insock
10、addr_in结构结构一般我们需要操作一般我们需要操作sockaddr_insockaddr_in结构,然后将其强制类型结构,然后将其强制类型转换为转换为sockaddrsockaddr结构即可。结构即可。指定IP地址三种形式:1、主机名(string)如localhost2、点分十进制(string)如192.168.1.83、二进制(u_long)inet_addr():点分十进制 to 二进制gethostbyname():主机名 to 二进制指定端口1-2551-255reserved for standard servicesreserved for standard service
11、s2121ftpftp2323telnettelnet2525SMTPSMTP8080HTTPHTTP1-10231-1023 Available only to priviledged users Available only to priviledged users 1024-49991024-4999Usuable by system and user processesUsuable by system and user processes5000-5000-Usuable by user processes onlyUsuable by user processes only两个需要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 编程 简介
限制150内