Cộng đồng AutoIT Việt - Autoitviet.forumvi.com
Chào mừng bạn đến với cộng đồng AutoIT Việt, hãy đăng ký một nick để cùng tham gia thảo luận nhé ^^!

Join the forum, it's quick and easy

Cộng đồng AutoIT Việt - Autoitviet.forumvi.com
Chào mừng bạn đến với cộng đồng AutoIT Việt, hãy đăng ký một nick để cùng tham gia thảo luận nhé ^^!
Cộng đồng AutoIT Việt - Autoitviet.forumvi.com
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
Latest topics
» [Code] Kiểm tra kết nối mạng
by jameseshell Fri Jul 31, 2015 3:29 pm

» AutoClick không chiếm chuột
by jameseshell Fri Jul 31, 2015 9:58 am

» [Sorf] Connect/Disconet Button
by thanhhan31 Fri Jun 26, 2015 3:56 am

» Giới thiệu ngôn ngữ lập trình Autoit
by vanhoa1402 Mon Jun 08, 2015 12:40 am

» [Code] Đếm ngược thời gian
by satoh290801 Sat Jun 06, 2015 10:11 am

» Debug game online
by cheater Mon Jun 01, 2015 3:15 pm

» [Thắc Mắc] cách nhập xuất dữ liệu
by cadilacst Mon Apr 27, 2015 7:14 am

» [Code] Auto Win 2c6f td1 - sv HN
by Hades Wed Jan 14, 2015 5:41 am

» [Hỏi] AutoIt với CSDL online?
by todzin Wed Nov 19, 2014 11:14 pm

» [Hỏi] Một số vấn đề về Copy & Paste file bằng ứng dụng thứ 3 (Everything.exe)
by aloatiso Tue Nov 11, 2014 10:31 pm

» Click theo điểm ảnh !
by nhatdaica055 Wed Oct 15, 2014 5:17 pm

» Nội quy diễn đàn
by lethusinh01 Fri Sep 12, 2014 3:59 am

» Hide Windows !!!
by Sweetsica Fri Aug 08, 2014 2:31 am

» Cài đặt , sử dụng và biên dịch Autoit
by mankichi Thu Jul 24, 2014 5:11 am

» Tuyển mod cho diễn đàn
by huynhlamid Fri Jan 17, 2014 3:36 pm

» PixelSearch - Quét (hay kiểm tra) điểm ảnh
by vanthang Fri Jan 17, 2014 5:49 am

» Thiệp Cực Đẹp Tặng Người Yêu !!!
by Nokia3G Mon Dec 23, 2013 12:50 pm

» Lấy đường dẫn của phần mềm chạy ngầm
by cuongkoken Sat Dec 21, 2013 1:25 am

» Xin Admin giup do
by xlove_bmt Wed Dec 18, 2013 6:40 am

» [Hỏi] Cần pro chỉ làm trainer game!
by quytucaca Wed May 29, 2013 7:43 am


[TUT]Lập trình sockets (thiết kế ứng dụng online)

Go down

[TUT]Lập trình sockets (thiết kế ứng dụng online) Empty [TUT]Lập trình sockets (thiết kế ứng dụng online)

Bài gửi by Admin Wed Aug 17, 2011 9:56 am

Phần 1 Các khái niệm
I - Lời muốn nói
Lâu quá rồi chưa góp bài cho forum ^^! hôm nay vào thý forum phát triển về auto nhiều quá nên muốn góp cái new cho hấp dẫn. tớ biết cũng không rành nữa [TUT]Lập trình sockets (thiết kế ứng dụng online) 007 nên có gì sai thì trả lời lại ở dưới để tớ fix kiến thức + fix bài cho những người chưa biết ko học sai nha!!.

II - Đọc xong bài này tôi có thể làm được gì ?
đọc xong bài này bạn có thể tự làm cho mình 2 ứng dụng có thể kết nối với nhau qua mạng LAN hay Mạng Internet

III - Những điều kiện để có thể hiểu
Biết các cấu trúc if while ...., các toán tử (operator) và một số thứ khác!!

IV - Các khái niểm "Phải biết"
+ Port là gì ?
- có lẽ nhiều bạn đã nghe từ port, (theo tớ ) port là một cổng giao để hai chương trình truyền / nhận dữ liệu qua cổng đó.
- mõi port chỉ được 1 ứng dụng mở 1 lần tại 1 máy
- port là 1 số nguyên(không âm) 16bit (2bytes)
- Port được các ứng dụng dạng server sữ dụng
nếu chưa hiểu bạn có thể tham khảo tại đây :
http://www.vietnamidc.com/forum/showthread.php?t=547,Port-la-gi

+ IP là gì?
- (theo tớ)IP là một địa chỉ của máy (khi kết nối mạng với nhau). mõi máy sẽ được đánh dấu bằng một ip khác nhau, nếu coi nhà là máy tính , thì ip chính là địa chỉ của nhà (gờm đường thành phố,số nhà ....)
- IP có 2 loại :
1) IP LAN là địa chỉ đánh dấu mõi máy trong mạng LAN ( mạng cục bộ )
2) IP WAN là IP được cấp khi máy bạn kết nối internet bạn có thể coi IP WAN của mình tại trang
http://www.cmyip.com
- IP có kích thước 4byte có dạng XXX.XXX.XXX.XXX và 255 >= XXX <= 0
nếu chưa hiểu bạn có thể xem thêm tại trang
http://www.tinhte.vn/windows-thao-luan- ... csWtltfLfk

Socket là gì?
- (theo tớ) socket = IP và PORT thường được ghi là IP : PORT
ví dụ 192.168.1.2:80

