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