PDA

View Full Version : tìm bạn lập trình, ai khoái không, vô đây làm cùng tui



blacksorcerer
23-11-2002, 08:22
có ai khoái lập trình vbip không

KEM_WALL
23-11-2002, 18:16
vbip là cái gì ?

White_Rose
24-11-2002, 00:17
Visual Basic Internet Programming

White_Rose
24-11-2002, 00:21
hi, BS đinh viết chương trình gì vậy? Nếu hay mình xin tham gia với, hic.

KEM_WALL
24-11-2002, 14:27
client-server đó hả ?
uhm, cũng hay đó ;), walls cũng muốn tham gia, nhưng có cái kinh nghiệm viết kô nhiều, xin chỉ giáo nha ;)

Allbegins
25-11-2002, 02:40
Tham gia tới cùng!

blacksorcerer
25-11-2002, 10:25
hớ hớ, nhiều người tham gia quá, các bạn cho ý tưởng đi, mình đang định viết 1 cái p2p.
Mình mới viết 1 cái Parents' Eyes v1.0, kiểm tra số tiền truy nhập, ngăn cấm vào các trang web xấu --> rất thích hợp cho bố mẹ kiểm tra tình hình truy cập web của con cái.
Mình đã gửi đi dự thi TTVN --> chỉ hi vọng ở điểm ý tưởng, tại vì về kỹ thuật chả biết làm cái gì cho nó đặc sắc.
Ngoài ra, nếu các bạn thấy hay, chúng ta cùng nhau viết 1 chương trình ftp,
Nói chung là ý tưởng, còn việc thực hiện chúng ta cùng bàn luận thôi
Còn những gì mình biết về vbip, mình sẽ cố gắng nói hết để chúng ta cùng hiểu biết thêm
thế nhé

blacksorcerer
25-11-2002, 10:57
trước hết chúng ta phải có cái nhìn cơ bản về vbip đã nhé
VBIP đúng như cái tên của nó là Visual Basic Internet Programming
là một chương trình tương tác qua Internet được lập trình trong VB
Nói chung, có khá nhiều cách để lập trình tương tác qua Internet, nhưng chúng ta cùng thống nhất là sẽ sử dụng thư viện MSWinSock nhé.
thế thôi, chả biết nói gì thêm nữa, hì hì

blacksorcerer
25-11-2002, 10:59
quên, còn 2 công cụ nữa cực kỳ hữ dụng đó là: wininet.dll và sử dụng các hàm API liên quan đến Internet

blacksorcerer
25-11-2002, 11:13
trời ạ, viết cả 1 bài dài ngoằng về http thê mà server lại lỗi, mất hết cả rồi

blacksorcerer
25-11-2002, 11:36
thôi viết bài khác vậy
Sau đây mình sẽ nói qua cho các bạn về MSWinsock, có thể có bạn biết rồi, nhưng không sao mình cứ nói để các bạn chưa biết đọc nhé.

Thư viện MSWinsock được kèm theo VB, và đây có thể nói là một thư viện "đỉnh nhất" trong việc đưa các phương thức truyền tin thông qua Net vào ứng dụng của bạn .. hè hè
Tuy nhiên để có thể lập trình MSWinsock, bạn phải có các khái niệm cơ bạn về các phưong thức truyền tin và dữ liệu qua mạng như HTTP(www), FTP, NNTP(news), SMTP và POP3(Mail) ( cái này mình sẽ có dịp nói sau nhé)
Tiếp tục, bây giờ chúng ta sẽ xem xét một mẫu giao tiếp giữa 2 máy tính : 1 máy là server và 1 máy là client

Tất cả các chương trình cần thiết đã được cài ở máy client. Các chương trình này sẽ làm cho máy client có khả năng gửi và nhận email, duyệt web, gửi ftp v.v...Các chương trình sẽ chung sống hoà thuận trên máy client. hì hì

Còn 1 loại chương trình khác, được cài ở máy server. Chương trình này sẽ cung cấp các dịch vụ mà máy client yêu cầu. Máy server có thể phục vụ nhiều máy client cùng 1 lúc. Có thể nói, máy server sẽ chạy vào ứng dụng server( FTP server, www server, và mail server) cùng 1 lúc.