Như vậy khi 2 ứng dụng muốn muốn truyền dữ liệu cho nhau phải xác định Sockets của ứng dụng kia


Phần 2 - Ứng dụng vào AutoIT

I - Lời muốn nói
lời đấu tiên muốn nói là Xjn lỗi các cậu vì trong thời gian dài tớ đã biệt tích không để lại lý do ^^!, thứ 2 là tớ cũng nghĩ cách để giải thích cho các cậu hiểu từng lệnh rồi nhưng do trìh độ còn kém nên chẳng còn cách nào tớ đành phải làm cái ví dụ và giải thix ra thoai ^^!
II - Những điều kiện để có thể hiểu
Đã đọc phần 1 một và thỏa hết điều kiện phần 1

III - giải thix
- Thiết kế ứng dụng online thì cũng chẳng khác thiết kế ứng dụng mạng LAN chổ nào hết nên tớ sẽ chỉ các cậu làm mạng LAN trước dễ test ^^!
- để thiết kế ứng dụng kết nối với nhau qua mạng LAN ta dùng TCP hay UDP trong bài này tớ sẽ hướng dẫn các cậu về TCP còn UDP các cậu tự nghiên cưu thêm nha!! ^^!


IV - Ví dụ
TCP nó sẽ hoạt động như thế này, bạn cứ coi như 2 người muốn nói chuyện với nhau.
- Người A (Sever) sẽ cho người B(Client) biết địa chỉ của mình (IP:PORT) và người A không biết địa chỉ của người A
- Như vậy người A sẽ là người chủ động đến nhà người B(TCPConnect)
- Khi người A đến nhà người B rồi thì có 2 trường hợp xẩy ra
++Trường hợp 1: Người B muốn nói với người A thì cứ việc(TCPSend) với điều kiện người A phải bật chế độ lắng nghe người B nói (TCPRecv)
++Trường hợp 2: Người A muốn nói với người B thì cũng (TCPSend) với điều kiện người B phải bật chế độ lắng nghe lun là (TCPRecv)
++=>nếu người A nói mà người B không bật TCPRecv hay ngược lại thì giống như 1 người nói người kia không thèm nghe ^^!
--Chỉ đơn giản thế thoai hết roài các cậu xem ví dụ bên dưới sẽ hiểu gõ hơn ^^! còn lệnh thì coai file help thêm nếu không hiểu thì gửi trả lời phía dưới ^^!
SEVER


TCPStartup ()
;Đăng kí nhà
;Đăng kí TCP

$TCPListen = TCPListen("",1234)
; Mở cửa với mật khẩu là 1234
; Mở kết nối với port 1234


Do ; [Móc 1]
$TCPAccept = TCPAccept($TCPListen)
; Kiểm tra xem có ai đến nhà mình không với mật khẩu 1234 và địa chỉ là "" không nếu có trả lại tên người đó nếu ko trả -1
; Kiểm tra xem có ai kết nới với mình bằng port 1234 và IP là "" không nếu có trả lại 1 cổng gọi là mainsocket nếu ko trả -1
Until $TCPAccept <> -1 ; nếu không ai đến (không ai connect) thì tiếp tục đợi và kiểm tra quay lại [Móc 1](dòng 10) ngược lại thì tiếp

Sleep(1000) ; sleep lai cho dễ nhìn

MsgBox(0,"Server","có người lại nhà born ròaj kaka ^^!"&@CRLF&"Sockets của anh ấy là:"&$TCPAccept&@CRLF&"đợi xem anh ấy muốn nói gì đây")

;Khi chạy được tới đây nghĩa là có người đã đến nhà mình và connect

Do ; [Móc 2]
$TCPReceiver = TCPRecv($TCPAccept,10000)
;Đọc xem người đó nói gì với mình nếu có nối thì sẽ trả lại lời nói ngắt tối đa 10000(nếu lớn hơn chưa lại khúc đó lần sau đọc tiếp còn không có thì trả lại rổng ""
;Đọc xem người kết nối gửi mình 1 tin nào không nếu có đọc 10000 kí tự đầu tiên còn không trả lại ""
Until $TCPReceiver <> "" ; nếu người đó chưa nói gì thì quay lại [Móc 2] còn nói rồi thì tiếp

Msgbox(0,"Server","Anh nói với cậu born là :"&@CRLF&$TCPReceiver) ;Đưa lời nói đó ra màng hình



CLIENT



TCPStartup()

$TCPConnect = TCPConnect("127.0.0.1",1234)

; đầu tiên lại nhà nhà và đưa mật khẩu [127.0.0.1:1234]
; Connect tới IP:127.0.0.1 và Port 1234 <=> lệnh TCPConnect sẽ biến 127.0.0.1:1234 thành sockets
; Nếu kết nối thật bại sockets được TCPConnect biến thành -1
MsgBox(0,"Client","TCPConnect biến 127.0.0.1:1234 thành "&@CRLF&$TCPConnect&" giờ coai như đã kết nối")

If $TCPConnect = -1 Then ;Nếu kết nối thất bại
msgbox(0,"Client","Ket noi that bai vui long thu lai...")
Endif

Sleep(2000) ; sleep lai cho dễ nhìn

$message = InputBox("Client","Anh ơi muốn nói gì với anh born thế?","born oj to' vao Click nut' [Cam on Nhieu] lien nek")
TCPSend($TCPConnect,$message)
;Gửi thư cho đến nhà anh born để anh born đọc




Tác giả: borntolead
Admin
Admin
Admin

Tổng số bài gửi : 63
Join date : 16/08/2011

https://autoitviet.forumvi.com

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết