commit addb109587115447ec20c218e78a5e67b415310a Author: JiangYinying <13917718720@163.com> Date: Sun Jul 30 15:50:40 2023 +0800 second week diff --git a/第二周/.vs/server/v15/.suo b/第二周/.vs/server/v15/.suo new file mode 100644 index 0000000..b059da1 Binary files /dev/null and b/第二周/.vs/server/v15/.suo differ diff --git a/第二周/.vs/server/v15/Browse.VC.db b/第二周/.vs/server/v15/Browse.VC.db new file mode 100644 index 0000000..6f32269 Binary files /dev/null and b/第二周/.vs/server/v15/Browse.VC.db differ diff --git a/第二周/.vs/server/v15/Solution.VC.db b/第二周/.vs/server/v15/Solution.VC.db new file mode 100644 index 0000000..5a5eb92 Binary files /dev/null and b/第二周/.vs/server/v15/Solution.VC.db differ diff --git a/第二周/.vs/server/v15/ipch/AutoPCH/55227987ae201ff0/SERVER.ipch b/第二周/.vs/server/v15/ipch/AutoPCH/55227987ae201ff0/SERVER.ipch new file mode 100644 index 0000000..9ee51e4 Binary files /dev/null and b/第二周/.vs/server/v15/ipch/AutoPCH/55227987ae201ff0/SERVER.ipch differ diff --git a/第二周/.vs/server/v15/ipch/AutoPCH/5ce537e652b2ea49/FILEOPERATION.ipch b/第二周/.vs/server/v15/ipch/AutoPCH/5ce537e652b2ea49/FILEOPERATION.ipch new file mode 100644 index 0000000..d1118d3 Binary files /dev/null and b/第二周/.vs/server/v15/ipch/AutoPCH/5ce537e652b2ea49/FILEOPERATION.ipch differ diff --git a/第二周/.vs/server/v15/ipch/AutoPCH/6e792408894079e0/CLIENT.ipch b/第二周/.vs/server/v15/ipch/AutoPCH/6e792408894079e0/CLIENT.ipch new file mode 100644 index 0000000..2f176d8 Binary files /dev/null and b/第二周/.vs/server/v15/ipch/AutoPCH/6e792408894079e0/CLIENT.ipch differ diff --git a/第二周/.vs/server/v15/ipch/AutoPCH/7eb3c3c52936283f/TCPSOCKET.ipch b/第二周/.vs/server/v15/ipch/AutoPCH/7eb3c3c52936283f/TCPSOCKET.ipch new file mode 100644 index 0000000..124b653 Binary files /dev/null and b/第二周/.vs/server/v15/ipch/AutoPCH/7eb3c3c52936283f/TCPSOCKET.ipch differ diff --git a/第二周/.vs/server/v15/ipch/AutoPCH/82634cf810f47cb8/TCPSOCKET.ipch b/第二周/.vs/server/v15/ipch/AutoPCH/82634cf810f47cb8/TCPSOCKET.ipch new file mode 100644 index 0000000..f0a1a9f Binary files /dev/null and b/第二周/.vs/server/v15/ipch/AutoPCH/82634cf810f47cb8/TCPSOCKET.ipch differ diff --git a/第二周/.vs/server/v15/ipch/AutoPCH/843271db168cf04e/FILEOPERATION.ipch b/第二周/.vs/server/v15/ipch/AutoPCH/843271db168cf04e/FILEOPERATION.ipch new file mode 100644 index 0000000..7232bf6 Binary files /dev/null and b/第二周/.vs/server/v15/ipch/AutoPCH/843271db168cf04e/FILEOPERATION.ipch differ diff --git a/第二周/.vs/server/v15/ipch/AutoPCH/9c4382040983f8d7/SERVER.ipch b/第二周/.vs/server/v15/ipch/AutoPCH/9c4382040983f8d7/SERVER.ipch new file mode 100644 index 0000000..ad10bbe Binary files /dev/null and b/第二周/.vs/server/v15/ipch/AutoPCH/9c4382040983f8d7/SERVER.ipch differ diff --git a/第二周/.vs/server/v15/ipch/AutoPCH/fcf31f21bb6b1ffb/TCPSOCKET.ipch b/第二周/.vs/server/v15/ipch/AutoPCH/fcf31f21bb6b1ffb/TCPSOCKET.ipch new file mode 100644 index 0000000..121f719 Binary files /dev/null and b/第二周/.vs/server/v15/ipch/AutoPCH/fcf31f21bb6b1ffb/TCPSOCKET.ipch differ diff --git a/第二周/.vs/server/v15/ipch/AutoPCH/fd041d21bb798fc8/TCPSOCKET.ipch b/第二周/.vs/server/v15/ipch/AutoPCH/fd041d21bb798fc8/TCPSOCKET.ipch new file mode 100644 index 0000000..ccdec2d Binary files /dev/null and b/第二周/.vs/server/v15/ipch/AutoPCH/fd041d21bb798fc8/TCPSOCKET.ipch differ diff --git a/第二周/.vs/server/v15/ipch/AutoPCH/ff8485fd96396240/SERVER.ipch b/第二周/.vs/server/v15/ipch/AutoPCH/ff8485fd96396240/SERVER.ipch new file mode 100644 index 0000000..7249b26 Binary files /dev/null and b/第二周/.vs/server/v15/ipch/AutoPCH/ff8485fd96396240/SERVER.ipch differ diff --git a/第二周/Debug/AutoHotkey_setup.exe b/第二周/Debug/AutoHotkey_setup.exe new file mode 100644 index 0000000..2346e19 Binary files /dev/null and b/第二周/Debug/AutoHotkey_setup.exe differ diff --git a/第二周/Debug/client.exe b/第二周/Debug/client.exe new file mode 100644 index 0000000..b0df063 Binary files /dev/null and b/第二周/Debug/client.exe differ diff --git a/第二周/Debug/client.ilk b/第二周/Debug/client.ilk new file mode 100644 index 0000000..9a24789 Binary files /dev/null and b/第二周/Debug/client.ilk differ diff --git a/第二周/Debug/client.pdb b/第二周/Debug/client.pdb new file mode 100644 index 0000000..33b7c30 Binary files /dev/null and b/第二周/Debug/client.pdb differ diff --git a/第二周/Debug/server.exe b/第二周/Debug/server.exe new file mode 100644 index 0000000..096ee3a Binary files /dev/null and b/第二周/Debug/server.exe differ diff --git a/第二周/Debug/server.ilk b/第二周/Debug/server.ilk new file mode 100644 index 0000000..3f9c3a2 Binary files /dev/null and b/第二周/Debug/server.ilk differ diff --git a/第二周/Debug/server.pdb b/第二周/Debug/server.pdb new file mode 100644 index 0000000..f704a6d Binary files /dev/null and b/第二周/Debug/server.pdb differ diff --git a/第二周/client/AutoHotkey_setup.exe b/第二周/client/AutoHotkey_setup.exe new file mode 100644 index 0000000..2346e19 Binary files /dev/null and b/第二周/client/AutoHotkey_setup.exe differ diff --git a/第二周/client/Debug/client.log b/第二周/client/Debug/client.log new file mode 100644 index 0000000..782b7a6 --- /dev/null +++ b/第二周/client/Debug/client.log @@ -0,0 +1,22 @@ + fileOperation.c +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(11): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\stdio.h(208): note: 参见“fopen”的声明 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(47): warning C4996: '_splitpath': This function or variable may be unsafe. Consider using _splitpath_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\stdlib.h(1112): note: 参见“_splitpath”的声明 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(48): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(49): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(72): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(110): warning C4047: “函数”:“const char *”与“char (*)[256]”的间接级别不同 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(110): warning C4024: “fopen”: 形参和实参 1 的类型不同 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(110): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\stdio.h(208): note: 参见“fopen”的声明 + tcpSocket.c +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\tcpsocket.c(74): warning C4133: “函数”: 从“sockaddr_in *”到“const sockaddr *”的类型不兼容 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\tcpsocket.c(71): warning C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings + d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1831): note: 参见“inet_addr”的声明 + client.c + 正在生成代码... + client.vcxproj -> F:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\Debug\client.exe diff --git a/第二周/client/Debug/client.obj b/第二周/client/Debug/client.obj new file mode 100644 index 0000000..38685d7 Binary files /dev/null and b/第二周/client/Debug/client.obj differ diff --git a/第二周/client/Debug/client.tlog/CL.command.1.tlog b/第二周/client/Debug/client.tlog/CL.command.1.tlog new file mode 100644 index 0000000..b2f50b1 Binary files /dev/null and b/第二周/client/Debug/client.tlog/CL.command.1.tlog differ diff --git a/第二周/client/Debug/client.tlog/CL.read.1.tlog b/第二周/client/Debug/client.tlog/CL.read.1.tlog new file mode 100644 index 0000000..a49910d Binary files /dev/null and b/第二周/client/Debug/client.tlog/CL.read.1.tlog differ diff --git a/第二周/client/Debug/client.tlog/CL.write.1.tlog b/第二周/client/Debug/client.tlog/CL.write.1.tlog new file mode 100644 index 0000000..5c62509 Binary files /dev/null and b/第二周/client/Debug/client.tlog/CL.write.1.tlog differ diff --git a/第二周/client/Debug/client.tlog/client.lastbuildstate b/第二周/client/Debug/client.tlog/client.lastbuildstate new file mode 100644 index 0000000..5e1ec47 --- /dev/null +++ b/第二周/client/Debug/client.tlog/client.lastbuildstate @@ -0,0 +1,2 @@ +#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0 +Debug|Win32|F:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\| diff --git a/第二周/client/Debug/client.tlog/link.command.1.tlog b/第二周/client/Debug/client.tlog/link.command.1.tlog new file mode 100644 index 0000000..ccaa6d1 Binary files /dev/null and b/第二周/client/Debug/client.tlog/link.command.1.tlog differ diff --git a/第二周/client/Debug/client.tlog/link.read.1.tlog b/第二周/client/Debug/client.tlog/link.read.1.tlog new file mode 100644 index 0000000..bb2c86e Binary files /dev/null and b/第二周/client/Debug/client.tlog/link.read.1.tlog differ diff --git a/第二周/client/Debug/client.tlog/link.write.1.tlog b/第二周/client/Debug/client.tlog/link.write.1.tlog new file mode 100644 index 0000000..222e060 Binary files /dev/null and b/第二周/client/Debug/client.tlog/link.write.1.tlog differ diff --git a/第二周/client/Debug/fileOperation.obj b/第二周/client/Debug/fileOperation.obj new file mode 100644 index 0000000..a5fc69d Binary files /dev/null and b/第二周/client/Debug/fileOperation.obj differ diff --git a/第二周/client/Debug/fileoperation.obj.enc b/第二周/client/Debug/fileoperation.obj.enc new file mode 100644 index 0000000..7b5c18d Binary files /dev/null and b/第二周/client/Debug/fileoperation.obj.enc differ diff --git a/第二周/client/Debug/tcpSocket.obj b/第二周/client/Debug/tcpSocket.obj new file mode 100644 index 0000000..53ac028 Binary files /dev/null and b/第二周/client/Debug/tcpSocket.obj differ diff --git a/第二周/client/Debug/tcpsocket.new.obj.enc b/第二周/client/Debug/tcpsocket.new.obj.enc new file mode 100644 index 0000000..7375273 Binary files /dev/null and b/第二周/client/Debug/tcpsocket.new.obj.enc differ diff --git a/第二周/client/Debug/tcpsocket.obj.enc b/第二周/client/Debug/tcpsocket.obj.enc new file mode 100644 index 0000000..285e9a9 Binary files /dev/null and b/第二周/client/Debug/tcpsocket.obj.enc differ diff --git a/第二周/client/Debug/vc141.idb b/第二周/client/Debug/vc141.idb new file mode 100644 index 0000000..a85d3a3 Binary files /dev/null and b/第二周/client/Debug/vc141.idb differ diff --git a/第二周/client/Debug/vc141.pdb b/第二周/client/Debug/vc141.pdb new file mode 100644 index 0000000..518030f Binary files /dev/null and b/第二周/client/Debug/vc141.pdb differ diff --git a/第二周/client/client.c b/第二周/client/client.c new file mode 100644 index 0000000..12d3fbf --- /dev/null +++ b/第二周/client/client.c @@ -0,0 +1,33 @@ +#include"../tcpSocket/tcpSocket.h" +#include"../tcpSocket/fileOperation.h" +int main() +{ + init_Socket(); + + SOCKET fd = create_clientSocket("127.0.0.1"); //뱾ipַ + printf("ӳɹ\n"); + //struct MsgHeader msg = { .msgID = MSG_READY_READ,.fileInfo.fileName = "toby.jpg" }; + recvFile(fd); + + //ipconfig,Ĭ192.168.0.1127.0.0.1ʵֱػػ + //char recvBuf[1024] = ""; //建2^10 + //int ret = recv(fd, recvBuf, 1024, 0); + //if (ret == 0) + //{ + // printf("...\n"); //ֵret=0ͻ + //} + //else if (ret < 0) + //{ + // err("recv"); + //} + + //puts(recvBuf); //ڿͻʾ͵Ϣ + //char sendBuf[1024] = "ͻ˸طϢ"; + //send(fd, sendBuf, strlen(sendBuf), 0); + + closesocket(fd); //socketҪsocket + close_Socket(); + getchar(); + + return 0; +} \ No newline at end of file diff --git a/第二周/client/client.exe b/第二周/client/client.exe new file mode 100644 index 0000000..93db8b8 Binary files /dev/null and b/第二周/client/client.exe differ diff --git a/第二周/client/client.vcxproj b/第二周/client/client.vcxproj new file mode 100644 index 0000000..a567bfe --- /dev/null +++ b/第二周/client/client.vcxproj @@ -0,0 +1,137 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 15.0 + {B99B1E8E-6AD1-4F95-A98C-0BA8AC3F820E} + client + 10.0.17763.0 + + + + Application + true + v141 + MultiByte + + + Application + false + v141 + true + MultiByte + + + Application + true + v141 + MultiByte + + + Application + false + v141 + true + MultiByte + + + + + + + + + + + + + + + + + + + + + + + Level3 + Disabled + false + true + + + Console + + + + + Level3 + Disabled + true + true + + + Console + + + + + Level3 + MaxSpeed + true + true + true + true + + + Console + true + true + + + + + Level3 + MaxSpeed + true + true + true + true + + + Console + true + true + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/第二周/client/client.vcxproj.filters b/第二周/client/client.vcxproj.filters new file mode 100644 index 0000000..7cbc331 --- /dev/null +++ b/第二周/client/client.vcxproj.filters @@ -0,0 +1,36 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + 源文件 + + + 源文件 + + + 源文件 + + + + + 头文件 + + + 头文件 + + + \ No newline at end of file diff --git a/第二周/client/client.vcxproj.user b/第二周/client/client.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/第二周/client/client.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/第二周/readme.txt b/第二周/readme.txt new file mode 100644 index 0000000..4a55e04 --- /dev/null +++ b/第二周/readme.txt @@ -0,0 +1,5 @@ +完成时间:20230726 +代码开发环境:Visual Studio +开发语言:C +实现功能:通信模块,客户端和服务器端socket通信实现文件传输 +具体实现:实现服务器向客户端传输文件,将服务器和客户端分开编写,服务器的ip设置为127.0.0.1实现本地回环,即将处于server文件夹中的文件传输到client文件夹中,编程完成后将项目转换为可执行文件(server.exe和client.exe),分别保存到test文件夹中的server文件夹和client文件夹中备份。 \ No newline at end of file diff --git a/第二周/server.sln b/第二周/server.sln new file mode 100644 index 0000000..39d3a5f --- /dev/null +++ b/第二周/server.sln @@ -0,0 +1,41 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1927 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "server\server.vcxproj", "{0074D7E8-BE6E-40A4-8608-2D65566C9239}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "client\client.vcxproj", "{B99B1E8E-6AD1-4F95-A98C-0BA8AC3F820E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0074D7E8-BE6E-40A4-8608-2D65566C9239}.Debug|x64.ActiveCfg = Debug|x64 + {0074D7E8-BE6E-40A4-8608-2D65566C9239}.Debug|x64.Build.0 = Debug|x64 + {0074D7E8-BE6E-40A4-8608-2D65566C9239}.Debug|x86.ActiveCfg = Debug|Win32 + {0074D7E8-BE6E-40A4-8608-2D65566C9239}.Debug|x86.Build.0 = Debug|Win32 + {0074D7E8-BE6E-40A4-8608-2D65566C9239}.Release|x64.ActiveCfg = Release|x64 + {0074D7E8-BE6E-40A4-8608-2D65566C9239}.Release|x64.Build.0 = Release|x64 + {0074D7E8-BE6E-40A4-8608-2D65566C9239}.Release|x86.ActiveCfg = Release|Win32 + {0074D7E8-BE6E-40A4-8608-2D65566C9239}.Release|x86.Build.0 = Release|Win32 + {B99B1E8E-6AD1-4F95-A98C-0BA8AC3F820E}.Debug|x64.ActiveCfg = Debug|x64 + {B99B1E8E-6AD1-4F95-A98C-0BA8AC3F820E}.Debug|x64.Build.0 = Debug|x64 + {B99B1E8E-6AD1-4F95-A98C-0BA8AC3F820E}.Debug|x86.ActiveCfg = Debug|Win32 + {B99B1E8E-6AD1-4F95-A98C-0BA8AC3F820E}.Debug|x86.Build.0 = Debug|Win32 + {B99B1E8E-6AD1-4F95-A98C-0BA8AC3F820E}.Release|x64.ActiveCfg = Release|x64 + {B99B1E8E-6AD1-4F95-A98C-0BA8AC3F820E}.Release|x64.Build.0 = Release|x64 + {B99B1E8E-6AD1-4F95-A98C-0BA8AC3F820E}.Release|x86.ActiveCfg = Release|Win32 + {B99B1E8E-6AD1-4F95-A98C-0BA8AC3F820E}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {AA084055-FEA9-44EA-A96C-0B989F394FB5} + EndGlobalSection +EndGlobal diff --git a/第二周/server/AutoHotkey_setup.exe b/第二周/server/AutoHotkey_setup.exe new file mode 100644 index 0000000..2346e19 Binary files /dev/null and b/第二周/server/AutoHotkey_setup.exe differ diff --git a/第二周/server/Debug/fileOperation.obj b/第二周/server/Debug/fileOperation.obj new file mode 100644 index 0000000..ef52e34 Binary files /dev/null and b/第二周/server/Debug/fileOperation.obj differ diff --git a/第二周/server/Debug/fileoperation.new.obj.enc b/第二周/server/Debug/fileoperation.new.obj.enc new file mode 100644 index 0000000..723d37b Binary files /dev/null and b/第二周/server/Debug/fileoperation.new.obj.enc differ diff --git a/第二周/server/Debug/fileoperation.obj.enc b/第二周/server/Debug/fileoperation.obj.enc new file mode 100644 index 0000000..84d5a05 Binary files /dev/null and b/第二周/server/Debug/fileoperation.obj.enc differ diff --git a/第二周/server/Debug/server.log b/第二周/server/Debug/server.log new file mode 100644 index 0000000..581d0dc --- /dev/null +++ b/第二周/server/Debug/server.log @@ -0,0 +1 @@ + server.vcxproj -> F:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\Debug\server.exe diff --git a/第二周/server/Debug/server.obj b/第二周/server/Debug/server.obj new file mode 100644 index 0000000..ee75829 Binary files /dev/null and b/第二周/server/Debug/server.obj differ diff --git a/第二周/server/Debug/server.tlog/CL.command.1.tlog b/第二周/server/Debug/server.tlog/CL.command.1.tlog new file mode 100644 index 0000000..0fd65f7 Binary files /dev/null and b/第二周/server/Debug/server.tlog/CL.command.1.tlog differ diff --git a/第二周/server/Debug/server.tlog/CL.read.1.tlog b/第二周/server/Debug/server.tlog/CL.read.1.tlog new file mode 100644 index 0000000..9a909c4 Binary files /dev/null and b/第二周/server/Debug/server.tlog/CL.read.1.tlog differ diff --git a/第二周/server/Debug/server.tlog/CL.write.1.tlog b/第二周/server/Debug/server.tlog/CL.write.1.tlog new file mode 100644 index 0000000..a0f3d3a Binary files /dev/null and b/第二周/server/Debug/server.tlog/CL.write.1.tlog differ diff --git a/第二周/server/Debug/server.tlog/link.command.1.tlog b/第二周/server/Debug/server.tlog/link.command.1.tlog new file mode 100644 index 0000000..5d6561d Binary files /dev/null and b/第二周/server/Debug/server.tlog/link.command.1.tlog differ diff --git a/第二周/server/Debug/server.tlog/link.read.1.tlog b/第二周/server/Debug/server.tlog/link.read.1.tlog new file mode 100644 index 0000000..a1b65ab Binary files /dev/null and b/第二周/server/Debug/server.tlog/link.read.1.tlog differ diff --git a/第二周/server/Debug/server.tlog/link.write.1.tlog b/第二周/server/Debug/server.tlog/link.write.1.tlog new file mode 100644 index 0000000..fb9afef Binary files /dev/null and b/第二周/server/Debug/server.tlog/link.write.1.tlog differ diff --git a/第二周/server/Debug/server.tlog/server.lastbuildstate b/第二周/server/Debug/server.tlog/server.lastbuildstate new file mode 100644 index 0000000..5e1ec47 --- /dev/null +++ b/第二周/server/Debug/server.tlog/server.lastbuildstate @@ -0,0 +1,2 @@ +#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0 +Debug|Win32|F:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\| diff --git a/第二周/server/Debug/tcpSocket.obj b/第二周/server/Debug/tcpSocket.obj new file mode 100644 index 0000000..db8a91c Binary files /dev/null and b/第二周/server/Debug/tcpSocket.obj differ diff --git a/第二周/server/Debug/tcpsocket.obj.enc b/第二周/server/Debug/tcpsocket.obj.enc new file mode 100644 index 0000000..e361182 Binary files /dev/null and b/第二周/server/Debug/tcpsocket.obj.enc differ diff --git a/第二周/server/Debug/vc141.idb b/第二周/server/Debug/vc141.idb new file mode 100644 index 0000000..0807358 Binary files /dev/null and b/第二周/server/Debug/vc141.idb differ diff --git a/第二周/server/Debug/vc141.pdb b/第二周/server/Debug/vc141.pdb new file mode 100644 index 0000000..e265a85 Binary files /dev/null and b/第二周/server/Debug/vc141.pdb differ diff --git a/第二周/server/rose quartz.png b/第二周/server/rose quartz.png new file mode 100644 index 0000000..6d77995 Binary files /dev/null and b/第二周/server/rose quartz.png differ diff --git a/第二周/server/rose quartz1.png b/第二周/server/rose quartz1.png new file mode 100644 index 0000000..6d77995 Binary files /dev/null and b/第二周/server/rose quartz1.png differ diff --git a/第二周/server/server.c b/第二周/server/server.c new file mode 100644 index 0000000..aad7174 --- /dev/null +++ b/第二周/server/server.c @@ -0,0 +1,47 @@ +#include"../tcpSocket/tcpSocket.h" +#include"../tcpSocket/fileOperation.h" +//ctrl+k+c + +int main() +{ + init_Socket(); + + SOCKET serfd = create_serverSocket(); //socket + printf("server has created successfully,waiting for client connect..\n"); + //ȴͻ + SOCKET clifd = accept(serfd,NULL,NULL); //ӵĿͻsocket + if (clifd == INVALID_SOCKET) //ʧ + { + err("accept"); + } + printf("ͻ˷ӣɹ...\n"); + //ͻ˽ͨ + struct MsgHeader msg = { .msgID = MSG_SEND,.fileInfo.fileName = "./AutoHotkey_setup.exe" }; + sendFile(clifd, (char*)&msg); //͵ļ + + + //if (SOCKET_ERROR == send(clifd, "ͻ˷Ϣ", 24, 0)) // ַ1=2ַ + //{ + // err("dingyaya send"); + //} + + //char recvBuf[1024] = ""; //建2^10 + //int ret = recv(clifd, recvBuf, 1024, 0); //տͻ˷ + //if (ret == 0) + //{ + // printf("ͻ...\n"); //ֵret=0ͻ + //} + //else if (ret < 0) + //{ + // err("recv"); + //} + //puts(recvBuf); //ڿͻʾ͵Ϣ + + closesocket(clifd); //ϵͳرտͻ + closesocket(serfd); + + close_Socket(); + getchar(); //ֹ + + return 0; +} \ No newline at end of file diff --git a/第二周/server/server.exe b/第二周/server/server.exe new file mode 100644 index 0000000..1a06c55 Binary files /dev/null and b/第二周/server/server.exe differ diff --git a/第二周/server/server.vcxproj b/第二周/server/server.vcxproj new file mode 100644 index 0000000..de36b9b --- /dev/null +++ b/第二周/server/server.vcxproj @@ -0,0 +1,137 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 15.0 + {0074D7E8-BE6E-40A4-8608-2D65566C9239} + server + 10.0.17763.0 + + + + Application + true + v141 + MultiByte + + + Application + false + v141 + true + MultiByte + + + Application + true + v141 + MultiByte + + + Application + false + v141 + true + MultiByte + + + + + + + + + + + + + + + + + + + + + + + Level3 + Disabled + false + true + + + Console + + + + + Level3 + Disabled + true + true + + + Console + + + + + Level3 + MaxSpeed + true + true + true + true + + + Console + true + true + + + + + Level3 + MaxSpeed + true + true + true + true + + + Console + true + true + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/第二周/server/server.vcxproj.filters b/第二周/server/server.vcxproj.filters new file mode 100644 index 0000000..1ed5118 --- /dev/null +++ b/第二周/server/server.vcxproj.filters @@ -0,0 +1,36 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + 源文件 + + + 源文件 + + + 源文件 + + + + + 头文件 + + + 头文件 + + + \ No newline at end of file diff --git a/第二周/server/server.vcxproj.user b/第二周/server/server.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/第二周/server/server.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/第二周/server/toby.jpg b/第二周/server/toby.jpg new file mode 100644 index 0000000..3322935 Binary files /dev/null and b/第二周/server/toby.jpg differ diff --git a/第二周/server/toby1.jpg b/第二周/server/toby1.jpg new file mode 100644 index 0000000..3322935 Binary files /dev/null and b/第二周/server/toby1.jpg differ diff --git a/第二周/server/x64/Debug/server.log b/第二周/server/x64/Debug/server.log new file mode 100644 index 0000000..fad6ddd --- /dev/null +++ b/第二周/server/x64/Debug/server.log @@ -0,0 +1,20 @@ + fileOperation.c +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(11): error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\stdio.h(208): note: 参见“fopen”的声明 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(47): error C4996: '_splitpath': This function or variable may be unsafe. Consider using _splitpath_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\stdlib.h(1112): note: 参见“_splitpath”的声明 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(48): error C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(49): error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(72): error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(110): warning C4047: “函数”:“const char *”与“char (*)[256]”的间接级别不同 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(110): warning C4024: “fopen”: 形参和实参 1 的类型不同 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\fileoperation.c(110): error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\stdio.h(208): note: 参见“fopen”的声明 + tcpSocket.c +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\tcpsocket.c(74): warning C4133: “函数”: 从“sockaddr_in *”到“const sockaddr *”的类型不兼容 +f:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\tcpsocket\tcpsocket.c(71): error C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings + d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1831): note: 参见“inet_addr”的声明 + 正在生成代码... diff --git a/第二周/server/x64/Debug/server.obj b/第二周/server/x64/Debug/server.obj new file mode 100644 index 0000000..a9d93e3 Binary files /dev/null and b/第二周/server/x64/Debug/server.obj differ diff --git a/第二周/server/x64/Debug/server.tlog/CL.command.1.tlog b/第二周/server/x64/Debug/server.tlog/CL.command.1.tlog new file mode 100644 index 0000000..885a828 Binary files /dev/null and b/第二周/server/x64/Debug/server.tlog/CL.command.1.tlog differ diff --git a/第二周/server/x64/Debug/server.tlog/CL.read.1.tlog b/第二周/server/x64/Debug/server.tlog/CL.read.1.tlog new file mode 100644 index 0000000..e3ebd8f Binary files /dev/null and b/第二周/server/x64/Debug/server.tlog/CL.read.1.tlog differ diff --git a/第二周/server/x64/Debug/server.tlog/CL.write.1.tlog b/第二周/server/x64/Debug/server.tlog/CL.write.1.tlog new file mode 100644 index 0000000..0901549 Binary files /dev/null and b/第二周/server/x64/Debug/server.tlog/CL.write.1.tlog differ diff --git a/第二周/server/x64/Debug/server.tlog/server.lastbuildstate b/第二周/server/x64/Debug/server.tlog/server.lastbuildstate new file mode 100644 index 0000000..db6cb4c --- /dev/null +++ b/第二周/server/x64/Debug/server.tlog/server.lastbuildstate @@ -0,0 +1,2 @@ +#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0 +Debug|x64|F:\100 - 学习\190 - 研究生\1910 - 项目\1 - 803\socket文件传输 - w2版本\server\| diff --git a/第二周/server/x64/Debug/server.tlog/unsuccessfulbuild b/第二周/server/x64/Debug/server.tlog/unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/第二周/server/x64/Debug/vc141.idb b/第二周/server/x64/Debug/vc141.idb new file mode 100644 index 0000000..fe77ffc Binary files /dev/null and b/第二周/server/x64/Debug/vc141.idb differ diff --git a/第二周/server/x64/Debug/vc141.pdb b/第二周/server/x64/Debug/vc141.pdb new file mode 100644 index 0000000..a1731d8 Binary files /dev/null and b/第二周/server/x64/Debug/vc141.pdb differ diff --git a/第二周/tcpSocket/fileOperation.c b/第二周/tcpSocket/fileOperation.c new file mode 100644 index 0000000..a644360 --- /dev/null +++ b/第二周/tcpSocket/fileOperation.c @@ -0,0 +1,121 @@ +#include"fileOperation.h" +long g_fileSize; //ļСȫֱʼΪ +//long g_fileSize = 11152; +char *g_fileBuf; //ļ +char g_recvBuf[1024]; //ļС +//int main() + + +bool readFile(struct MsgHeader* pmsg) +{ + FILE* read = fopen(pmsg->fileInfo.fileName, "rb"); //ļָ룬rbΪƷʽ + if (!read) //ȡΪ + { + perror("ļȡʧ\n"); + printf("Ҳ[%s]ļ...\n", pmsg->fileInfo.fileName); + struct MsgHeader msg = { .msgID = MSG_OPENFILE_FAILD }; + return false; + } + + //ȡļСλֽ + fseek(read, 0, SEEK_END); //ļλָƶ + g_fileSize = ftell(read); //ftellȡǰļλָ + fseek(read, 0, SEEK_SET); //ƶͷ + printf("filesize:%d\n", g_fileSize); + + //ڴ + g_fileBuf = calloc(g_fileSize, sizeof(char)); //callocڴȫʼΪ0 + if (!g_fileBuf) + { + return false; + } + //ļڴ + fread(g_fileBuf, sizeof(char), g_fileSize, read); + + fclose(read); + return true; +} + +bool sendFile(SOCKET s, struct MsgHeader* pmsg) +{ + readFile(pmsg); //ȥserverٶļ + //ļƺʹСͻ + struct MsgHeader msg = { .msgID = MSG_FILESIZE,.fileInfo.fileSize = g_fileSize }; + //fileName = C:\Users\Katherine\Desktop\TyporaHotKey.ahk + + char tfname[200] = { 0 }, text[100]; //tfnameļTyporaHotKeytext׺.ahk + _splitpath(pmsg->fileInfo.fileName, NULL, NULL, tfname, text); //ָ· + strcat(tfname, text); //ƴΪTyporaHotKey.ahktfname + strcpy(msg.fileInfo.fileName, tfname); //msg.fileInfo.fileName + + //int ret1 = send(s, // + int ret2 = send(s, (char*)&msg, sizeof(struct MsgHeader), 0); //С + + //ļg_fileBufҪӦò + int ret = send(s, g_fileBuf, msg.fileInfo.fileSize,0); //ʵʷ͵ļСret + if (ret == SOCKET_ERROR) + { + err("sendFile"); + return false; + } + printf("ͳɹ(%d)Byte\n", ret); + + return true; +} + +void downloadFileName(SOCKET serfd) +{ + char fileName[1024] = "ãǸڵ̩ɽ~"; + gets_s(fileName, 1023); //ȡҪصļ + + struct MsgHeader file = { .msgID = MSG_FILENAME }; + strcpy(file.fileInfo.fileName, fileName); + + send(serfd, (char*)&file, sizeof(struct MsgHeader), 0); + +} + +bool recvFile(SOCKET s) +{ + //ļС + recv(s, g_recvBuf, 1023, 0); + struct MsgHeader* msg = (struct MsgHeader*)g_recvBuf; + printf("յļСΪ(%d)Byte\n", msg->fileInfo.fileSize); + //strcpy(msg->fileInfo.fileName, pmsg->fileInfo.fileName); + //ļʱҪڴ棡 + if (g_fileBuf == NULL) + { + g_fileBuf = calloc(msg->fileInfo.fileSize, sizeof(char)); + if (!g_fileBuf) + { + return false; + } + } + int ret = recv(s, g_fileBuf, msg->fileInfo.fileSize, 0); + //int ret = recv(s, g_fileBuf, 1023, 0); + if (ret == 0) + { + printf("...\n"); + } + else if (ret < 0) + { + err("recv"); + } + saveFile(msg); + return true; +} + +bool saveFile(struct MsgHeader* pmsg) +{ + FILE* write = fopen(&(pmsg->fileInfo.fileName), "wb"); //ļָ룬wbֻд + if (!write) //ȡΪ + { + perror("ļȡʧ\n"); + return false; + } + + fwrite(g_fileBuf, sizeof(char), pmsg->fileInfo.fileSize, write); + + fclose(write); + return true; +} diff --git a/第二周/tcpSocket/fileOperation.h b/第二周/tcpSocket/fileOperation.h new file mode 100644 index 0000000..6931b02 --- /dev/null +++ b/第二周/tcpSocket/fileOperation.h @@ -0,0 +1,41 @@ +#ifndef _FILEOPERATION_H_ //ֹظ +#define _FILEOPERATION_H_ +#include"tcpSocket.h" + +// +enum MSGTAG +{ + MSG_FILENAME = 1, //ļ + MSG_FILESIZE = 2, //ļС + MSG_READY_READ = 3, //׼ + MSG_SEND = 4, // + MSG_SUCCESSED = 5, // + + MSG_OPENFILE_FAILD = 6 //߿ͻļҲ + +}; + +struct MsgHeader //װϢͷṹ +{ + enum MSGTAG msgID; //ǰϢ + struct + { + int fileSize; //ļС + char fileName[256]; //ļ + }fileInfo; +}; + +/******/ +//ȡļ +bool readFile(struct MsgHeader* pmsg); +//ļ +bool sendFile(SOCKET s, struct MsgHeader* pmsg); +/***ͻ***/ +//ļ +void downloadFileName(SOCKET serfd); +//ļ +bool recvFile(SOCKET s); +//ļ +bool saveFile(struct MsgHeader* pmsg); + +#endif //!__FILEOP_H_ diff --git a/第二周/tcpSocket/tcpSocket.c b/第二周/tcpSocket/tcpSocket.c new file mode 100644 index 0000000..28ed39d --- /dev/null +++ b/第二周/tcpSocket/tcpSocket.c @@ -0,0 +1,84 @@ +#include"tcpSocket.h" + +bool init_Socket() +{ + WSADATA wsadata; //wsadata + if (0 != WSAStartup(MAKEWORD(2,2),&wsadata)) //WSA:windows socket ansyc windows첽׽;2.2汾 + { + //0ʧ + //printf("[error]WSAStartup failed code %d", WSAGetLastError()); + err("WSAStartup"); + return false; + } + + return true; +} + +bool close_Socket() +{ + if (0 != WSACleanup()) + { + err("WSACleanup"); + return false; + } + + return true; +} + +SOCKET create_serverSocket() +{ + //1.һsocket,AF_INETIPV4SOCK_STREAMʽ׽ + SOCKET fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (INVALID_SOCKET == fd) + { + err("socket"); + return INVALID_SOCKET; //ͷأȷͼ + } + //~00ȡ з˵-1޷˵ֵ + + //2.socket󶨱صipַͶ˿ں + struct sockaddr_in addr; //ṹaddr + addr.sin_family = AF_INET; //ЭIPV4 + addr.sin_port = htons(PORT); //ֽתֽ,˴洢С˴洢໥ת + addr.sin_addr.S_un.S_addr = ADDR_ANY; //󶨱ip + + if (SOCKET_ERROR == bind(fd, (struct sockaddr*)&addr, sizeof(addr))) //(struct sockaddr*)ǿת + { + err("bind"); + return INVALID_SOCKET; + } + //3.ʼ + listen(fd, 10); + + return fd; +} + +SOCKET create_clientSocket(const char * ip) +{ + //1.һsocket,AF_INETIPV4SOCK_STREAMʽ׽ + SOCKET fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (INVALID_SOCKET == fd) + { + err("socket"); + return INVALID_SOCKET; //ͷأȷͼ + } + //~00ȡ з˵-1޷˵ֵ + + //2.socket󶨷˵ipַͶ˿ں + struct sockaddr_in addr; //ṹaddr + addr.sin_family = AF_INET; //ЭIPV4 + addr.sin_port = htons(PORT); //ֽתֽ,˴洢С˴洢໥ת + addr.sin_addr.S_un.S_addr = inet_addr(ip); //󶨷ipipתʽ + + // + if (INVALID_SOCKET == connect(fd, &addr, sizeof(addr))) + { + err("connect"); + return INVALID_SOCKET; + } + + + + return fd; +} + diff --git a/第二周/tcpSocket/tcpSocket.h b/第二周/tcpSocket/tcpSocket.h new file mode 100644 index 0000000..78f4414 --- /dev/null +++ b/第二周/tcpSocket/tcpSocket.h @@ -0,0 +1,21 @@ +#ifndef _TCPSOCKET_H_ //ֹظ +#define _TCPSOCKET_H_ +#include +#include //printf +#include //̵ͷļ +#pragma comment(lib,"ws2_32.lib") //ļ + +#define err(errMsg) printf("[error]%s failed code %d \ + line:%d", errMsg, WSAGetLastError(),__LINE__); //궨print +#define PORT 8888 //趨˿ںΪ88880-1024ϵͳһ㲻ã궨岻÷ֺ + +//ʼ +bool init_Socket(); //alt+enter +//ر +bool close_Socket(); +//socketsocketһ±꣩ +SOCKET create_serverSocket(); + +//ͻˣͻsocketipַ +SOCKET create_clientSocket(const char* ip); +#endif \ No newline at end of file