首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于 Socket.accept解决思路

2012-12-16 
关于 Socket.accept本帖最后由 kyoguys 于 2012-12-02 20:49:56 编辑如:Socket sSocket ss private void

关于 Socket.accept
本帖最后由 kyoguys 于 2012-12-02 20:49:56 编辑 如:
Socket s;
Socket ss;
 private void CmdStar_Click(object sender, EventArgs e)
        {
            label1.Text = "监听中";
            Thread td = new Thread(new ThreadStart(aa));
            td.Start();
        }
        void aa()
        {
            int port = Int32.Parse(textBox1.Text.Substring(textBox1.Text.LastIndexOf(":") + 1));
            IPEndPoint end = new IPEndPoint(Dns.GetHostEntry(Dns.GetHostName()).AddressList[0],port);
            s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            s.Bind(end);
            s.Listen(10);
            ss = s.Accept();
            if(ss.Connected)
            {
                label1.Text = "连接成功";
            }
        }


如上可以连接成功 ,但是只支持单个连接访问

我看了别人的例子 做了如下修改
Socket s;
private Socket[] C;
private int C_Num;//存放客户端数量
 private void CmdStar_Click(object sender, EventArgs e)
        {
            label1.Text = "监听中";
            C = new Socket[10];
            C_Num = 0;
            Thread td = new Thread(new ThreadStart(aa));
            td.Start();
        }
        void aa()
        {
            int port = Int32.Parse(textBox1.Text.Substring(textBox1.Text.LastIndexOf(":") + 1));
            IPEndPoint end = new IPEndPoint(Dns.GetHostEntry(Dns.GetHostName()).AddressList[0],port);
            s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            s.Bind(end);
            s.Listen(10);
            C[C_Num] = s.Accept();
            if (C[C_Num].Connected)


            {
                label1.Text += C_Num+"hao连接成功/n";
            }
            C_Num += 1;
        }


这里 private Socket[] C; 用了存连接
Accept 不接受了。。。

这样的做法不对吗??
[解决办法]
已解决 ~~~~~~~

热点排行