C# socket多人聊天室
ChatServer
using System;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Drawing;
using System.Collections.Generic;
using System.Text;
namespace ChatServer
{
public partial class ServerForm : Form
{
private IPAddress ip;
private int port;
private Socket server;
private bool connected = false;
private List<Socket> clients = new List<Socket>();
public ServerForm()
{
InitializeComponent();
}
private void button_start_Click(object sender, EventArgs e)
{
if (!connected)
{
try
{
ip = IPAddress.Parse(textBox_ip.Text);
port = Convert.ToInt32(textBox_port.Text);
}
catch (Exception ex)
{
MessageBox.Show("IP或端口号转换错误\n" + ex.Message);
return;
}
server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint point = new IPEndPoint(ip, port);
try
{
server.Bind(point);
server.Listen(10);
}
catch (SocketException ex)
{
MessageBox.Show("服务器绑定失败!\n" + ex.Message);
return;
}
Thread th = new Thread(Accept);
th.IsBackground = true;
th.Start(server);
button_start.Text = "解散群聊";
label_state.Text = "创建群聊成功";
label_state.ForeColor = Color.Red;
InsertMessage("【" + server.LocalEndPoint.ToString() + "】:已创建群聊");
connected = true;
}
else
{
CloseServer();
}
}
private void InsertMessage(string item)
{
listBox_message.Items.Add(item);
listBox_message.TopIndex = listBox_message.Items.Count - (int)(listBox_message.Height / listBox_message.ItemHeight);
}
private void InsertClient(string item)
{