[Programming] Hỏi về cách lập trình kết nối đến máy trong một mạng LAN từ ngoài net |
22/05/2008 03:18:30 (+0700) | #1 | 131894 |
star107
Member
|
0 |
|
|
Joined: 19/04/2005 12:52:35
Messages: 4
Offline
|
|
Em đang học về lập trình mạng qua Socket, vấn đề có vẻ đơn giản nhưng khi e muốn mở một server lắng nghe từ một máy trong mạng LAN và kết nối đến server đó từ ngoài mạng LAN đó thì không thể làm được.
Tất nhiên là máy này chạy win XP bình thường giống như cách kết nối của backdoor hoặc là P2P của Skype vậy.
Bác nào biết thì giúp em một tay, em cảm tạ lắm lắm |
|
|
|
|
[Question] Re: Hỏi về cách lập trình kết nối đến máy trong một mạng LAN từ ngoài |
23/05/2008 13:00:06 (+0700) | #2 | 132309 |
|
ngoalong
HVA Friend
|
Joined: 22/03/2003 04:33:38
Messages: 111
Offline
|
|
bạn cần config cái router để nó map địa chỉ IP thực với địa chỉ IP của mạng LAN, sử dụng chức năng Port Forwarding |
|
|
|
|
[Question] Re: Hỏi về cách lập trình kết nối đến máy trong một mạng LAN từ ngoài net |
24/05/2008 04:30:34 (+0700) | #3 | 132422 |
star107
Member
|
0 |
|
|
Joined: 19/04/2005 12:52:35
Messages: 4
Offline
|
|
Thanks bạn nhưng mà cách đó làm với máy mình thôi chứ làm với máy người khác thì vô hiệu.
Minh đang viết chức năng send file cho 1 chương trình chat trong mạng P2P giống như Gtalk hoặc Skype vậy. Để truyền trực tiếp giữa 2 máy. |
|
|
|
|
[Question] Re: Hỏi về cách lập trình kết nối đến máy trong một mạng LAN từ ngoài |
24/05/2008 08:50:30 (+0700) | #4 | 132468 |
|
ngoalong
HVA Friend
|
Joined: 22/03/2003 04:33:38
Messages: 111
Offline
|
|
gtalk và skype client cái trên máy của 2 PC chát được với nhau là qua 1 Server, đó là mô hình client server chứ không phải P2P. Các mạng P2P như emule, bittorent, mIRC, edonkey ... đều yêu cầu bạn "mở Port" thì mới có thể sử dụng. |
|
|
|
|
[Question] Re: Hỏi về cách lập trình kết nối đến máy trong một mạng LAN từ ngoài |
30/05/2008 03:12:32 (+0700) | #5 | 133310 |
star107
Member
|
0 |
|
|
Joined: 19/04/2005 12:52:35
Messages: 4
Offline
|
|
Đúng là Gtalk và Skype là mô hình Client - Server nhung khi sử dụng chức năng send file hoặc voice thì nó lại kết nối trực tiếp giữa 2 máy.
Mình cũng biết là phải mở một port lắng nghe trên máy thì mới có thể kết nối được và mở port không phải là việc khó nhưng mà vấn đề mắc phải là nếu một máy ở trong mang LAN thi có cùng một địa chỉ WAN giống nhau nên nếu nó mở port thì máy ở ngoài LAN cũng không thể kết nối đến được.
Giải pháp cho vấn đề này là NAT tuy nhiên NAT chỉ sử dụng được đối với máy của mình. Nếu mình muốn kết nối đến máy của người khác thì NAT không thể xài được.
Rất mong các bác hướng dẫn cho. Chỉ cần cho e cái tên của giao thức cũng được e sẽ tự tìm by myself.
|
|
|
|
|
[Question] Re: Hỏi về cách lập trình kết nối đến máy trong một mạng LAN từ ngoài net |
05/06/2008 13:13:47 (+0700) | #6 | 134227 |
|
ngoalong
HVA Friend
|
Joined: 22/03/2003 04:33:38
Messages: 111
Offline
|
|
Tôi chưa từng chứng minh được rằng Yahoo send file theo kiểu P2P. Có người đã làm thử trong cùng 1 mạng LAN, send file với dung lượng lớn đạt tốc độ rất nhanh. 1 cách giải thích duy nhất là đầu tiên YM xác định xem 2 cilent có trao đổi được theo cách P2P không? Bằng 1 vài gói tin thăm dò và xác định địa chỉ đích cần gửi thông qua Y server. Nếu OK thì sẽ send theo cách này. Nếu fail sẽ gửi theo mô hình Client-Server.
Về lý thuyết, 2 máy tính nối qua router mà không sử dụng NAT để "mở port" thì sẽ không thể có chuyện 1 máy "lắng nghe - listen" và 1 máy "kết nối tới - connect to" -> Yêu cầu đầu tiên của mạng P2P. |
|
|
|
|
[Question] Re: Hỏi về cách lập trình kết nối đến máy trong một mạng LAN từ ngoài net |
05/06/2008 14:06:09 (+0700) | #7 | 134237 |
|
Mr.vinhhai
Member
|
0 |
|
|
Joined: 20/03/2007 01:28:05
Messages: 26
Location: Dreams
Offline
|
|
@ngoalong
Về lý thuyết, 2 máy tính nối qua router mà không sử dụng NAT để "mở port" thì sẽ không thể có chuyện 1 máy "lắng nghe - listen" và 1 máy "kết nối tới - connect to" -> Yêu cầu đầu tiên của mạng P2P.
Em chưa từng nghe ai nói là sử dụng NAT để Open port được ạh, anh có thể giải thích kỹ hơn cho em về vấn đề dùng NAT để mở Port được không ạh? |
|
|
|
|
[Question] Re: Hỏi về cách lập trình kết nối đến máy trong một mạng LAN từ ngoài |
05/06/2008 15:32:54 (+0700) | #8 | 134240 |
|
tmd
Member
|
0 |
|
|
Joined: 28/06/2006 03:39:48
Messages: 2951
Offline
|
|
Đây là link wiki giới thiệu về Yahoo! Messenger Protocol, các thông tin có liên quan tới protocol, traffic khi YM hoạt động, lập trình liên quan tới YM,...
http://en.wikipedia.org/wiki/YMSG |
|
3 giai đoạn của con... người, ban đầu dek biết gì thì phải thăm dò, sau đó biết rồi thì phải thân thiết, sau cùng khi quá thân thiết rồi thì phải tình thương mến thương. Nhưng mà không thương được thì ... |
|
[Question] Re: Hỏi về cách lập trình kết nối đến máy trong một mạng LAN từ ngoài net |
06/06/2008 05:54:07 (+0700) | #9 | 134309 |
star107
Member
|
0 |
|
|
Joined: 19/04/2005 12:52:35
Messages: 4
Offline
|
|
Mình đã kiếm ra rồi, thank các bạn đã trả lời.
Post lên cho a e nào muốn nghiên cứu thì tim hiểu luôn:
Giao thức sử dụng : STUN, TURN và ICE
Tuy nhiên mình vẫn chưa biết cách xài ai biết cách xài 3 thằng này thì chỉ mình với nhé
Continue research |
|
|
|