c/s聊天编程,要一个服务器能同时接收多个客户端的消息,现在只能接收一个客户端
privatevoidbutton1_Click(objectsender,EventArgse){//开始监听IPAddressip=Dns.GetHostEntry(...
private void button1_Click(object sender, EventArgs e)
{//开始监听
IPAddress ip = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];
IPEndPoint end = new IPEndPoint(ip, 888);
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(end);
socket.Listen(10);
richTextBox1.Text = ip + ":888 正等待客户端的连接...";
clientSocket = socket.Accept();
richTextBox1.Text += "\n已与客户端" + clientSocket.RemoteEndPoint.ToString() + "建立连接";
thread = new Thread(new ThreadStart(AA));
thread.Start();
}
private void AA()
{
NetworkStream ns = new NetworkStream(clientSocket);
while (true)
{
byte[] bb = new byte[1024];
try
{
ns.Read(bb, 0, bb.Length);
richTextBox1.Text += "\n" + Encoding.Unicode.GetString(bb);
}
catch
{
richTextBox1.Text += "\n与客户端已断开连接!";
break;
}
} 展开
{//开始监听
IPAddress ip = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];
IPEndPoint end = new IPEndPoint(ip, 888);
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(end);
socket.Listen(10);
richTextBox1.Text = ip + ":888 正等待客户端的连接...";
clientSocket = socket.Accept();
richTextBox1.Text += "\n已与客户端" + clientSocket.RemoteEndPoint.ToString() + "建立连接";
thread = new Thread(new ThreadStart(AA));
thread.Start();
}
private void AA()
{
NetworkStream ns = new NetworkStream(clientSocket);
while (true)
{
byte[] bb = new byte[1024];
try
{
ns.Read(bb, 0, bb.Length);
richTextBox1.Text += "\n" + Encoding.Unicode.GetString(bb);
}
catch
{
richTextBox1.Text += "\n与客户端已断开连接!";
break;
}
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询