- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言编程---socket基础课案
C语言编程---socket基础
先说套接字,网络编程必不可少的,最初socket是为支持TCP/IP协议而开发的,现在它已被认为是开发非RPC Windows网络应用程序的最好途径。 socket作为BDS UNIX的进程通信机制,是进行程序间通讯(IPC)的BSD 方法,这意味着socket 用来让一个进程和其他的进程互通信息。
所谓socket通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过套接字向网络发出请求或者应答网络请求。
开发原理:
服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。
客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。-- win API socket
本文所谈到的Socket函数如果没有特别说明,都是指的Windows Socket API。
一、WSAStartup函数
int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData );
使用Socket的程序在使用Socket之前必须调用WSAStartup函数。该函数的第一个参数指明程序请求使用的Socket版本,其中高位字节指明副版本、低位字节指明主版本;操作系统利用第二个参数返回请求的Socket的版本信息。当一个应用程序调用WSAStartup函数时,操作系统根据请求的Socket版本来有哪些信誉好的足球投注网站相应的Socket库,然后绑定找到的Socket库到该应用程序中。以后应用程序就可以调用所请求的Socket库中的其它Socket函数了。该函数执行成功后返回0。
例:假如一个程序要使用2.1版本的Socket,那么程序代码如下
wVersionRequested = MAKEWORD( 2, 1 );
err = WSAStartup( wVersionRequested, wsaData );
二、WSACleanup函数
int WSACleanup (void);
应用程序在完成对请求的Socket库的使用后,要调用WSACleanup函数来解除与Socket库的绑定并且释放Socket库所占用的系统资源。
三、socket函数
SOCKET socket( int af, int type, int protocol );
应用程序调用socket函数来创建一个能够进行网络通信的套接字。
第一个参数指定应用程序使用的通信协议的协议族,对于TCP/IP协议族,该参数置PF_INET;第二个参数指定要创建的套接字类型,流套接字类型为SOCK_STREAM、数据报套接字类型为SOCK_DGRAM;
第三个参数指定应用程序所使用的通信协议。该函数如果调用成功就返回新创建的套接字的描述符,如果失败就返回INVALID_SOCKET。
套接字描述符是一个整数类型的值。每个进程的进程空间里都有一个套接字描述符表,该表中存放着套接字描述符和套接字数据结构的对应关系。该表中有一个字段存放新创建的套接字的描述符,另一个字段存放套接字数据结构的地址,因此根据套接字描述符就可以找到其对应的套接字数据结构。每个进程在自己的进程空间里都有一个套接字 描述符表但是套接字数据结构都是在操作系统的内核缓冲里。
下面是一个创建流套接字的例子:
struct protoent *ppe;
ppe=getprotobyname(tcp);
SOCKET ListenSocket=socket(PF_INET,SOCK_STREAM,ppe-p_proto);
四、closesocket函数
int closesocket( SOCKET s );
closesocket函数用来关闭一个描述符为s套接字。由于每个进程中都有一个套接字描述符表,表中的每个套接字描述符都对应了一个位于操作系统缓冲区中的套接字数据结构,因此有可能有几个套接字描述符指向同一个套接字数据结构。套接字数据结构中专门有一个字段存放该结构的被引用次数,即有多少个套接字描述符指向该结构。当调用closesocket函数时,操作系统先检查套接字数据结构中的该字段的值,如果为1,就表明只有一个套接字描述符指向它,因此操作系统就先把s在套接字描述符表中对应的那条表项清除,并且释放s对应的套接字数据结构;如果该字段大于1,那么操作系统仅仅清除s在套接字描述符
您可能关注的文档
- CU3-AndroidUI开发.ppt
- 公司HSE管理体系构成情况.ppt
- CT软件说明.docx
- CURRENTOASIS7.ppt
- 公司会议管理制度课件.doc
- 公厕改革,城市文明体现于细微之处课件.ppt
- c实现服务器性能监控并发送邮件保存日志课案.doc
- 公司必威体育官网网址奖惩制度课件.doc
- C数据导入导出Excel文件及winForm导出Execl总结课案.doc
- 公司债券与企业债券、专项债券、中期票据对比分析课件.pptx
- 人教版 必修第二册 Unit 1 Cultural Heritage Reading and Thinking课件(共23张PPT).pptx
- 小学数学人教版(四年级下三角形的内角和课件(共31张PPT).pptx
- 外研版(一起)六年级下册小学英语 Module 8复习课件 (共15张PPT).ppt
- 一 、整理与复习(课件)(共17张PPT) 北师大一年级数学下册.pptx
- 初中语文 统编版 七年级下册 第四单元 18 短文两篇 爱莲说 课件(共24张ppt).pptx
- 牛津译林版选择性必修 第三册Unit 4 Protecting our heritage sites:Grammar and usage课件(共19张PPT).pptx
- 第4单元 护绿行动 回顾整理(课件)(共35张PPT) 青岛版一年级数学下册.pptx
- 第3课 开元盛世 课件(22张PPT 内嵌视频).pptx
- (重大版)英语必修 第二册 Unit 1Favourite Teachers(课件)(25张PPT).pptx
- 拼组图案(课件)(共29张PPT) 青岛版一年级数学下册.pptx
最近下载
- lng接收站工艺培训计划.docx VIP
- 五懂五会五能员工必备安全技能手册.pdf
- 化妆品行业化妆品生产厂复工安全培训.pptx
- 2024年10月13日云南省税务系统遴选笔试真题及答案解析.doc VIP
- 2023年中考数学几何模型——动点最值之瓜豆模型(讲+练)(原卷版).pdf VIP
- (新统编版)语文四年级下册 第一单元集体备课指导 课件.pptx
- 四川省2023-2024学年 职教高考联合体第4次模拟考试-智能制造类应知+应会(含答案).pdf VIP
- 1危险化学品磷酸(正磷酸)的危险、有害特性表MSDS.docx
- 2《陈涉世家》精省公开课一等奖全国示范课微课金奖PPT课件.pptx
- 攀枝花学院2020-2021学年第1学期《高等数学(上)》期末考试试卷(A卷)及标准答案.pdf
文档评论(0)