در این مطلب، ویدئو انتقال فایل با استفاده از سوکت TCP در پایتون | برنامه نویسی سوکت با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:18:55
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,970 –> 00:00:09,250
[موسیقی]
2
00:00:09,360 –> 00:00:11,440
سلام دوستان به این ویدیو خوش آمدید
3
00:00:11,440 –> 00:00:13,759
در این ویدیو ما قصد داریم یک برنامه سرور
4
00:00:13,759 –> 00:00:14,799
کلاینت دیگر بسازیم
5
00:00:14,799 –> 00:00:17,520
که در آن کلاینت
6
00:00:17,520 –> 00:00:17,840
7
00:00:17,840 –> 00:00:20,080
فایلی را بخواند نام فایل خود را بفرستد و
8
00:00:20,080 –> 00:00:21,920
داده های فایل را به سرور سرور
9
00:00:21,920 –> 00:00:24,000
دریافت کند. و آن فایل را
10
00:00:24,000 –> 00:00:27,039
در داده های سمت سرور ذخیره کنید، بنابراین
11
00:00:27,039 –> 00:00:29,920
این برنامه ساده است، بنابراین بیایید
12
00:00:29,920 –> 00:00:31,359
با کد شروع کنیم، بنابراین اول از همه می خواهم
13
00:00:31,359 –> 00:00:33,120
14
00:00:33,120 –> 00:00:36,239
سوکت واردات سرور خود را بسازم تا تنها
15
00:00:36,239 –> 00:00:38,640
کتابخانه ای باشد که بعداً باید وارد
16
00:00:38,640 –> 00:00:41,680
کنیم IP باشد. آدرس و برای
17
00:00:41,680 –> 00:00:43,600
آن ما از توابع پویا خود
18
00:00:43,600 –> 00:00:45,520
از کتابخانه سوکت استفاده می کنیم تا
19
00:00:45,520 –> 00:00:47,600
آن iPad را فقط به صورت پویا دریافت کنیم تا مجبور نباشیم آن
20
00:00:47,600 –> 00:00:49,520
را به صورت دستی به این صورت تخصیص
21
00:00:49,520 –> 00:00:52,000
دهیم اگر وارد هستید و سپس امیدوارم
22
00:00:52,000 –> 00:00:54,079
که این آدرس
23
00:00:54,079 –> 00:00:57,360
IP آدرس را درک کنید. محدوده خصوصی،
24
00:00:57,360 –> 00:00:59,199
بنابراین بیایید آن را به صورت پویا با استفاده از برخی از
25
00:00:59,199 –> 00:01:03,199
توابع انجام
26
00:01:05,840 –> 00:01:08,080
27
00:01:08,080 –> 00:01:11,280
28
00:01:11,280 –> 00:01:14,479
29
00:01:14,479 –> 00:01:16,000
30
00:01:16,000 –> 00:01:19,520
31
00:01:20,720 –> 00:01:24,240
دهیم. اصلی در تابع اصلی
32
00:01:24,240 –> 00:01:25,920
و اگر نام برابر با اصلی باشد همه چیز را در این تابع اصلی می نویسیم
33
00:01:25,920 –> 00:01:28,640
34
00:01:29,920 –> 00:01:33,040
35
00:01:33,040 –> 00:01:37,600
و تابع اصلی را فراخوانی می کنیم
36
00:01:37,600 –> 00:01:41,280
خوب، بیایید با این شروع
37
00:01:41,280 –> 00:01:44,479
کنیم سوکت سوکت معکوس
38
00:01:44,479 –> 00:01:49,680
خوب اشتباه املایی مجدداً
39
00:01:49,920 –> 00:01:53,200
سوکت نقطه جیبی
40
00:01:53,200 –> 00:01:56,240
اولین سوکت نقطه بازار اولین نقطه در خانواده
41
00:01:56,240 –> 00:01:59,280
باشد اگر مگر اینکه ipv4 باشد.
42
00:01:59,280 –> 00:02:02,799
سپس
43
00:02:02,799 –> 00:02:05,920
socket.stream اساساً به این معنی است که اشکالی
44
00:02:05,920 –> 00:02:09,199
ندارد s-t-r-e-a-m گاهی اوقات در مورد
45
00:02:09,199 –> 00:02:11,038
اشتباه کردن
46
00:02:11,038 –> 00:02:12,480
جریان سهام املایی است که اساساً به این معنی است که ما
47
00:02:12,480 –> 00:02:14,080
از اتصال tcp استفاده می کنیم.
48
00:02:14,080 –> 00:02:16,080
49
00:02:16,080 –> 00:02:17,920
50
00:02:17,920 –> 00:02:19,120
51
00:02:19,120 –> 00:02:22,239
مانند
52
00:02:22,239 –> 00:02:24,319
udp نیست که در آن اتصال گرا
53
00:02:24,319 –> 00:02:26,400
نیست، فقط داده ها را ارسال می کند،
54
00:02:26,400 –> 00:02:28,560
پرس و جو نمی کند که آیا دریافت شده است یا نه، به آن
55
00:02:28,560 –> 00:02:29,520
اهمیت نمی
56
00:02:29,520 –> 00:02:32,239
دهد، بنابراین ما می خواهیم به این اهمیت بدهیم که آیا
57
00:02:32,239 –> 00:02:33,040
58
00:02:33,040 –> 00:02:34,400
و باید ارتباط مناسبی
59
00:02:34,400 –> 00:02:36,959
بین مشتری و مشتری وجود داشته باشد. سرور
60
00:02:36,959 –> 00:02:39,680
خوب است، بنابراین ما سوکت سرور خود را آماده
61
00:02:39,680 –> 00:02:41,440
کرده ایم، سپس آن را باند
62
00:02:41,440 –> 00:02:44,640
درب سرور متصل می کنیم، بنابراین
63
00:02:44,640 –> 00:02:45,599
آن را به یک iPad خاص متصل می کنیم
64
00:02:45,599 –> 00:02:48,080
به عنوان import و چندین
65
00:02:48,080 –> 00:02:49,280
ورودی آدرس ip را می گیرد،
66
00:02:49,280 –> 00:02:52,720
بنابراین بیایید آن تاپل را ایجاد کنیم،
67
00:02:56,560 –> 00:02:59,599
خوب،
68
00:02:59,599 –> 00:03:05,840
اکنون به کلاینت گوش می دهد
69
00:03:06,159 –> 00:03:10,000
تا این بدان معناست که
70
00:03:10,000 –> 00:03:11,920
سوکت سرور شروع به اتصال به
71
00:03:11,920 –> 00:03:13,680
پورت ipin خاص می کند و اکنون منتظر
72
00:03:13,680 –> 00:03:15,360
مشتری است. برای اتصال، در حال گوش دادن به
73
00:03:15,360 –> 00:03:16,879
کلاینت است، اما
74
00:03:16,879 –> 00:03:18,239
زمانی که کلاینت قرار است وصل
75
00:03:18,239 –> 00:03:19,599
شود، عملکردی اتفاق می افتد که
76
00:03:19,599 –> 00:03:21,920
باید آن را بنویسیم
77
00:03:21,920 –> 00:03:26,480
قبل از آن، اجازه دهید خطی را بنویسیم
78
00:03:30,879 –> 00:03:35,680
که سرور شروع به کار می
79
00:03:35,680 –> 00:03:38,879
کند، حالا دوباره در اینجا برخی اطلاعات برای
80
00:03:38,879 –> 00:03:42,000
نمایش در کنسول
81
00:03:44,080 –> 00:03:48,560
خوب است. من فراموش کردم از نقل قول استفاده کنم
82
00:03:50,799 –> 00:03:54,799
هر چیزی که گوش می دهد
83
00:03:55,760 –> 00:03:59,040
خوب اکنون
84
00:03:59,040 –> 00:04:00,799
می خواهیم یک حلقه while ایجاد کنیم و
85
00:04:00,799 –> 00:04:02,480
در حلقه while محدود
86
00:04:02,480 –> 00:04:04,959
فقط زمانی متوقف می شود که ما
87
00:04:04,959 –> 00:04:07,200
صراحتاً بخواهیم برنامه
88
00:04:07,200 –> 00:04:08,080
متوقف شود
89
00:04:08,080 –> 00:04:10,720
در غیر این صورت به طور مداوم اجرا می شود بنابراین
90
00:04:10,720 –> 00:04:12,480
یک حلقه نیست.
91
00:04:12,480 –> 00:04:14,319
سرور همزمان که در آن می تواند
92
00:04:14,319 –> 00:04:16,160
چندین کلاینت را به طور همزمان مدیریت کند،
93
00:04:16,160 –> 00:04:18,079
این برنامه قرار است تنها یک
94
00:04:18,079 –> 00:04:20,238
کلاینت را به طور همزمان مدیریت کند
95
00:04:20,238 –> 00:04:22,720
اولین اتصال کلاینت عملیات آن
96
00:04:22,720 –> 00:04:24,320
اتفاق می افتد بین کلاینت و
97
00:04:24,320 –> 00:04:26,639
سرور، کلاینت قطع می شود، سپس
98
00:04:26,639 –> 00:04:29,040
کلاینت بعدی شروع به
99
00:04:29,040 –> 00:04:32,320
قطع می کند، عملیات را
100
00:04:32,320 –> 00:04:36,000
قطع می کند، بنابراین به همین ترتیب ادامه می یابد،
101
00:04:36,479 –> 00:04:40,840
خوب اجازه دهید اتصال از
102
00:04:40,840 –> 00:04:43,840
مشتری را
103
00:04:45,120 –> 00:04:48,639
بپذیریم، می توانیم
104
00:04:50,800 –> 00:04:57,840
اتصال جدید را چاپ کنیم
105
00:04:58,800 –> 00:05:01,120
یک کلاینت جدید از این آدرس این
106
00:05:01,120 –> 00:05:02,240
آدرس اساساً
107
00:05:02,240 –> 00:05:06,240
چند ip است و پورت وصل شده است
108
00:05:06,240 –> 00:05:08,080
خوب حالا یک اتفاقی می افتد اینجا
109
00:05:08,080 –> 00:05:10,000
ما داده ها را از مشتری دریافت می کنیم
110
00:05:10,000 –> 00:05:12,320
حالا بیایید با فایل مشتری شروع
111
00:05:12,320 –> 00:05:13,600
کنیم بیایید چیزی را از اینجا کپی کنیم بسیار
112
00:05:13,600 –> 00:05:17,520
خوب بیایید آن را کاملاً کپی کنیم
113
00:05:17,520 –> 00:05:18,880
و می خواهیم حذف
114
00:05:18,880 –> 00:05:24,000
کنیم لازم نیست
115
00:05:24,000 –> 00:05:27,600
این ضروری نیست، ما این را کپی نکرده ایم،
116
00:05:27,600 –> 00:05:29,360
117
00:05:29,360 –> 00:05:32,560
118
00:05:32,560 –> 00:05:34,400
بنابراین شما نیز می توانید آن را کپی کنید، لازم نیست
119
00:05:34,400 –> 00:05:36,960
دوباره و دوباره آن را بنویسید،
120
00:05:36,960 –> 00:05:41,039
بنابراین در کلاینت، مشتری
121
00:05:41,039 –> 00:05:44,560
مانند سرور متصل نمی شود و مستقیماً
122
00:05:44,560 –> 00:05:48,560
به جیب مشتری خود وصل می
123
00:05:48,560 –> 00:05:52,800
شود و دوباره همان خانواده ipv4
124
00:05:52,800 –> 00:05:55,520
و همان پروتکلی که کلاینت از کلاینت
125
00:05:55,520 –> 00:05:57,840
استفاده
126
00:05:59,759 –> 00:06:06,240
می کند. وصل شوید،
127
00:06:06,240 –> 00:06:08,880
بنابراین دوباره یک
128
00:06:08,880 –> 00:06:09,600
بند از ib
129
00:06:09,600 –> 00:06:12,639
و شماره پورت را می گیرد، حالا به سرور وصل می
130
00:06:12,639 –> 00:06:13,039
131
00:06:13,039 –> 00:06:17,120
شود، در اینجا، کلاینت می خواهد
132
00:06:17,120 –> 00:06:20,479
یک فایل را بخواند، بنابراین ابتدا
133
00:06:20,479 –> 00:06:22,080
134
00:06:22,080 –> 00:06:25,840
یک پوشه ایجاد می کنیم، مثلاً داده ها و درون داده ها
135
00:06:25,840 –> 00:06:26,800
وجود دارد. برخی از فایل ها
136
00:06:26,800 –> 00:06:30,960
مانند yt dot txt
137
00:06:31,039 –> 00:06:34,639
بیایید اینجا چیزی بنویسیم سلام
138
00:06:34,639 –> 00:06:38,240
این یک توسعه دهنده احمق است
139
00:06:39,440 –> 00:06:42,639
و شما می توانید ما را دنبال کنید
140
00:06:46,880 –> 00:06:49,440
خوب بنابراین این اطلاعاتی است
141
00:06:49,440 –> 00:06:51,199
که در داخل فایل است و ما می خواهیم
142
00:06:51,199 –> 00:06:53,120
کل این فایل را منتقل کنیم یا می توانید
143
00:06:53,120 –> 00:06:54,319
مستقیماً نام فایل را ببینید.
144
00:06:54,319 –> 00:06:55,680
همه چیز را
145
00:06:55,680 –> 00:06:59,039
به سمت سرور اطلاع دهید و آن را در سمت سرور ذخیره کنید
146
00:06:59,039 –> 00:07:02,160
خوب است، بنابراین اول از همه شما
147
00:07:02,160 –> 00:07:03,919
می خواهید فایل
148
00:07:03,919 –> 00:07:08,880
149
00:07:08,880 –> 00:07:13,520
150
00:07:13,520 –> 00:07:17,680
فایل را بخوانید.
151
00:07:17,680 –> 00:07:22,319
152
00:07:22,319 –> 00:07:24,880
اول از همه قرار
153
00:07:24,880 –> 00:07:26,479
است نام
154
00:07:26,479 –> 00:07:29,039
فایل را به سرور ارسال کنیم تا
155
00:07:29,039 –> 00:07:31,520
بتواند داده ها را با همین نام ذخیره
156
00:07:31,520 –> 00:07:32,960
کند و فایلی با همین نام ایجاد کند و
157
00:07:32,960 –> 00:07:34,960
داده ها را در داخل آن ذخیره کند.
158
00:07:34,960 –> 00:07:38,960
159
00:07:39,479 –> 00:07:42,840
160
00:07:42,840 –> 00:07:46,000
فرمت
161
00:07:46,000 –> 00:07:50,800
متغیر دیگری را مشخص می کنیم فرمت e
162
00:07:51,680 –> 00:07:55,599
برابر با utf-8 است،
163
00:07:56,840 –> 00:07:59,840
خوب
164
00:08:00,240 –> 00:08:03,759
اجازه دهید آن را بفرستیم و همچنین این فرمت را باز کنیم،
165
00:08:03,759 –> 00:08:05,039
166
00:08:05,039 –> 00:08:09,199
بنابراین اکنون سرور باید
167
00:08:09,199 –> 00:08:12,400
نام فایل را دریافت کند، نام فایل
168
00:08:12,400 –> 00:08:14,800
مانند اتصال است، بنابراین من میخواهم از آن
169
00:08:14,800 –> 00:08:15,599
170
00:08:15,599 –> 00:08:18,479
استفاده کنم. اتصال کلاینت
171
00:08:18,479 –> 00:08:19,280
172
00:08:19,280 –> 00:08:21,599
با استفاده از این مدار سرور نیست، اما
173
00:08:21,599 –> 00:08:22,479
این کلاس c
174
00:08:22,479 –> 00:08:24,720
o n n بسیار متغیر خواهد بود، لطفاً
175
00:08:24,720 –> 00:08:26,000
حتی داده ها را به یک کلاینت خاص ارسال کنید،
176
00:08:26,000 –> 00:08:30,720
بنابراین اندازه دریافت نقطه cnn،
177
00:08:30,720 –> 00:08:34,640
بیایید اندازه آن را نیز تعریف کنیم
178
00:08:34,640 –> 00:08:36,799
تا چند بایت باید
179
00:08:36,799 –> 00:08:37,679
دریافت
180
00:08:37,679 –> 00:08:40,559
کنیم، می خواهیم یک صفر دریافت کنیم. دو چهار و یک
181
00:08:40,559 –> 00:08:41,599
هزار و بیست
182
00:08:41,599 –> 00:08:44,080
و بیست و چهار بایت خوب است، بنابراین تا کنون
183
00:08:44,080 –> 00:08:47,279
مشخص شده است، ما آن را
184
00:08:47,279 –> 00:08:52,240
با استفاده از فرمت خاص رمزگشایی می کنیم، خوب
185
00:08:52,480 –> 00:08:56,080
حالا بیایید نام فایل را چاپ کنیم
186
00:08:56,080 –> 00:09:01,839
و ببینیم که آیا با موفقیت کار می کند یا خیر،
187
00:09:04,480 –> 00:09:09,839
حالا اینجا
188
00:09:10,000 –> 00:09:12,480
پیام من نمایش داده می شود سرور
189
00:09:12,480 –> 00:09:14,560
شروع می شود و سرور در حال گوش دادن است،
190
00:09:14,560 –> 00:09:17,920
در ادامه کلاینت را اجرا می کنیم
191
00:09:19,839 –> 00:09:22,880
تا بتوانید ببینید کلاینت جدید
192
00:09:22,880 –> 00:09:25,120
با این ip و پورت متصل شده است، بنابراین
193
00:09:25,120 –> 00:09:27,200
این نوع تاپل
194
00:09:27,200 –> 00:09:29,519
در پورتی است که متصل است و
195
00:09:29,519 –> 00:09:32,800
نام فایل yt.t را برای ما ارسال کنید. xt
196
00:09:32,800 –> 00:09:35,519
بیایید این اتصال را در اینجا ببندیم و
197
00:09:35,519 –> 00:09:37,760
برنامه
198
00:09:37,760 –> 00:09:41,120
را بنویسیم تا نام فایل را دریافت کرده ایم،
199
00:09: