win7系统两台电脑之间利用socket实现win7局网内互相通信文件传输
参考
本博客主要实现了简单win7系统下两台电脑之间(客户机与服务器)的文件传输主要是基于网络编程中来实现的当然这个只是简单的实现你可以根据你的需求在你的项目里面进行更改。这里主要实现的通过客户机()通过监听服务器的需求进而向服务器传输指定文件。
操作步骤
(1)首先打开你的cmd控制台查看你的端口号输入命令-ano如下图所示TCP后面红色矩形框就是你部分的端口号。在和这两个文件中将“# 1029“改为你的可用端口号比如“#definePORT 8128“其中8128就是你某个可用端口号。
(2)如果你在同一台电脑上面进行模拟是不用更改IP的当然如果是两台电脑这里就需要更改你的client.cpp和server.cpp这两个文件中#defineSERVER_IP“127.0.0.1”更改为你的Server服务器IP地址查看你IP地址的方法为打开你的打开你的cmd控制台输入命令ipconfig
(3)然后新建两个工程即可分别添加下面两个源文件先运行客户端代码然后运行服务器代码输入想要接收客户端的文件名就可以在你的服务器工程下接收到相应的文件。
服务器代码
server.cpp
/*************************************************************************FileName:Win_Server.cAuthor:SongLee************************************************************************/#includestdio.h#includestdlib.h#includestring.h#includeWinSock2.h//#definePORT8082#definePORT1029//需要更改你可用的端口#defineSERVER_IP127.0.0.1#defineBUFFER_SIZE1024#defineFILE_NAME_MAX_SIZE512#pragmacomment(lib,WS2_32)intmain(){//声明并初始化一个服务端(本地)的地址结构sockaddr_inserver_addr;server_addr.sin_familyAF_INET;server_addr.sin_addr.S_un.S_addrINADDR_ANY;server_addr.sin_porthtons(PORT);//初始化socketdllWSADATAwsaData;WORDsocketVersionMAKEWORD(2,0);if(WSAStartup(socketVersion,wsaData)!0){printf(Initsocketdllerror!exit(1);}//创建socketSOCKETm_Socketsocket(AF_INET,SOCK_STREAM,0);if(SOCKET_ERRORm_Socket){printf(CreateSocketError!exit(1);}//绑定socket和服务端(本地)地址if(SOCKET_ERRORbind(m_Socket,(LPSOCKADDR)server_addr,sizeof(server_addr))){printf(ServerBindFailed:%d,WSAGetLastError());exit(1);}//监听if(SOCKET_ERRORlisten(m_Socket,10)){printf(ServerListenFailed:%d,WSAGetLastError());exit(1);}while(1){printf(ListeningToServer...
//监听服务器需求sockaddr_inclient_addr;intclient_addr_lensizeof(client_addr);SOCKETm_New_Socketaccept(m_Socket,(sockaddr*)client_addr,client_addr_len);if(SOCKET_ERRORm_New_Socket){printf(ServerAcceptFailed:%d,WSAGetLastError());break;}charbuffer[BUFFER_SIZE];memset(buffer,0,BUFFER_SIZE);if(recv(m_New_Socket,buffer,BUFFER_SIZE,0)0){printf(ClientReceiveDataFailed!break;}charfile_name[FILE_NAME_MAX_SIZE1];memset(file_name,0,FILE_NAME_MAX_SIZE1);strncpy(file_name,buffer,strlen(buffer)FILE_NAME_MAX_SIZE?FILE_NAME_MAX_SIZE:strlen(buffer));printf(%s
,file_name);FILE*fpfopen(file_name,rb//windows下是rb,表示打开一个只读的二进制文件if(NULLfp){printf(File:%sNotFound
,file_name);}else{memset(buffer,0,BUFFER_SIZE);intlength0;while((lengthfread(buffer,sizeof(char),BUFFER_SIZE,fp))0){if(send(m_New_Socket,buffer,length,0)0){printf(SendFile:%sFailed
,file_name);break;}memset(buffer,0,BUFFER_SIZE);}fclose(fp);printf(File:%sTransferSuccessful!
,file_name);}closesocket(m_New_Socket);}closesocket(m_Socket);//释放winsock库WSACleanup();return0;}
客户机代码
client.cpp
/*************************************************************************FileName:Win_Client.cAuthor:SongLee************************************************************************/#includestdio.h#includestdlib.h#includestring.h#includeWinSock2.h//#definePORT8082#definePORT1029//需要更改你可用的端口#defineSERVER_IP127.0.0.1#defineBUFFER_SIZE1024#defineFILE_NAME_MAX_SIZE512#pragmacomment(lib,WS2_32)intmain(){//初始化socketdllWSADATAwsaData;WORDsocketVersionMAKEWORD(2,0);if(WSAStartup(socketVersion,wsaData)!0){printf(Initsocketdllerror!exit(1);}while(1){//创建socketSOCKETc_Socketsocket(AF_INET,SOCK_STREAM,0);if(SOCKET_ERRORc_Socket){printf(CreateSocketError!system(pauseexit(1);}//指定服务端的地址sockaddr_inserver_addr;server_addr.sin_familyAF_INET;server_addr.sin_addr.S_un.S_addrinet_addr(SERVER_IP);server_addr.sin_porthtons(PORT);if(SOCKET_ERRORconnect(c_Socket,(LPSOCKADDR)server_addr,sizeof(server_addr))){printf(CanNotConnectToClientIP!
system(pauseexit(1);}//输入文件名charfile_name[FILE_NAME_MAX_SIZE1];memset(file_name,0,FILE_NAME_MAX_SIZE1);printf(PleaseInputFileNameOnClient:scanf(%s,file_name);charbuffer[BUFFER_SIZE];memset(buffer,0,BUFFER_SIZE);strncpy(buffer,file_name,strlen(file_name)BUFFER_SIZE?BUFFER_SIZE:strlen(file_name));//向服务器发送文件名if(send(c_Socket,buffer,BUFFER_SIZE,0)0){printf(SendFileNameFailed
system(pauseexit(1);}//打开文件准备写入FILE*fpfopen(file_name,wb//windows下是wb,表示打开一个只写的二进制文件if(NULLfp){printf(File:%sCanNotOpenToWrite
,file_name);system(pauseexit(1);}else{memset(buffer,0,BUFFER_SIZE);intlength0;while((lengthrecv(c_Socket,buffer,BUFFER_SIZE,0))0){if(fwrite(buffer,sizeof(char),length,fp)length){printf(File:%sWriteFailed
,file_name);break;}memset(buffer,0,BUFFER_SIZE);}printf(ReceiveFile:%sFromClientSuccessful!
,file_name);}fclose(fp);closesocket(c_Socket);}//释放winsock库WSACleanup();system(pausereturn0;}
推荐系统
雨林木风 winxp下载 纯净版 永久激活 winxp ghost系统 sp3 系统下载
系统大小:0MB系统类型:WinXP雨林木风在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业知名品牌,雨林木风WindowsXP其系统口碑得到许多人认可,积累了广大的用户群体,是一款稳定流畅的系统,雨林木风 winxp下载 纯净版 永久激活 winxp ghost系统 sp3 系统下载,有需要的朋友速度下载吧。
系统等级:进入下载 >萝卜家园win7纯净版 ghost系统下载 x64 联想电脑专用
系统大小:0MB系统类型:Win7萝卜家园win7纯净版是款非常纯净的win7系统,此版本优化更新了大量的驱动,帮助用户们进行舒适的使用,更加的适合家庭办公的使用,方便用户,有需要的用户们快来下载安装吧。
系统等级:进入下载 >雨林木风xp系统 xp系统纯净版 winXP ghost xp sp3 纯净版系统下载
系统大小:1.01GB系统类型:WinXP雨林木风xp系统 xp系统纯净版 winXP ghost xp sp3 纯净版系统下载,雨林木风WinXP系统技术积累雄厚深耕多年,采用了新的系统功能和硬件驱动,可以更好的发挥系统的性能,优化了系统、驱动对硬件的加速,加固了系统安全策略,运行环境安全可靠稳定。
系统等级:进入下载 >萝卜家园win10企业版 免激活密钥 激活工具 V2023 X64位系统下载
系统大小:0MB系统类型:Win10萝卜家园在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的萝卜家园品牌,(win10企业版,win10 ghost,win10镜像),萝卜家园win10企业版 免激活密钥 激活工具 ghost镜像 X64位系统下载,其系统口碑得到许多人认可,积累了广大的用户群体,萝卜家园win10纯净版是一款稳定流畅的系统,一直以来都以用户为中心,是由萝卜家园win10团队推出的萝卜家园
系统等级:进入下载 >萝卜家园windows10游戏版 win10游戏专业版 V2023 X64位系统下载
系统大小:0MB系统类型:Win10萝卜家园windows10游戏版 win10游戏专业版 ghost X64位 系统下载,萝卜家园在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的萝卜家园品牌,其系统口碑得到许多人认可,积累了广大的用户群体,萝卜家园win10纯净版是一款稳定流畅的系统,一直以来都以用户为中心,是由萝卜家园win10团队推出的萝卜家园win10国内镜像版,基于国内用户的习惯,做
系统等级:进入下载 >windows11下载 萝卜家园win11专业版 X64位 V2023官网下载
系统大小:0MB系统类型:Win11萝卜家园在系统方面技术积累雄厚深耕多年,windows11下载 萝卜家园win11专业版 X64位 官网正式版可以更好的发挥系统的性能,优化了系统、驱动对硬件的加速,使得软件在WINDOWS11系统中运行得更加流畅,加固了系统安全策略,WINDOWS11系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。
系统等级:进入下载 >
相关文章
- 有什么电脑自动关机软件好用 电脑自动关机软件下载推荐
- 微信抽奖小程序怎么弄,教你微信转盘抽奖小程序制作方法
- 收集意见建议小程序怎么弄,教你制作匿名收集意见的小程序
- 扫码助力活动怎么弄,微信公众号助力活动的制作步骤
- 海报裂变活动怎么弄,微信公众号生成海报裂变活动的方法
- 公众号推广二维码怎么弄,微信公众号推广二维码生成方法
- 公众号裂变活动制作,微信公众号怎么做裂变活动
- 登记信息二维码制作,如何实现扫码登记填报信息
- 登记表怎么弄,教你微信登记表格怎么做
- 参数二维码怎么弄,微信公众号带参数二维码怎么生成
- 报名二维码怎么弄,微信公众号报名二维码制作步骤
- 设置电脑定时关机命令如何更改 电脑定时关机命令设置方法详解
- win7怎么自动关机 win7自动关机时间设置方法
- 设置定时关机命令在哪 电脑设置定时关机命令
热门系统
推荐软件
推荐应用
推荐游戏
热门文章
常用系统
- 1win11最新娱乐版下载 技术员联盟x64位 ghost系统 ISO镜像 v2023
- 2电脑公司windows7纯净版 ghost x64位 v2022.05 官网镜像下载
- 3外星人系统Win11稳定版系统下载 windows11 64位稳定版Ghost V2022
- 4win11一键装机小白版下载 外星人系统 x64位纯净版下载 笔记本专用
- 5萝卜家园Ghost win10 64位中文版专业版系统下载 windows10纯净专业版下载
- 6【国庆特别版】番茄花园Windows11高性能专业版ghost系统 ISO镜像下载
- 7青苹果系统 GHOST WIN7 SP1 X64 专业优化版 V2024
- 8深度技术ghost win7纯净版最新下载 大神装机版 ISO镜像下载
- 9雨林木风windows11中文版免激活 ghost镜像 V2022.04下载