PDA

View Full Version : [DIS] System.Net.Sockets.Socket



buitrungtin
24-04-2003, 21:04
Tui đang develop một chương trình chat trong LAN để bạn bè trong trường có thể chat với nhau hay trao đổi file mà không cấn gửi mail hay dùng floppy disk, phiền phức.


vấn đề vướng mắc:

-khi dùng socket class của .Net framework, tui không chắc là có thể sned and recieve data cùng lúc được hay không (threadsafe?). Hay là công việc synchronize phải do tui tự làm? (tui đã đọc documentation nhưng không thấy rõ câu trả lời, mong được giúp đỡ.)

-trong .Net framework, tui không thấy có semaphore, mà chỉ thấy có monitor thôi. vậy có phải là tui phải dùng monitor để làm công việc của semaphore không? Nếu phải, xin các bạn chỉ giùm. (tui cũng đã manipulate được cái monitor để là công việc của semaphore nhưng không chắc là cách đúng (vì chưa thử) và hữu hiệu nhất).


đa tạ,
Tin,

danceswithwolves
24-04-2003, 23:17
bạn lên trang của M$, download 101 VB.NET samples về (ở box này tôi đã post link lên, nhưng chẳng nhớ ở thread nào nữa, quên mất rồi). Trong đó có một simple sample về chatting đó, khá rõ ràng và đơn giản.

White_Rose
24-04-2003, 23:33
Mình nghĩ công việc đồng bộ là do System.Net.Sockets đảm nhận, bạn không cần phải quan tâm. Nếu không thể gửi ngay, nó sẽ đặt dữ liệu vào buffer và gửi ngay khi có thể.

buitrungtin
27-04-2003, 16:56
sorry guy, i am using "opera" right now, so hope that you don't mind when write this in english.

please pardon me if i am lazy. i don't have time to read much, that why i have to go to this place to ask for help. i have read through many sample chat application on the net but still can't resolve many of my problem. and below is one of them:

i have two threads to send and receive asynchronously on one socket. It is fine to send and receive in a pattern, that is send and then receive, and then send and wait to receive again,...ect. but i want to send and receive at any time.
As we all know, both send and receive methods of socket lock the socket until the job is done, and there is no such event as "data_arrive" so that we can wait until the data is avalaible and do the receive job right at the time the data arrives. so if we keep on receiveing on the socket, it will be lock and wait for the data to be avalaible to be received, during that time, there is no way we can send data since we have to wait for the socket to be free.
one way to work around his problem that i can think of is to continuously check for the "Available" property of the socket every short period of time, if there is data to be receive, then do the receive job, else, sleep for a while so that other thread can send data on the socket. However, this is no a good one to me, since it is some what like a busy loop when wating for the data to arrive.
So if, any of you happen to know a better way around this, please help me. Thank you.

vanlang
12-05-2003, 14:49
hổng hỉu bạn viết gì hết cả

buitrungtin
14-05-2003, 19:44
không phải vậy chứ. hông lẽ mọi người không trả lời tui là vì tui viết tiếng anh sao?
trước giờ tui cứ hy vọng và tin chắc là mọi người không phiền. thôi thì xin lỗi mọi người vậy.

vanlang
16-05-2003, 13:15
tui dốt tiếng anh đặc

tiger2003
17-05-2003, 15:15
Ok I think it's very good to write our question in english.

I think that we are vietnamese, and this forum dedicates only for software problem maybe other topic as well. But I think that your purpose is to come here to get the your exact answer as soon as possible so I think it's convenient to write in Vietnamese rather than in English.

If you want to practice English there is another forum too English, if i am correct. Maybe you can go there and post your question in English and of course I am sure that there are alot of people who are willing to answer your question in English.

So comeback your question, I really don' know much about this, but you can go to MSDN.Microsoft.Com and search for phrase "101 VB.NET samples " . I am sure you will find the problem you are looking for

Have a very nice weeken

BillBK.NET
18-05-2003, 18:50
Chao ban, doc bai ban minh cung khong hieu ban noi gi nhieu, nhung minh cung da viet 1 chuong trinh Chat bang C#, noi chung la Chat tot, minh cung dang tich hop tinh nang, gui hinh anh tu Client den Client khac( khong phai la gui file), nhng van chua duoc, neu ban muon phat trien, ban lien he minh, minh se chuyen code cho ban!
billbk2001@yahoo.com

tiger2003
18-05-2003, 18:58
Bạn BillBk.NET ơi sao bạn không attach cái code của bạn vào đây tôi chắc chắn rất nhiều người muốn xin code đó để học tập. Tôi cũng ngưỡng mộ chương trình đó lắm. Chắc chắn là có thể học được rất nhiều đều thú vị , tui hỵ vọng vậy.

buitrungtin
19-05-2003, 12:17
chào bạn BillBK, mình mới đánh máy cả 15 phút mà không gởi được bài vì disconnected, nên nói ngắn gọn là vầy:
mình không quen dùng .net nhưng do ham dọc nên làm thử, nhưng khi làm thì vấn đề cứ come up mà mình còn phải học ở trường nên không có thời gian đọc sách. project dành ngưng giữa chừng. nếu hè này (một tháng nữa), bạn vẫn chưa làm xong thì mình cùng làm cho vui. nếu bạn gởi cho mình cái code để tham khảo thì cám ơn nhiều.
chương trình của mình sơ sơ là vầy:
-không có server chung mà chỉ có nhiều peers chạy trên cùng một network.
-sau khi được run, peer sẽ scan through toàn network để tìm những peer khác, sau đó sẽ set up một server để những peer khác chạy sau có thể tìm được những peer đã setup server.

chương trình của bạn thì nói chung ra sao?

to tiger2003: tui sai, bạn đúng. nhưng để bạn khỏi hiểu lầm tui nổ hay any thing else, tui muốn nói là tui không có điều kiện viết tiếng việt lúc đó, mà các bạn ở đây thì tui nghĩ là học programming nên đọc tiếng anh là chuyện thường nên viết tiếng anh cũng là chuyện thường. nếu các bạn phiền lòng thì tôi không viết tiếng anh nữa. cũng như phật dạy là không đi bên trái, cũng không đi bên phải,....đi lung tung.

nmd
21-05-2003, 13:46
Mình cũng đang làm một chương trình chat. Mình đang thử chat bằng tiếng Việt nhưng chưa biết làm sao cả. Nếu có bạn nào biết thì chỉ dùm nhé.

nmd
25-05-2003, 09:13
Và mấy bạn có thể chỉ cho mình cách nào(hướng dẫn) để add các icon vào EditText được không?