套接字API调用.

Slides:



Advertisements
Similar presentations
1 实验二、 TCP 、 UDP 通信程序设计实验 ——TCP 通信实验 注意 bind 和 listen socket() bind() listen() accept() write() read() TCP Server read() socket() TCP Client connect()
Advertisements

當我已老 謹以此文獻給像我一樣流浪在外的子女們.
網路程式設計 (Network Programming)
2015年12月14日-2015年12月20日 缩略版.
指導老師:羅夏美 組別:第四組 組員: 車輛二甲 蔡中銘 車輛三甲 莊鵬彥 國企二甲 陳于甄 國企二甲 詹雯晴 資傳二乙 林怡芳
计算机网络基础 主讲:华蓓 实验室:电一楼(安徽省计算与通讯软件重点实验室) Tel:
公共部门人力资源管理课程导学 学习本课程的三步 3、利用网络 2、掌握方法 1、了解课程.
公司保密工作要求及 院商秘保护工作安排 2014年9月12日.
计算机网络(第 6 版) 第 6 章 应用层 青岛理工大学通信与电子工程学院.
中外礼仪.
审计案例研究 第一讲 辅导教师 周桂芝.
我 最 爱 的 —— 杨 幂.
二十世纪外国文学专题 章丘电大 李颜.
第一次上机作业说明 业务系统说明 Socket编程技术 如何分析应用层协议 应用程序结构.
林森國小一年8班班親會 葉宛婷老師 103年9月19日 晚上7:00-8:30 地點:108教室.
正确保养皮肤的原则 皮肤的保养要依肤质进行 皮肤保养要分区进行 根据季节变化适时调整保养计划 依据年龄进行皮肤保养 肌肤保养还要分时进行
“网络问政”给九江新闻网 带来新的发展机遇 -- 九江新闻网 高立东 --.
马志强 软件学院501室 网络应用开发 马志强 软件学院501室
第 9 章 隔离技术 本章学习目标: 了解网络隔离发展历程 掌握网络隔离的技术原理 了解网络隔离的技术分类及发展方向 掌握网闸的基本原理.
第一篇 生命科学 第2课时 细胞.
4.6 局域网标准 专门的LAN标准 OSI/RM和TCP/IP均属于WAN标准 LAN具有自身固有的特点:
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
第七章 固定资产 第一节 固定资产概述 第二节 固定资产的确认和初始计量 第三节 固定资产的后续计量 第四节 固定资产清查与期末计价
项目6.1:计算机网络基础 项目描述 能力目标 应用网络可以工作、学习,网络影响着我们的生活,了解网络知识、培养信息技术的水平和能力是工作和生活的需要。 通过对概念的理解,培养信息分析、辨别能力, 学会使用信息技术工作、学习。
第十五章 IP路由 主讲人:刘正华.
社会工作概论 个案工作 课程培训 深圳电大 赖小乐.
大 纲 一、备案系统数据迁移方案 二、备案系统过程数据处理方案 三、备案系统内存量数据核验方案 四、新备案系统信息真实性核验方案※
北京汉邦高科数字技术股份有限公司 2015年年报交流.
TCP Session Hijack 郭军权
面对经济全球化.
前言.
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
Socket.
基于WinSock的邮件系统 1 设计目标: 1.1 SMTP发送邮件服务器(c语言) 1.2 POP3接受邮件服务器(c语言)
电 子 信 息 工 程 系 热 烈 欢 迎 来自全国各地的新同学!.
九十八學年度水土保持學系 碩士在職專班 專題討論(四) 9375
海珠区第二次全国经济普查服务业培训 二〇〇八年十二月二十三日.
计算机网络实验介绍 信息网络实验室 2017/9/13 04:55:22.
Advanced Sockets Programming
第三章 ARP与RARP.
TCP、UDP 通信实践 广州创龙电子科技有限公司 01 广州创龙电子科技有限公司
行云服务:助公有云普及一臂之力.
Socket Programming in C
Socket Programming.
Socket 基本觀念.
TCP/IP Protocol Suite TCP/IP協定 第二組 投影片製作by簡嘉宏 綦凱宏 林睿敏 滕孟哲.
在一定程度上 人类的思维产生于 简单个体之间的相互作用 ——Marvin Minsky.
基于Nagios的自动化集群服务监控系统的实现
西南科技大学网络教育系列课程 高级语程序设计(Java) 第十一章 Java 中的网络编程.
局域网技术 第一章计算机局域网概论.
MFC WinSock类的编程 为简化套接字网络编程,更方便地利用Windows的消息驱动机制,微软的基础类库(Microsoft Foundation Class Libary,简称MFC),提供了两个套接字类,在不同的层次上对Windows Socket API函数进行了封装,为编写Windows.
第8章 配置Linux网络 本章将从介绍Webmin软件开始,详细介绍各种网络相关的配置,如设置以太网接口连接Internet、DHCP服务器架设、设置NFS实现Unix/Linux系统间文件共享和架设DNS服务器等。通过本章学习,用户可以到相关的网络知识,并能深入理解Fedora提升用户使用该操作系统的能力。
中国科学技术大学计算机系 陈香兰(0512- ) Autumn 2010
计算机网络 第 7 章 运输层 课件制作人:谢希仁.
计算机网络 第 3 章 数据链路层 课件制作人:谢希仁.
第2章 套接字网络编程基础 2.1 UNIX套接字网络编程接口的 产生与发展 2.2 套接字编程的基本概念 2.3 面向连接的套接字编程
Web Server 王宏瑾.
Westmont College 网络应用软件 第一讲 (客户-服务器 概念, 协议端口的使用, 套接字API)
Window Socket 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
Advister: Quincy Wu Speaker: Chenglin Tsai Date:3/26
第三章 資料的傳收與接送 3-1 TCP程式設計 3-2 UDP程式設計 3-3 Socket程式設計 3-4資料的非同步傳送與接收.
SOCKET( ).
目次检索 打印 下载 文字摘录 更换背景 多窗口阅读.
大学计算机基础 5-2 计算机网络模型与协议.
2019/5/3 JAVA Socket(UDP).
超星电子图书.
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
Internet课程设计 教师:陈 妍 朱海萍 西安交通大学计算机系
主讲人:徐悦甡(16年入职) 课程:数据通信与计算机网络 软件学院
第十二章 Java网络编程 1.URL编程 2.Socket网络编程 3.Datagram网络编程.
Presentation transcript:

