Read-only archive. Login and posting are unavailable.
Reply
 
Thread Tools
  #1  
Old 17-02-2011, 13:27
Junior Member
Join Date: 02-2011
Posts: 13
Bác nào rành về lập trình mạng trong C# giúp mình cái này với

Mình có làm 1 kết nối client server sử dụng threads, chạy thì nó báo lỗi này
Only one usage of each socket address (protocol/network address/port) is normally permitted.
Đây là code:
Code:
public partial class Sever : Form
    {
        TcpListener client;
        byte[] data = new byte[1024];
        IPAddress ip;

        public Sever()
        {
            InitializeComponent();
            textBox_Port.Text = "8888";
            string hostName = Dns.GetHostName();
            IPHostEntry ipHostInfo = Dns.GetHostEntry(hostName);
            ip = ipHostInfo.AddressList[0];

            string ipAddress = Dns.GetHostByName(hostName).AddressList[0].ToString();
            textBox_IP.Text = ipAddress;


            try
            {
                IPEndPoint ipe = new IPEndPoint(ip, Convert.ToInt32(textBox_Port.Text));
                client = new TcpListener(ipe);
            }
            catch
            {
                MessageBox.Show("Kiem tra lai dia chi ip va port");
                return;
            }

            client.Start(); // Lỗi ngay dòng này 
            textBox_Status.Text = "Waiting for Clients.....";
            button_start.Text = "Stop";
            while (true) //khi bỏ dòng lap while này thì k bao lỗi nữa
            {
                if (client.Pending())
                {

                    ConnectionThread newconnection = new ConnectionThread(listBox1, textBox_Status);
                    newconnection.threadListener = this.client;
                    ThreadPool.QueueUserWorkItem(new WaitCallback(newconnection.HandleConnection));
                }
                else
                    Thread.Sleep(1000);
            }
        }
}
Mình có hỏi 1 số diễn đàn cntt gòi nhưng chờ lâu quá chưa có ai giúp nên mạng phép mượn f17 nhờ cái vozer, e đang cần gấp lắm ah!
Reply With Quote
  #2  
Old 17-02-2011, 13:38
Senior Member
Join Date: 01-2011
Posts: 1,161
Re: Bác nào rành về lập trình mạng trong C# giúp mình cái này với

Muốn giúp qá nhưng em mới học 2 cái WriteLine và ReadLine thôi ợ
__________________
[RIGHT][COLOR="White"]Lạc mất lối.....làm sao tìm nhau giữa một trời trắng xóa ?[/COLOR][/RIGHT]
Reply With Quote
  #3  
Old 17-02-2011, 13:40
LokiDClone's Avatar
Member
Join Date: 11-2010
Posts: 1
Re: Bác nào rành về lập trình mạng trong C# giúp mình cái này với

Quote:
Originally Posted by Bumc6 View Post
Muốn giúp qá nhưng em mới học 2 cái WriteLine và ReadLine thôi ợ
tốt bụng quá
__________________
Đã thương, đã nhớ, đã mong chờ
Đã quên, đã hận, đã thờ ơ
Đã xa, đã hết, đã không nhớ
Đã đứng vững rồi, đã hết ngơ
Reply With Quote
  #4  
Old 17-02-2011, 13:50
BennyDoan's Avatar
Junior Member
Join Date: 10-2010
Posts: 24
Re: Bác nào rành về lập trình mạng trong C# giúp mình cái này với

Nếu bạn dùng While thì cái điều kiện :
Quote:
client.Start(); // Lỗi ngay dòng này
textBox_Status.Text = "Waiting for Clients.....";
button_start.Text = "Stop";
đảm bảo phải đúng thì While nó mới chạy. Mình nghĩ điều kiện của bạn đã sai nên mới báo lỗi ở client.start()

Bạn thử dùng do while xem sao hoặc kiểm tra lại điều kiện của nó.
Reply With Quote
  #5  