"công nghệ" sockets cho phép chạy liền một lúc nhiều ứng dụng net. Các thành phần socket cho MS windows được gọi là Windows Socket hay Winsock. Socket là một chương triình hỗ trợ việc gửi và nhận dữ liệu thông qua việc định nghĩa các cổng TCP/IP cho các ứng dụng mạng xác định. Các ứng dụng có thể đưa ra bao nhiêu socket cũng được (đủ để thực hiện một cách trôi chảy ứng dụng đó). Nhưng 1 socket sẽ chỉ thực hiện với 1 cổng TCP/IP
Các ứng dụng phía máy client tạo socket và gán nó 1 số ngẫu nhiên của cổng TCP/IP mà nó sẽ làm việc. Nhưng việc này sẽ không xảy ra phía máy server. Các ứng dụng server sẽ làm việc với các cổng TCP/IP đã được định nghĩa từ trước. Ví dụ, cổng TCP/IP dùng cho FTP server là 21, cổng cho web server là 80. Đã có một "hiệp định toàn cầu <-- hé hé, nghe kinh wá" trong việc định nghĩa này.
smtp --> port 25 Simple Mail Transfer Protocol
pop3 --> port 110 Post Office Protocol
nntp --> 119
ftp --> 21
http --> 80

Máy client bắt đầu một phiên làm việc với server thông qua các phương thức mạng "network protocols". Các máy client tạo ra các socket vào connect chúng với máy server. Các socket lấy địa chỉ của máy server và số của cổng mà nó connect tới.
ví dụ đối với winsock
bạn kết nối với FTP server bằng cách sau
winsock1.connect "ftp.microsoft.com", 21
ftp.microsoft.com : địa chỉ của FTP server
21 : cổng dành cho ftp server
sau khi lệnh trên được thực hiện, bạn đã tạo một kết nối đến ftp server trên server của microsoft thông qua cổng 21

sơ sơ vậy đã
fù, mệt quá, mình đi học đây
hôm nay chúng ta đã cùng nhau có khái niệm về winsock
hôm khác mình sẽ đưa ra ví dụ về việc nhận dữ liệu từ server

Nicky
25-11-2002, 14:21
Thx !!! Cảm ơn, hay lắm !

blacksorcerer
25-11-2002, 16:26
fù, mình vừa đi học về, mệt wá, nhưng đang muốn tiếp tục bài viết nên không sao
Chúng ta tiếp tục nhé, mình viết đến đâu rồi nhỉ
À
các lệnh tiếp theo sau khi bạn đã thiết lập kết nối đến 1 server tuỳ thuộc vào phương thức mạng bạn sẽ sử dụng:
- Server sẽ nhận các lênh của bạn (HTTP)
- server sẽ truyền các dữ liệu cần thiết đến máy của bạn và ngắt kết nối (nó sẽ sử dụng các phương thức phù hợp với các phương thức mà các bạn đã chọn)
- Server gửi cho máy client mã mở đầu "welcome message" và các mã trả lời (FTP, SMTP, POP3, NNTP). Và nó lại sẵn sàng đợi lệnh của bạn.
- Server gửi cho máy client các thông điệp về việc không thể giữ kết nối cũng như các mã trả lời (FTP, SMTP, POP3, NNTP)
Có thể các bạn đọc phần tui viết ở trên sẽ không hiểu gì (hì hì, vì tui hiểu nhưng tui không diễn đạt được) nhưng nhìn chung là server sẽ gửi lại cho bạn các mã tương ứng với các lệnh bạn gửi đến nó: có thể là dữ liệu bạn cần, mà cũng có thể là mã từ chối... <-- hiểu vậy cho dễ.
Nào tiếp tục nhá.
Sau khi server gửi lại cho bạn các thông điệp trả lời, chúng ta cần phải thu nhận và xử lý các thông điệp đó. Trong trường hợp winsock thực hiện sự kiện DataArrival. Một số mã có quan hệ với dữ liệu nhận được chúng ta có thể đặt nó vào phần thân của sự kiện (<-- hic hic, lại khó hiểu, các bạn thông cảm nha, tại tui văn kém lắm)
Dim strData as String
Winsock1.getdata strData

Chuỗi cuối cùng trong đoạn mã trên sẽ nhận dữ liệu từ 1 buffer và lưu chúng vào trong biến strData. Bây giờ bạn có thể xử lý dữ liệu này tuỳ theo ý mình

