Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 16 kết quả

Đề tài: Giao thức UDP có thể chat đc qua internet ko

  1. #1
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà nội
    Bài viết
    210

    Mặc định Giao thức UDP có thể chat đc qua internet ko

    MÌnh đã làm đc chat internet qua TCP/IP , bây giờ muốn làm chat voice và cần sử dụng giao thức UDP để làm việc này.
    Mình có thể chat được trên mạng LAN nhưng ko thể kết nối qua internet .< vấn đề ở code thôi , vì mình sử dụng giao thức tcp đã làm đc chương trình chat như yahoo rồi>
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Windows.Forms;
    9. using System.Net.Sockets;
    10. using System.Net;
    11. using System.Threading;
    12.  
    13. namespace ChatUDP
    14. {
    15.     public partial class t : Form
    16.     {
    17.         public t()
    18.         {
    19.             InitializeComponent();
    20.             CheckForIllegalCrossThreadCalls = false;
    21.         }
    22.  
    23.         private void btnSend_Click(object sender, EventArgs e)
    24.         {
    25.             UdpClient send = new UdpClient();
    26.             IPEndPoint ipepRemote = new IPEndPoint(IPAddress.Parse(txtIP.Text), 9050);
    27.             byte[] data=new byte[1024];
    28.             data = Encoding.UTF8.GetBytes(txtSend.Text);
    29.             send.Send(data, data.Length, ipepRemote);
    30.             txtRecieve.Text += "Sender: " + txtSend.Text + "\r\n";
    31.             txtSend.Clear();
    32.            
    33.         }
    34.  
    35.         private void btnConnect_Click(object sender, EventArgs e)
    36.         {
    37.             Thread tuyen = new Thread(new ThreadStart(NhanDL));
    38.             tuyen.Start();
    39.         }
    40.         private void NhanDL()
    41.         {
    42.             UdpClient reciever = new UdpClient(9050);
    43.             IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 0);
    44.             while (true)
    45.             {
    46.                 byte[] data=new byte[1024];
    47.                 data = reciever.Receive(ref ipep);
    48.                 string s = Encoding.UTF8.GetString(data);
    49.                 txtRecieve.Text += "Reciever :" + s + "\r\n";
    50.             }
    51.         }
    52.     }
    53. }
    Quá yêu em khiến em xem
    Đó như là sơ hở
    Em điểu khiển và biến tôi thành 1 thằng khở

  2. #2
    Ngày gia nhập
    03 2009
    Bài viết
    267

    muốn chat đc wa internet thì máy server của bạn fải nat port ở modem và tắt tưởng lửa đi

  3. #3
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà nội
    Bài viết
    210

    cám ơn bạn đã quan tâm
    MÌnh đã làm đc chat internet qua TCP/IP , bây giờ muốn làm chat voice và cần sử dụng giao thức UDP

    port + firewall mình đã xử lý nó rồi nên mới chat được TCP/IP qua internet, vấn đề là mình muốn hỏi UDP có khả năng giao tiếp qua internet ko
    Quá yêu em khiến em xem
    Đó như là sơ hở
    Em điểu khiển và biến tôi thành 1 thằng khở

  4. #4
    Ngày gia nhập
    11 2008
    Bài viết
    218

    Sách lập trình mạng trong C# viết như sau:
    Socket là một giao diện lập trình ứng dụng mạng. Thông qua giao diện này chúng ta có thể lập trình điều khiển việc truyền thông giữa hai máy tính sử dụng các giao thức mức thấp là TCP, UDP,...
    Socket là sự trừu tượng hóa ở mức cao, có thể hình dung nó như là thiết bị truyền thông hai chiều gửi - nhận dữ liệu giữa hai máy tính với nhau.
    Socket gồm có: Socket hướng kết nối (TCP Socket), Socket không hướng kết nối (UDP Socket) và Raw Socket
    ...............
    Như vậy câu hỏi của bạn có thể trả lời là: UDP hoàn toàn có khả năng giao tiếp qua internet!

  5. #5
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà nội
    Bài viết
    210

    Trích dẫn Nguyên bản được gửi bởi who_am_i Xem bài viết
    Sách lập trình mạng trong C# viết như sau:
    Socket là một giao diện lập trình ứng dụng mạng. Thông qua giao diện này chúng ta có thể lập trình điều khiển việc truyền thông giữa hai máy tính sử dụng các giao thức mức thấp là TCP, UDP,...
    Socket là sự trừu tượng hóa ở mức cao, có thể hình dung nó như là thiết bị truyền thông hai chiều gửi - nhận dữ liệu giữa hai máy tính với nhau.
    Socket gồm có: Socket hướng kết nối (TCP Socket), Socket không hướng kết nối (UDP Socket) và Raw Socket
    ...............
    Như vậy câu hỏi của bạn có thể trả lời là: UDP hoàn toàn có khả năng giao tiếp qua internet!
    Bạn có 1 cái demo nào về sử dụng giao thức chat UDP qua internet ko cho mình xin . đoạn code trên của mình chat ở mạng LAN ok nhưng vào internet thì nó bất lực
    Quá yêu em khiến em xem
    Đó như là sơ hở
    Em điểu khiển và biến tôi thành 1 thằng khở

  6. #6
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    Mặc định Giao thức UDP có thể chat đc qua internet ko

    Trích dẫn Nguyên bản được gửi bởi prt_awm Xem bài viết
    Bạn có 1 cái demo nào về sử dụng giao thức chat UDP qua internet ko cho mình xin . đoạn code trên của mình chat ở mạng LAN ok nhưng vào internet thì nó bất lực
    Eò. Chat Lan đc thì internet đc. Tuy nhiên cần thay đổi chút xíu : ip fai là địa chỉ ip public ( địa chỉ đại diện trên mạng internet + muốn lắng nghe nhận đc kết nối,tin nhắn từ máy khác thì máy mình phải có quyền lắng nghe ở 1 cổng nào đó ở địa chỉ ip public.
    -Cách giải quyết thì thuê/mua server bỏ app_sever lên đó( cái này với sinh viên thì hơi gay go).
    -Hoặc nếu có quyền quản trị cái modern thì NAT port ( cái này thì bác nào kéo mạng có dây mới chơi đc),wifi công cộng,hoặc hok có quyền can thiệp vô cái modern thì chịu .

    UDP thì cơ chế để chat qua in tẹc nét cũng tương tự vậy.

    Do đó với sinh viên thì cứ làm tốt cái Chat Lan đi. Vì chat lan với chat internet có khác mấy đâu (chỉ khác chủ yếu về yếu tố bên ngoài - thường thì code không khác j mấy)
    Chủ yếu làm cho tốt cái mô hình ,core chat - nó có thích hợp ,tối ưu để phát triển thành dụ lớn lớn hay không mà thôi.

    - Nếu mà máu chat qua internet quá thì tìm hiểu Webservice .kiếm cái web làm sever trung gian .--> Cái này dễ thực hiện ,mình cũng đã làm thành công ( web php làm trung gian + C# chat client).Có j mình chia sẻ thắc mắc của bạn trong quá trình bạn làm
    Đã được chỉnh sửa lần cuối bởi tauit_dnmd : 16-10-2011 lúc 11:17 PM.

  7. #7
    Ngày gia nhập
    03 2009
    Bài viết
    267

    ip fai là địa chỉ ip public ( địa chỉ đại diện trên mạng internet + muốn lắng nghe nhận đc kết nối,tin nhắn từ máy khác thì máy mình phải có quyền lắng nghe ở 1 cổng nào đó ở địa chỉ ip public.
    -Cách giải quyết thì thuê/mua server bỏ app_sever lên đó( cái này với sinh viên thì hơi gay go).
    :| code ở sv ko cần thay đổi gì cả :|, chỉ có thằng client cần biết IP WAN của sv để kết nối tới server thôi.
    -Cách giải quyết thì thuê/mua server bỏ app_sever lên đó( cái này với sinh viên thì hơi gay go).
    -Hoặc nếu có quyền quản trị cái modern thì NAT port ( cái này thì bác nào kéo mạng có dây mới chơi đc),wifi công cộng,hoặc hok có quyền can thiệp vô cái modern thì chịu .
    :| cũng chẳng cần thuê gì ở đây hết, chỉ cần có quyền can thiệp vào modem và router để nat port là okey thôi.

    Mình thấy code của chủ thớt có chỗ bất ổn.
    Code:
    private void btnSend_Click(object sender, EventArgs e)
            {
                UdpClient send = new UdpClient();
                IPEndPoint ipepRemote = new IPEndPoint(IPAddress.Parse(txtIP.Text), 9050);
                byte[] data=new byte[1024];
                data = Encoding.UTF8.GetBytes(txtSend.Text);
                send.Send(data, data.Length, ipepRemote);
                txtRecieve.Text += "Sender: " + txtSend.Text + "\r\n";
                txtSend.Clear();
               
            }
    Mình nghĩ đây là code của client, mỗi lần gửi là lại tạo 1 udpclient àh :| sao ko tạo 1 lần dùng về sau luôn? Đó là vấn đề 1, còn 1 vấn đề nữa là
    Code:
            private void NhanDL()
            {
                UdpClient reciever = new UdpClient(9050);
                IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 0);
                while (true)
                {
                    byte[] data=new byte[1024];
                    data = reciever.Receive(ref ipep);
                    string s = Encoding.UTF8.GetString(data);
                    txtRecieve.Text += "Reciever :" + s + "\r\n";
                }
            }
    Hàm này bạn chạy ở thread thì txtRecieve.Text += "Reciever :" + s + "\r\n"; dòng này nó sẽ báo lỗi, ở thread ko đc đụng tới các thành phần của form.
    Còn ko bik code sv cậu sao post lên lun đi.
    Đã được chỉnh sửa lần cuối bởi nhokviet : 17-10-2011 lúc 04:59 PM.

  8. #8
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    Trích dẫn Nguyên bản được gửi bởi nhokviet Xem bài viết
    :| code ở sv ko cần thay đổi gì cả :|, chỉ có thằng client cần biết IP WAN của sv để kết nối tới server thôi.

    :| cũng chẳng cần thuê gì ở đây hết, chỉ cần có quyền can thiệp vào modem và router để nat port là okey thôi.
    ??? Không hiểu bạn nói lại ý tui làm j?

  9. #9
    Ngày gia nhập
    03 2009
    Bài viết
    267

    Trích dẫn Nguyên bản được gửi bởi tauit_dnmd Xem bài viết
    ??? Không hiểu bạn nói lại ý tui làm j?
    Ý mình chỉ nói là cách giải quyết của bạn ko thực tế ), với lại câu , cần gì phải thuê server ? thuê server để làm gì? máy mình ko làm server đc àh?
    Code:
    muốn lắng nghe nhận đc kết nối,tin nhắn từ máy khác thì máy mình phải có quyền lắng nghe ở 1 cổng nào đó ở địa chỉ ip public.
    Mình thấy ko chính xác ) server thì ko lắng nghe ở 1 IP nào hết, nó chỉ lắng nghe ở 1 port thôi ), còn các client mới cần mò đường đến server

    Hoặc có thể mình ko hiểu theo đúng ý bạn , với lại mình thấy lời giải thích của bạn chưa chi tiết

  10. #10
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    Trích dẫn Nguyên bản được gửi bởi nhokviet Xem bài viết
    Ý mình chỉ nói là cách giải quyết của bạn ko thực tế ), với lại câu , cần gì phải thuê server ? thuê server để làm gì? máy mình ko làm server đc àh?
    Code:
    muốn lắng nghe nhận đc kết nối,tin nhắn từ máy khác thì máy mình phải có quyền lắng nghe ở 1 cổng nào đó ở địa chỉ ip public.
    Mình thấy ko chính xác ) server thì ko lắng nghe ở 1 IP nào hết, nó chỉ lắng nghe ở 1 port thôi ), còn các client mới cần mò đường đến server

    Hoặc có thể mình ko hiểu theo đúng ý bạn , với lại mình thấy lời giải thích của bạn chưa chi tiết
    Ơ, toàn bạn nói chứ mình có nói vậy.
    Trích dẫn Nguyên bản được gửi bởi nhokviet Xem bài viết
    Ý mình chỉ nói là cách giải quyết của bạn ko thực tế ), với lại câu , cần gì phải thuê server ? thuê server để làm gì? máy mình ko làm server đc àh?
    --> Cái này mình không nói à nhen,bạn đọc lại xem? Mình đưa ra 2 cách có thể làm đó nha.
    -Và nên nhớ 1 điều,không phải ai cũng có quyền can thiệp cái modern,router... . Như mình xài mạng wifi công cộng thì can thiệp modern,router... thế nào?(Ai cho mình quyền can thiệp modern? )
    Nên vậy m mới đưa ra 2 cách đó nhen.
    2 Cách mình đưa ra bao gồm cả cách của bạn nữa đó.
    Thấy đoạn này của mình:
    Code:
    muốn lắng nghe nhận đc kết nối,tin nhắn từ máy khác thì máy mình phải có quyền lắng nghe ở 1 cổng nào đó ở địa chỉ ip public.
    Không có j mâu thuân cả.

    Hoặc có thể mình ko hiểu theo đúng ý bạn
    --> uhm, có lẽ bạn hiểu nhầm ý mình.
    Hi.

Các đề tài tương tự

  1. Xin gợi ý hướng đi phần mềm chat qua Internet
    Gửi bởi iexplore trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 23-09-2012, 12:11 AM
  2. Chat bằng giao diện giữa 2 client, không hiện nội dung lên giao diện được?
    Gửi bởi qqqq1234 trong diễn đàn Thắc mắc lập trình Java
    Trả lời: 1
    Bài viết cuối: 18-04-2012, 10:23 PM
  3. Socket Làm sao để tạo server chat qua internet?
    Gửi bởi huunam0241 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 04-10-2011, 12:44 PM
  4. Chat ngay cùng Sư Phụ Chat trên điện thoại NOKIA của bạn
    Gửi bởi thangbsb trong diễn đàn Giải trí - Thư giãn
    Trả lời: 0
    Bài viết cuối: 20-01-2011, 09:53 PM
  5. giao diện chat
    Gửi bởi prime trong diễn đàn Ý tưởng sản phẩm CNTT của bạn
    Trả lời: 2
    Bài viết cuối: 28-02-2010, 11:26 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn