- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《网络编程》
基于TCP的
基于TCP的N
、
1、 衆
2、 条
本程序
的套技
TCP协
课程
名
称:?
网络编程
实验项
目名
称:_
网络编程
班
级:
实验室名
称:
卜境下使用sockets
专
业:_
网络工程
任课
教
师:.
黄梅根
学
号:
利用操作系统提供
姓
名:
端到端的流传输服
务.其中套接字取值sock.stream即为TCP的流传输服务
Windows socket包含了人们所熟悉的Berkeley Socket风格的函数库,也 包含了一组针对windows的扩展库函数,以使程序员能充分的利用 windows驱动消息机制进行编程。
Windows Sockets的规范本意在于提供给应用开发者一套简单的API,并让 个网络应用软件开发商遵守该协议。此外在一个特定的版本windows基础 上,Windows socket也定义了一个二进制借口(ABI),从此来保证Windows socket API应用程序能够在任何符合Windows socket协议的实现上工 作。
三、 设计概述
1、 创建套接字 服务进程和客户进程在实现通信前必须创建各自的套接字,然后才能用相 应的套接字进行发送接收操作,服务迸程总是先于客户端进程启动,服务 器端进程和客户端进程创建套接字。Socket ()函数实现代码如下:
SOCKET serSocket=socket(AF_INET, SOCK_STREAM, 0). \n);
....\n);
//得到主机开始传送消息
recv(clientSocket, receiveBuf,101,0);
printf(〃%s\n”, receiveBuf);
if (strcmp (receiveBuf,开始传送)=0)
(
//传送文件长度
char sendBuf[20]:
Itoa (length, sendBuf, 10);
send(clientSocket,sendBuf, 21,0);
fseek(fp,0L,SEEK_SET);
〃传送文件
long int y=0;
double cent;
char trans[SIZE];
while(!feof (fp))
{
fread (trans, 1, SIZE, fp):
y=y+SIZE;
if(ylength)
{
cent=(double)y*(double)length; printf (w 己发送:cent);
send(clientSocket, trans, SIZE+1, 0); } else
send(clientSocket,trans, 1eng t h+SIZE-y+1,0);
closesocket(clientSocket);
WSACleanup();
fclose (fp);
printfC文件发送完毕\n〃);
system (/pause);
)
!1!实验结果及分析:
!1!
实验结果及分析:
客户端运行结果服务器端运行结果
五、 心得体会:网络编程的实验课虽然只有八次,但是我们充分了解了
各种网络编程和winsock控件的知识,了解了 TCP/IP协议的相关知识以及 其中两个重要协议TCP UDP的特点与差异,进一步学习了文件传输等知
识,创建套接字监听传输关闭等过程,直到最后写出C/S模式的文件传 输程序感觉我们巩固了教材的内容实践的能力也得到了提高不足之处就
是日己粗心大意,在写代码时候参数注解等经常注明的不够好,希望以
后能养成良好的编程习惯
原创力文档


文档评论(0)