WebSocket全双工通讯链接,用于前台和后台自由发送信息
一.效果展示:
效果描述:
1.服务器充当管理员,给所有人发送信息,除服务器以外其他人都能接受到。
2.其他用户发送信息除自己以外其他用户和管理员全能接受到。
注意:图中打码处为服务器IP和端口,每个电脑都只能访问自己的服务器以及端口,用cmd打开管理员命令窗口,用如下代码 可以查看本机所有IP和端口
netstat -a
//或者
netstat -an
二.服务器代码:
public partial class MainForm : Form
{
List<Socket> ClientProxSocketList = new List<Socket>();
public MainForm()
{
InitializeComponent();
}
Socket proxSocket;
//点击启动按钮
private void btn_Start_Click(object sender, EventArgs e)
{
//1 创建Socket
Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//2 绑定端口Ip
socket.Bind(new IPEndPoint(IPAddress.Parse(txt_Ip.Text),int.Parse(txt_Port.Text)));
//3 开启监听
socket.Listen(1000); //链接:最大接收请求数,超出返回错误信息
//4 开始接收客户端的链接
ThreadPool.QueueUserWorkItem(new WaitCallback(this.AcceptClientConnect),socket);
}
//将远程连接的客户端的IP地址和Socket存入集合中
Dictionary<string, Socket> dicSocket = new Dictionary<string, Socket>();
public void AcceptClientConnect(object socket)
{
var serverSocket = socket as Socket;
this.AppendTe