当前位置:首页 > 生活百科

socket传输文件的原理(socket实现文件传输)

栏目:生活百科日期:2025-03-30浏览:0

一、打开两个VS2019,创建两个控制台程序分别命名为client和servers

二、编写服务端servers

1、包含头文件及库文件

#include &<WinSock2.h&>#pragma comment(lib,"ws2_32.lib")#pragma warning(disable:4996)

2、初始化及反初始化代码,记下来就行,永远不变

//初始化代码,死记下来就行       WORD wVersion = MAKEWORD(2, 2);       WSADATA wsadata;       if (WSAStartup(wVersion, &&wsadata) != 0)       {              return 0;       }       //反初始化操作       WSACleanup();

3、创建socket

SOCKET s= socket(AF_INET, SOCK_STREAM, 0);       //第一个参数协议簇(AF_INET,ipv4;AF_INET6,ipv6;AF_UNIX,本机通信)       //第二个参数类型(SOCK_STREAM,TCP流;SOCK_DGRAM,UDP数据报;SOCK_RAW,原始套接字)       //第三个参数一般设置0,当确定套接字使用的协议簇和类型时,这个参数的值就为0             if (s==INVALID_SOCKET)       {              return 0;//创建套接字失败       }

4、绑定端口并开启监听

sockaddr_in add;       int len = sizeof(sockaddr_in);       add.sin_family = AF_INET;//协议簇       add.sin_addr.S_un.S_addr = inet_addr("0.0.0.0");//表示接受任意ip地址       add.sin_port = htons(11111);//网络字节序是大尾方式,本地字节序是小尾方式,需要转换       int i = bind(s, (sockaddr*)&&add, len);       listen(s, 5);//瞬间来五个用户

5、等待客户端连接

sockaddr_in caddr;       caddr.sin_family = AF_INET;       int caddrlen = sizeof(sockaddr_in);              SOCKET sclient=accept(s,(sockaddr*)&&caddr, &&caddrlen);//重新产生一个socket用来通信       if (sclient==INVALID_SOCKET)       {              return 0;       }

6、发送数据并关闭连接

int ret = send(sclient, "哎呦", strlen("哎呦"), 0);       closesocket(sclient);

三、编写客户端

1、包含头文件及库文件

#include &<WinSock2.h&>#pragma comment(lib,"ws2_32.lib")#pragma warning(disable:4996)

2、初始化及反初始化代码,记下来就行,永远不变

//初始化代码,死记下来就行       WORD wVersion = MAKEWORD(2, 2);       WSADATA wsadata;       if (WSAStartup(wVersion, &&wsadata) != 0)       {              return 0;       }       //反初始化操作       WSACleanup();

3、创建socket

SOCKET s= socket(AF_INET, SOCK_STREAM, 0);       //第一个参数协议簇(AF_INET,ipv4;AF_INET6,ipv6;AF_UNIX,本机通信)       //第二个参数类型(SOCK_STREAM,TCP流;SOCK_DGRAM,UDP数据报;SOCK_RAW,原始套接字)       //第三个参数一般设置0,当确定套接字使用的协议簇和类型时,这个参数的值就为0             if (s==INVALID_SOCKET)       {              return 0;//创建套接字失败       }sockaddr_in add;       int len = sizeof(sockaddr_in);       add.sin_family = AF_INET;//协议簇       add.sin_addr.S_un.S_addr = inet_addr("192.168.1.107");//主动连接该ip地址       add.sin_port = htons(11111);//网络字节序是大尾方式,本地字节序是小尾方式,需要转换

4、连接服务器

int i = connect(s, (sockaddr*)&&add, len);       if (SOCKET_ERROR==i)       {              return 0;       }

5、接收服务器发送的数据并关闭连接

char sbuf&[256] = { 0 };       int ret = recv(s, sbuf, 256, 0);       if (ret==0)       {              return 0;//连接断开       }       else if(ret&>0)       {              printf(sbuf);       }              closesocket(s);

四、运行结果

五、小技巧

@err,hr 监视输入这个可以查看错误信息

“socket传输文件的原理(socket实现文件传输)” 的相关文章

威克士洗车机哪款最好(无线洗车机实测洗车效果告诉你)

先来说说这个洗车机的整体,外观没得说,绝对大气,橙黑两色搭配相得益彰,对于外貌协会的我来说对它很满意。这款洗车机还是比较轻巧的,只有3斤左右,女士使用完全没问题...

2023年适合女生用的手机(目前像素最好的手机排行)

vivoZ66.57英寸LCD挖孔全面屏的应用也是能够极大的保证我们实际的观看体验的。vivoZ6搭载了高通骁龙765G处理器,7nmEUV制程工艺与Adren...

哪款液晶电视质量最好(质量超好的品牌液晶电视机)

目前国内市场液晶电视机技术很稳定,价格也是民众都能接受,国产的几个大品牌口碑都比较好,海信,TCL,康佳,长虹,创维,海尔,在国内这些品牌已经深深的印在我们的脑...

2019中国中产阶级的定义和标准(中产阶级有哪些特点)

伴随着高科技、城市化、及不同年龄段人群的消费模式及生活观念形成,“新中产”成为全社会普通高度关注的一个群体,他们引领着中国未来经济增长的方向和趋势。什么是新中产...

华为mate20什么时候上市,上市时间与价格说明

10月16日,华为将在伦敦发布Mate20系列新机现在,有知情人士爆料,国内的发布会将于10月26日在上海举行,并于当天下午18:08正式开卖。随后,一张疑似天...

东山再起的典故和谁有关,详谈东山再起的历史背景和经过

东晋有个叫谢安的官,才学过人,但在朝廷遭到一帮小人的嫉妒,使得皇上一刻儿用他一刻儿贬他。谢安一气之下就辞官来到土山隐居,邀人下棋,落个耳根清静。他人在外,心念家...

个人创业贷款三年免息在哪申请(免息3年贷款操作流程)

按照财政部关于修订发布《普惠金融发展专项资金管理办法》的通知精神,创业担保贷款扶持力度更强了,符合创业担保贷款条件人员在申请贷款15万元的基础上,贴息政策延长到...

免费开源cms排行,开源cms系统哪个好

随着互联网应用开发技术的快速发展,各种用于快速制作网站的CMS网站内容管理系统层出不穷,现在,制作网站的成本和难度大大降低。现在只要提到做网站,最先想到就就是使...

央视呼吁电商双十一少一些套路:应该严打网店套路营销

11月5日消息,近日央视发言,呼吁双十一少一些套路,多一些真诚的实惠。正是双十一促销节期间,央视说出了许多普通消费者的心声。但电商平台和网店能否下大力气整改,恐...

vivo体验店和专卖店有什么区别,vivo体验店装修效果图一

在过去的十年中,手机行业逐渐敞开了多元化发展的大门,越来越多不同造型、配色和功能丰富的产品出现在大众视野,但遗憾的是传统店面的体验方式已经不能满足用户多元化的消...