- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络课程设计报告1329803314
计算机网络
课程设计报告
学号:0705010225
姓名:李海波
指导老师:刘桂开
完成日期:2010.9.14
课程设计题目:网络聊天程序的设计与实现
了解Socket通信的原理,在此基础上编写一个聊天程序。
课程设计内容
1、TCP /IP协议与Winsock网络程序接口的关系
WinSock不是一种网络协议,它只是一个网络编程接口,也就是说,它不是协议,但是它可以访问很多种网络协议,它实质上是一些协议的封装。现在的Winsock已经基本上实现了与协议无关。使用Winsock可以调用多种协议的功能。实际上Winsock是TCP/IP协议的一种封装,可以通过调用Winsock的接口函数来调用TCP/IP的各种功能,例如可以使用Wincock的接口函数Send()来调用TCP/IP的发送数据功能。
2、TCP/IP协议的相关知识
TCP/IP协议包含的范围非常的广泛,他是一种四层协议,包含了各种硬件、软件需求的定义。TCP/IP协议确切的说法应该是TCP/UDP/IP协议。UDP协议,是一种保护消息边界的,不保障可靠数据的传输。TCP协议,是一种流传输的协议。它提供可靠的、有序的、双向的、面相连的传输。
保护消息边界,就是指传输协议把数据当做一条独立的消息在网上传输,接收端只能接受独立的消息。也就是说存在保护消息边界,接收端一次只能接收发送端发出的一个数据包。
而面向流则是指无保护消息保护边界的,如果发送端连续发送数据,接收端有可能在一次接收动作中,会接受两个或者更多的数据包。
UDP协议的保护消息边界使得每一个消息都是独立的。而流传输,却把数据当做一串数据流,它不认为数据是一个一个消息。所以有很多人在使用TCP协议通讯的时候,并不清楚TCP是基于流的传输,当连续发送数据的时候,他们时常会认识TCP会丢包。其实不然,因为当他们使用的缓冲区足够大时,他们有可能会一次接收到两个甚至更多的数据包,而很多人往往会忽视这一点,只分析检查了一个数据包,而已经接收的其他数据包却被忽略了
3、Winsock的函数
Int WSAStarup(WORD wVersionRequested,LPWSADATA lpWsaData);
WversiongRequested是我们要求使用的Winsock的版本。这个函数可以初始化Winsock。
SOCKET socket(int a,int tupe,int protocol);
创建套接字函数。套接字是Winsock通讯的核心。Winsock通讯的所有数据传输,都是通过套接字来完成的,套接字包含了两个信息,一个是IP地址,一个是PORT端口号,使用这两个信息,就可以通过绑定函数来实现这种联系。
Int bind(SOCKET s,const struct sockaddr FAR*name,int namelen);
绑定函数。通过绑定函数来实现把自己的通讯地址跟创建的套接字创建联系。函数中的
Struct sockaddr_in{
Stuct sockaddr_in;
Short sin_family;
u_shortsin_port;
struct in_addrsin_addr;
char sin_sero[8];
}
包含了需要建立连接的本地地址,包括地址族、IP和端口信息。Sin_family字段必须把它设为AF_INET,这是告诉Winsock使用的是地址族。Sin——prot就是要用来通讯的端口号。sin_addr就是要用来通讯的IP地址信息。
Int listen(SOCKET s,int backlog);
监听函数把套接字转成监听模式。
Int accept(SOCKET s,struct sockaddr FAR*addr,int FAR* addrlen);
用于接收客户端的请求。
Int connect(SOCKET s,const struct sockaddr FAR*name,int namelen);
用于连接客户端。
int send(SOCKET s,char FAR* buf,int len,int flags);
int recv(SOCKET s,char FAR* buf,int len,int fags);
用来接受和发送数据,因为TCP连接时双向的。
Int shutsown(SOCKET s,int how);
关闭套接字的指定功能。
Int closeSocket(SOCKET s);
用来关闭套接字句柄。
Int函数如果调用失败的话,返回的都是SOCKET_ERROR。
课程设计步骤
sockets(套接字)编程有三种,流式套接字,数据报套接字,原始套接字;基于TC
您可能关注的文档
最近下载
- (可研报告)设计阶段管理措施.pdf VIP
- 刺绣机电脑BECS-D19操作手册.PDF
- 2025年广东省江门市小升初数学多题型思维应用题精编一卷(含答案及精讲).pdf VIP
- 《展示设计》课件 第五章 展示空间设计.pptx
- 《展示设计》课件 第四章 人体工程学在展示设计中的应用.pptx
- D-Z-T 0405-2022 无人机航空磁测数据采集技术要求(正式版).docx VIP
- 病例讨论—囊性肾癌.pptx VIP
- 专题8.8 整式的乘法与因式分解章末十大题型总结(培优篇)(沪科版)(学生版) 2023-2024学年七年级数学下册举一反三系列(沪科版).pdf
- 基于节约里程法连锁超市配送路线优化.doc VIP
- 顺丰速运蚌埠市物流配送线路优化研究毕业设计.doc VIP
文档评论(0)