套接字API调用

创建套接字 result= socket (pf, type, protocol) pf为协议族(protocol family)。套接字并不局限于使用TCP/IP,而是可以支持各种协议族。当前的协议族包括TCP/IP互联网(PF_INET)、Xerox公司的PUP互联网(PF_PUP)、Apple公司的AppleTalk网络(PF_APPLETALK)和UNIX文件系统(PF_UNIX)。 type为制定所需的通信类型。包括可靠数据流交付服务(SOCK_STREAM)和无连接数据报交付服务(SOCK_DGRAM)和允许有特权的用户访问网络底层协议和网络接口的原始类型(SOCK_RAW)。

套接字的继承和终止 close(socket) 操作系统创建子进程时,子进程将继承父进程打开的套接字。 父子进程拥有对该套接字同样的访问权,并且能共享访问套接字。 系统对每个套接字的引用进行计数,每增加一个进程访问套接字,则计数加1。 当进程完成对套接字的使用时,对套接字的使用调用close进行关闭。 close调用将减少套接字的引用计数,并在计数值为0时删除套接字。

绑定本地地址 bind(socket, localaddr, addrlen ) 套接字创建时未关联本地或目的地址 套接字与网络地址绑定的机制 不同协议可能具有不同含义。对TCP/IP协议,绑定的内容包括IP地址和端口号。

地址绑定结构 0 16 31 地址族 地址八位组0-1 地址八位组2-5 地址八位组6-9 地址八位组10-13

IP地址绑定结构 0 16 31 地址族(2) 协议端口 IP地址 未用(0) 未用(0)

连接到目的地址 connect(socket, destaddr, addrlen) 初始创建的套接字处于一种未连接的状态,即套接字未与任何外地目的地址关联。 connect将套接字关联到一个永久的目的地址,从而让套接字进入已连接状态。 应用程序在进行可靠数据流传输时,必须调用connect建立一个连接。 参数socket为绑定的套接字描述符。destaddr为目的地址的结构。参数addrlen是指定地址长度的整数,以八位组为单位。

发送数据 在套接字建立之后,应用程序就可以通过系统调用使用套接字传输数据。 五个系统调用:send,sendto,sendmsg,write和writev。 其中send、write和writev只用于已经建立连接的套接字,它们在调用时,不需要,也不允许指定目的地址。

套接字接收数据 与五个传输数据的系统调用相对应 五个系统调用: recv,recvfrom,recvmsg ,read和readv。

获得本地和远程套接字地址 进程可以调用getpeername来获得套接字连接的目的方的地址,调用格式如下: getpeername(socket, destaddr, addrlen) 进程也可以通过getsockname获得套接字连接的本地地址,调用格式如下: getsockname(socket, localaddr, addrlen)

获得并设置套接字选项 应用程序可以控制套接字的机制。比如设置超时参数,控制缓冲区空间的分配,控制是否允许发送广播,或者控制带外数据的处理等。 应用程序可以通过setsockopt设置相应的选项,也可以通过getsockopt获取当前的设置情况。 设置调用的格式如下: setsockopt(socket, level, optionid, optionval, length) 获取调用的格式如下: getsockopt(socket, level, optionid, optionval, length)

指明服务器的队列长度 listen( socket, qlength) 服务器进程在处理一个请求的时候需要消耗一些时间,在此期间可能系统又有新的请求到来。 为了避免协议拒绝或丢弃传入的请求,服务器必须告诉底层协议软件,它希望让来不及处理的请求排队等待。 如果系统请求的队列已满,额外的请求将被丢弃。 该系统调用仅用于可靠数据流交付服务的套接字。

服务器如何接收连接 newsock=accept(socket, addr, addrlen) 服务器进程使用系统调用socket、bind和listen创建一个套接字,将它绑定到熟知端口,并指定连接请求的排队长度。但是套接字并没有连接到外部目的地址,而是处于一种等待状态,准备接收来自任意客户的连接请求。 使用系统调用accept进入阻塞,直到到达一个连接请求。 socket为等待连接的套接字描述符。参数addr是存放地址信息的结构指针,参数addrlen是一个整数的指针,返回地址的长度,newsock为新的套接字描述符。 原来的套接字仍然保持等待状态,以便继续接收其他的请求。

本节结束