读书人

关于 Socket.accept解决思路

发布时间: 2012-12-16 12:02:32 作者: rapoo

关于 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 不接受了。。。

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

读书人网 >C#

热点推荐