Old 17-02-2011, 13:52
Jay's Avatar
Jay Jay is offline
Since 2001
Join Date: 07-2006
Posts: 11,602
Re: Bác nào rành về lập trình mạng trong C# giúp mình cái này với

đoán mò nhé:
Nếu thực sự lỗi ở dòng start thì dự đoán do vô tình tạo 2 listener trên cùng 1 port, tức là class Server được khởi tạo 2 lần ở đâu đấy (do port set tĩnh là 8888), hoặc là port 8888 đó đang được sử dụng bởi thằng nào khác trên máy mà mình ko biết.

Tuy nhiên theo như nói bỏ vòng lặp while đi thì ko bị lỗi nữa, suy ra chỉ còn 1 lý do là Server được tạo 2 lần mà thôi.
__________________
PlayStation Network: nestorvie (for GTA 5)
Reply With Quote
  #6  
Old 17-02-2011, 13:59
Junior Member
Join Date: 02-2011
Posts: 13
Re: Bác nào rành về lập trình mạng trong C# giúp mình cái này với

Quote:
Originally Posted by BennyDoan View Post
Nếu bạn dùng While thì cái điều kiện :

đảm bảo phải đúng thì While nó mới chạy. Mình nghĩ điều kiện của bạn đã sai nên mới báo lỗi ở client.start()

Bạn thử dùng do while xem sao hoặc kiểm tra lại điều kiện của nó.
Code này mình lấy từ vd trong sách, mà khi bỏ vòng lập while k bỏ các lệnh trong đó thì nó vẫn chạy nhưng k đúng yêu cầu vì cần lập lại dòng lệnh đó để nhận client kết nối
Reply With Quote
  #7  
Old 17-02-2011, 14:12
BennyDoan's Avatar
Junior Member
Join Date: 10-2010
Posts: 24
Re: Bác nào rành về lập trình mạng trong C# giúp mình cái này với

Quote:
Originally Posted by money10289 View Post
Code này mình lấy từ vd trong sách, mà khi bỏ vòng lập while k bỏ các lệnh trong đó thì nó vẫn chạy nhưng k đúng yêu cầu vì cần lập lại dòng lệnh đó để nhận client kết nối
Khi bạn bỏ While đi thì nghĩa là các câu lệnh bên trong While đó chẳng cần phải kiểm tra điều kiện gì nữa thì lệnh vẫn sẽ chạy lần lượt theo từng dòng lệnh thôi.

Khả năng khi cho while vào nên cái client.pending() ko biêt phản hổi từ đâu.
Reply With Quote
  #8  
Old 17-02-2011, 14:15
akachai's Avatar
Member
Join Date: 01-2011
Posts: 36
Re: Bác nào rành về lập trình mạng trong C# giúp mình cái này với

ngày trước em hay dùng port 8080. bác thử sửa lại port trong file log xem
Reply With Quote
  #9  
Old 17-02-2011, 14:17
Phong.dq_never_lifted's Avatar
K.I.A
Join Date: 01-2011
Posts: 147
Re: Bác nào rành về lập trình mạng trong C# giúp mình cái này với

post thông báo lỗi lên đây đi cậu...
__________________
Tính sơ sơ vài cài nick ra đi vì comment vào nhg thread nhạy cảm + nhảm rồi....
Reply With Quote
  #10  
Old 17-02-2011, 14:18
BennyDoan's Avatar
Junior Member
Join Date: 10-2010
Posts: 24
Re: Bác nào rành về lập trình mạng trong C# giúp mình cái này với

Quote:
Originally Posted by akachai View Post
ngày trước em hay dùng port 8080. bác thử sửa lại port trong file log xem
Cũng có thể là bị khóa các port nhưng dùng máy cá nhân thì đâu có bị giới hạn khóa port đâu.
Reply With Quote
Reply

« Previous Thread | Next Thread »

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


All times are GMT +7. The time now is 14:51.