Ok. thế là sơ sơ rồi. sau khi kết nối được thiết lập, bạn đã nhận được thông điệp đầu tiên từ server (tức là mã welcome đấy). bạn đã sẵn sàng tương tác với server bằng các lệnh.
ôi tôi đói wá rồi
đi ăn đây
mai lại nói tiếp nhá

blacksorcerer
25-11-2002, 17:35
hè hè, ăn xong rồi
lại tiếp tục nhá
Thế là chúng ta đã kết nối và biết cách nhận dữ liệu từ server
sau đây chúng ta phải thực hiện việc liên lạc với server
Ví dụ dưới đây cho bạn thấy cách bắt đầu liên lạc với Microsoft FTP server

client: Tries to make connection with ftp.microsoft.com (port 21)
server: Accepts connection and sends first response to client
server: 220 ftp Microsoft FTP service (Version 3.0)
client: USER anonymous
server: 331 anonymous access allowed, send identity (e-mail name) as password
client: PASS blacksorcerer@cardvn.net
server: 220 Anonymous user logged in
client: CWD developr
server: 250 CWD command successful

hè hè, có thể các bạn không hiểu những gì tui nói ở trên, nhưng nói chung là bạn đã biết được các bước để liên lạc với server từ phia client.

Ok, để gửi dữ liệu tới server, bạn nên sử dụng phương thức SendData. Ví dụ: lệnh đầu tiên ở trên đấy
Winsock1.SendData "USER anonymous" & vbCrLf

tất cả các lệnh cần thiết, các cách viết lệnh, bạn có thể tìm thấy tại các rfc( request of commants)
các bạn có thể tìm thấy các rfc theo các phương thức tại đây
protocol rfc liên kết
smtp 821 http://www.faqs.org/rfcs/rfc821.html
pop3 1725 http://www.faqs.org/rfcs/rfc1725.html
nntp 977 http://www.faqs.org/rfcs/rfc977.html
ftp 959 http://www.faqs.org/rfcs/rfc959.html
http 2068 http://www.faqs.org/rfcs/rfc2068.html

các phương thức mạng (network protocol) có các cách viết lệnh riêng. Tuy nhiên có một só luật cơ bản bạn nên tuân thủ trong khi làm ứng dụng

- Lệnh phải rõ ràng
- Một số lệnh cần có đối số, bạn nên viết các đối số này ngay sau lệnh ( nhớ có dấu cách nhá)
- chuỗi lệnh phải kết thúc bàng vbCrLf <--- hết sức quan trọng.
- mã trả lời từ phía server có thể là chuỗi hoặc là số. Các chuỗi thêm vào tuỳ thuộc vào phần mềm cài phía server, nhưng mã số là hằng số. Bạn nên xử lý các mã này một cách chính xác. Mã trả lời là số có 3 chức số và sau đó sẽ là một chuỗi. Bạn có thể sử dụng hàm "Left" để lấy mã (bằng số) hè hè
ví dụ:
strResponseCode = Left$(strServerResponse,3)

Ok, còn gì nữa nhẩy
à, ngắt kết nối.
bạn có thể ngắt kết nối với server bằng một lệnh đặc biệt (thường là lệnh QUIT, bạn nào thường sử dụng các trình FTP chắc cũng biết). Sau khi nhận được lệnh QUIT, server sẽ gửi mã trả lời cuối cùng và sau đó đóng kết nối. Winsock cung cấp cho bạn sự kiện Close để thực hiện việc này. Nhưng nó không chung cho tất cả các network protocol. Ví dụ HTTP server sẽ đóng kết nối ngay lập tức sau khi nó nhận được yêu cầu từ phía client.

À Cuối cùng nha, đó là về lỗi. Có 2 loại lỗi bạn có thể gặp trong khi làm việc với Winsock Control. Đầu tiên đó là lỗi phương thức. Nó sẽ xảy ra khi bạn đánh không đúng lẹnh. Bạn có thể tìm ra lỗi này bằng mã trả lời từ phía server (bạn có thể tham khảo đĩa MSDN đẻ biết thêm về các loại lỗi nhá). Loại thức 2 đó là lỗi Socket. Winsock Control sẽ sử dụng sự kiện Error ngay sau khi có loại lỗi này xảy ra.
ok
thế là sơ sơ về winsock.
có gì thắc mắc về winsock hay có gì muốn trao đổi
bạn có thể email cho tui blacksorcerer@cadrvn.net
thế nha
đi học
sắp thi học kỳ rùi

blacksorcerer
25-11-2002, 17:49
ok
các bạn thấy thế nào, cũng không quá khó đúng không.
chỉ cần ngồi đọc vài phút là các bạn đã có thể có cái nhìn sơ lược về Winsock cũng như VBIP.
Bây giờ không biết các bạn muốn black tiếp tục đưa ra các ví dụ về Winsock để các bạn dễ hiểu hơn, hay là chúng ta lại nói về một công cụ lập trình vbip khác vô cùng mạnh mẽ (black thích dùng cái này hơn, bởi vì nó..... dễ dùng lắm hơ hơ). Các bạn có biết nó là gì không: WININET <--- thư viện wininet.dll
các bạn có thể tham khảo thêm trong MSDN để biết sơ qua về Wininet nha.
à quên, chúng ta nên tiếp tục với winsock hay là chuyển sang wininet nhỉ, các bạn cho ý kiến nha.

À quên, còn bạn nào đã biết tất cả các công cụ trên rồi, chúng ta cùng nhau xây dựng 1 cai p2p đi.
Ý tưởng của tui là làm 1 program đánh tiến lên qua mạng <-- sáng tạo wá. các bác cho ý kiến nha.

White_Rose
25-11-2002, 21:20
Tội BS quá. Các bạn chưa tìm hiểu về Winsock có thể vào đây đọc qua.
http://www.aspvn.net/vbasp/?id=235
Lâu rồi mình cũng chưa cập nhập thêm thông tin (chủ yếu là các hướng dẫn sử dụng Winsock để làm các công việc cụ thể). Nếu bạn múôn xem nhiều hơn (hic, cứ đọc hết ở đó cũng khá dài rồi) thì vào địa chỉ:
http://www.winsockvb.com

To BS: Thực ra mình chưa lập trình với thư viện wininet.dll (dùng đúng 1 lần như chỉ là theo ví dụ có sẵn) nhưng có một nhận xét (chẳng biết đúng không) là Winsock control hoạt động chậm và nếu mình gửi dữ liệu đi nhiều trong một khoảng thời gian nhỏ thì nó thường không đến nơi (hay không gửi cũng chẳng biết nữa) mà chẳng thấy báo lỗi gì cả, hic. Mặc dù mình đã cái SP5 cho VB (cái Winsock là SP4 hay SP5 gì đó).
Có lẽ cũng tại mình chưa quen với nó lắm.
Nhưng dù sao thì giữa việc tạo các lời gọi API đến wininet.dll và sử dụng các event và method của Winsock control thì dùng Winsock control cũng dễ dàng hơn rất nhiều, nhất là mới làm quen. Nói đi nói lại thì cái Winsock control cũng sử dụng chính các lời gọi API đến wininet.dll (hoặc tự viết các mã y hệt) mà thôi. chẳng qua nó bao hết lại cho mình.
Về ý tưởng của bạn, nó không khả thi. Mình nói thế không phải vì phá đám. Đầu tiên là việc chơi multi. Vấn đề này có thể giải quyết được bằng một mảng điều khiển trên máy được chọn làm server. Hồi thử viết Yahoo Client mình đã làm được (chat với 2 người thông qua một cổng) (tiếc là đang viết đành bỏ dở vì nó chỉ tương thích với bản 5.0 của Yahoo! Chat). Nhưng vấn đề quan trọng hơn là làm thế nào để kết nối? Chẳng hạn máy bạn được chọn làm máy chủ, lúc bạn online (với IP động) thì khi mình múôn chơi, làm thế nào mình biết IP của bạn là gì mà connect? Dùng UDP thì có lẽ hơi khó (mình chưa thử dùng bao giờ và cũng nghe rất nhiều về lỗi đường truyền không được tự detect của nó).
Bạn giải quyết nó thế nào? Mình có nghĩ ra nhưng mà thấy làm như thế cũng chỉ như là giải quyết tạm thời, và thực sự nó không realtime.
À, bạn nói về wininet.dll đi nha. Những ví dụ đơn giản về Winsock mọi người có thể đọc ở trên rồi (cả anh và Việt). Mình chưa biết gì về sử dụng wininet.dll cả :( Thanks.

blacksorcerer
26-11-2002, 08:35
hì hì, giơ 2 tay 3 chân đồng ý với white_rose,
bởi vì tui cũng không khoái winsock lắm (<-- mặc dù nó khá dễ dùng bởi vì nó là activex control)
tui mới chỉ dùng winsock để viết 1 cái gửi bom mail mà thôi (<-- dễ lắm các bạn ơi, chỉ cần dùng mấy cái lệnh tôi cho các bạn làm ví dụ với độc cái rfc về smtp là okie)
Còn về wininet hả, okie đúng sở trường rồi, nhưng tui phải đi học bây giờ, tí nữa đi học dzề sẽ viết 1 bài ngon lành nha
- còn vấn đề cái tiến lên qua mạng : white_rose à, ta làm 1 hàm xác định ip rồi người chơi tự gửi đi thông qua yahoo messenger thôi, bởi vì chúng ta chỉ có thể làm cho những người đã quen biết nhau chơi, còn nếu đề phục vụ số đông, chúng ta không thể làm theo kiểu p2p được(bởi máy client nào chịu nổi) mà chúng ta lại phải làm thêm 1 trình ởi server để xử lý <-- rồi như chat room của yahoo thôi
- cái ý tưởng này là của thằng bạn tui ở bên MỸ, nó online suốt ngày nên tui định viết để máy thằng lớp tui chơi với nhau thôi, nhưng tui thấy nó vui vi nên muốn nói ra thôi hì hì
- bây giờ tui đang thi học kỳ nên chắc cũng không làm được gì, nhưng hôm qua nằm mơ màng thế nào nghĩa ra cái ý tưởng hay phết, đó là làm 1 chương trình cho internet cafe. nhưng tui chưa bao giờ lập trình trên mạng LAn, mà cũng không đủ phương tiện để thử nghiệm, nên hic hic
- nói chung bây giờ chúng ta bàn luận ý tưởng đã, có ý tưởng nào hay, ra tết cùng làm nha
- mà white_rose ở Hn hay sg dzậy, học đại học hay phổ thông. có gì chúng ta liên kết làm 1 cái ra trò nha

blacksorcerer
26-11-2002, 08:39
cái aspvn.com wr tự viết đấy à, dữ ha, kiến thức ghê nha, kiểu này phải xin làm đệ tử của wr rùi

KEM_WALL
26-11-2002, 10:49
giống vinagame đó hả, walls vẫn đọc chưa hết toàn bộ nhưng cũng goị là sơ sơ ;)

White_Rose
26-11-2002, 16:06
Hơ nhanh lên nha, đợi đọc phần đó lắm đấy.
Mà cái vbasp đó kiến thức cũng là thu thập trên net thôi. đâu dám làm sư phụ ai, hic.
Tạm thời để vụ IP đó lại. Sau này sẽ bàn đến :D nếu sử dụng YM thì có thể dùng một script viết = ASP, cho chương trình cập nhập IP trong khoảng thời gian là 30s có lẽ cũng ổn. Hi`, nếu có làm thì lo vụ chơi trước, okie? Có nhiều thứ lắm đấy (AI - nếu 2 người chơi thì phải có computer mà mình thì dốt algorithm lắm, hic, GUI...). Mình cũng sắp thi :( để tết cũng tiện
hi, thế BS ở đau thế? Mình ở Hà Nội. Nếu cùng tp thì hôm nao đi uống cafe (mình nhưòng BS bao luôn), nếu ở chỗ khác thì giới thiệu cho mình vài cô bạn gái, khi nào vô đó làm quen thì gặp nhau luôn (lu'c ý đương nhiên cafe mình bao rùi:D)

blacksorcerer
26-11-2002, 16:24
hì hì, đi học về rồi,chúng ta bắt đầu với wininet nhớ.

Wininet API có chức năng giúp việc phát triển các ứng dụng Internet nhanh hơn và dễ dàng hơn. Sử dùng Wininet bạn có thể phát triển ứng dụng hoạt động với các phương thức như HTTP,FTP và Gopher (<-- mình không biết gì về cái này, có bác nào biết nói dùm đi). Wininet cũng cho phép các bạn nhận các file từ cache của IE (<-- mình cũng chưa bao giờ làm cái này, chỉ biết là có thôi), và một số function khác giúp bạn điều khiển việc kết nối với ISP hè hè

Điều quan trọng nhất khi sử dụng wininet là bạn không cần học các cú pháp protocol (tức là không cần đọc các rfc) và các hàm window socket api (<-- hay không). Ngoài ra, tất cả các hàm đều có cái tên mà đọc lên là chúng ta đã biết chức năng của nó là gì (Ví dụ hàm InternetGetConnectionState() <-- hơ hơ, đó các bạn chức năng của nó là gì). Do vậy nó rất dễ hiểu, và rất dễ sử dụng.
Một số hàm trông giống các hàm Win32Api, vì vậy nếu bạn nào đã có kinh nghiệm trong việc sử dụng các hàm API (điều tất yếu phải có khi sử dụng VB nhỉ) sẽ không mất nhiều thời gian khi làm quen với Wininet.

okie, còn một số thông tin nữa về wininet các bạn có thể tìm thấy trong đĩa MSDN, fần Internet Client SDK. Tuy nhiên các bạn phải chú ý, trong đĩa MSDN, hầu hết các hàm Wininet được ví dụ trong c/c++ (bởi vì theo mình được biết, ms phát triển wininet để hướng tới các nhà phát triển trong c và c++), nhưng tui đã làm thử và thấy hầu hết các hàm đều hoạt động tốt trong vb (hầu hết vì black chưa thể thử được hết tất cả các hàm, hic nhiều lắm).

e hèm Trước khi học wininet, các bạn cần biết một số thông tin sau
- nếu bạn sử dụng vb6, bạn không thể gọi các hàm không đồng bộ sử dụng các hàm callback của wininet, nhưng trong vb5 lại okie
- wininet.dll hầu hết đều có trên máy của các bạn ( nó đi kèm windown mừ)
- wininet aPI có thể thay đổi, do đó một số hàm có thể thay đổi (mình cũng chả hiểu ms thay đổi nó làm cái gì nữa)
-một số hàm không thể sử dụng theo kiểu bình thường (cái này,mình cũng chả hiểu vì sao).
okie, mấy thông tin trên mình viết theo kinh nghiệm cùng các tài liệu lấy được trên mạng, nhưng nói chung, ngoài sự có thể thay đổi, còn tất cả sử dụng wininet thậy tuyệt vời.
mình cũng không thể đưa ra ví dụ cho tất cả các hàm wininet được, các bạn có thể tham khảo đĩa msdn để biết them
thế nhá

blacksorcerer
26-11-2002, 16:33
há há, black ở hà lội, híc lúc nào cũng thấy lụt lội, bây giờ lại thêm tắc đường, sợ thật.
wr là sv hả, đang học ở đâu đấy, giỏi tin vậy chắc đang học ở bk hử

blacksorcerer
26-11-2002, 18:20
đó, nếu các bạn đọc bài phân tích của tui về wininet, có lẽ các bạn lại sẽ nghiêng sang winsock, và black bây giờ cùng vẫy, cố gắng lập trình bằng winsock bởi vì wininet có một số thành phần hơi chuối... nhưng những phần này không đáng kể đâu, nếu các bạn muốn làm dễ dàng thì nên sử dụng wininet vì bạn không phải xử lý thô sơ những dữ liệu bạn nhận được (vì wininet nó xử lý cho bạn hết rùi).
Còn nếu bạn muốn viết những chương trình nói chung là .."lớn" thì nên dùng winsock, thế thôi

--> à mà còn ai có ý tưởng gì hông, lên tiếng đi chớ nhỉ

blacksorcerer
27-11-2002, 10:34
helu, hôm nay chúng ta lại nói về winsock nhá

về phần lý thuyết, black thấy đọc trong tài liệu của white rose quá đầy đủ rồi (hi chic, mất công ngồi viết cái đống ở trên, nhưng không sao, miễn là giúp được mọi người biết về vbip hihì)
bây giờ black sẽ giúp các bạn làm 1 ví dụ đơn giản luôn

Ví dụ này sẽ lấy ngày giờ trên server, bạn sẽ không vần phải học bất kỳ một protocol nào. okie
Nhưng cần có 1 chú ý duy nhất, đó là để lấy được ngày giờ của server, bạn phải connect vào cổng 13 của server. Sau khi đã connect vào công này rồi, server sẽ gửi trả lại dữ liệu chuỗi chứa ngày tháng và giờ hiện thời của server, okie.

let's start : mở new project -> chọn form1--> add winsock control ->kéo nó vào form
thêm 1 cái txt là txtRemoteHost (<-- địa chỉ host)
1 cái txt là txtDateTime (<-- dữ liệu trả về)
2 command, cmbConnect, và cmbCancel

okie, code nhé:

Private Sub cmdCancel_Click()

Unload Me

End Sub

Private Sub cmdConnect_Click()

txtDateTime = ""
Winsock1.Connect Trim$(txtRemoteHost), 13

End Sub

Private Sub Form_Load()

txtRemoteHost = ""
txtDateTime = ""

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim strData As String

Winsock1.GetData strData, vbString
txtDateTime = txtDateTime & Trim$(strData)

End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, _
Description As String, _
ByVal Scode As Long, _
ByVal Source As String, _
ByVal HelpFile As String, _
ByVal HelpContext As Long, _
CancelDisplay As Boolean)

MsgBox "Winsock Error: " & Number & vbCrLf & _
Description, vbInformation

End Sub

chắc black khỏi phải giải thích các code ở trên nhỉ, đơn giản quá rồi
nhưng có 1 chú ý đây, nếu như bạn nhận được thông báo lỗi ở dòng : winsock1.connect ....
thì hè hè : đó là do winsock đã đóng connect của bạn, và nó có thể đóng khá lâu đó.
do vậy bạn thêm 2 hàm sau trước hàm winsock1.connect nhé:
winsock1.close
winsock1.localport=0

xong rồi
mong rằng các bạn cảm thấy hữu ích với các bài viết của black
bye bye

blacksorcerer
27-11-2002, 10:44
Bài viết được gửi bởi White_Rose
Có nhiều thứ lắm đấy (AI - nếu 2 người chơi thì phải có computer mà mình thì dốt algorithm lắm, hic, GUI...).
black cũng có biết gì về AI đâu, thôi thì có bao nhiêu người vào thì chơi bấy nhiêu người thôi, mình vẫn chơi tiến lên 2 người được cơ mà hì hì:o :D

blacksorcerer
27-11-2002, 18:21
hôm nay ngồi đọc toàn bộ 29 trang winsock trong trang web của wr, hay wá
nhưng ví dụ hơi bị nâng cao quá
mình sẽ đưa ra ở đây những ví dụ đơn giản hơn để các bạn có thể hiểu rõ hơn về winsock,
nhưng các bạn nên vào đọc bài của white_rose, rất hữu ích

White_Rose
29-11-2002, 01:32
Hic dạo này bận quá, mấy hôm nữa mình tiếp tục nha. Việc đầu tiên có lẽ phải thống nhất vìa ảnh (mặt trước và sau), cách trình bày, cách chơi... có luật cụ thể mới viết được.
Ngay cách chơi, mình cũng biết đến 3 cách khác nhau. Nếu không thống nhất thì :D
À sử dụng OO lúc lập trình nhé.

quaitieutu
29-11-2002, 03:55
Vậy Wai Râu chọn cách nào để "làm luật"

blacksorcerer
29-11-2002, 10:54
hè hè, mình cũng đang thi, bận lắm,
nhưng vửa viết xong cái bắn máy bay, hay lắm, hôm nào hoàn thiện up lên, wr bắn nhau với tui nhá
còn về cái tiến lên, phức tạp phết,
sử dụng oo hả, okie, không có gì, nhưng mình nghĩ không cần thiết

White_Rose
29-11-2002, 18:35
oo chỉ để dễ làm thôi, như thế ai làm việc người nấy.
mình biết đến 3 cách chơi sau:
- bỏ hết các quân 3 ban đầu. ai có 3 bích đi trước.
- bỏ hết các quân 3 ban đầu ai nhất đi trước. Lần đầu thì ai có 3 bích đi trước
- ai nhất đi trước. không bỏ bất kì quân 3 nào.
Lại còn "chặt tứ quí", lúc thì bị cống, lúc thì bị ... out luôn. "Thối" 2 nữa :(...
Chọn cách nào đây??? Hay là để option cho chọn giữa các cách??

wuên, mình năm nay năm 3 rồi nhưng không phải học bk đâu. Bi giờ học genetic. mà bs nó vậy thì hoá ra bs là học sinh? Nếu vậy thì giỏi quá ha :)

blacksorcerer
29-11-2002, 21:35
hè hè, tui đang học bách khoa nè, đang học năm thứ 2, khoa điện, có khi gặp nhau rùi cũng nên ấy nhỉ.
chắc wr hay học ở c16 hả