C# socket 多个客户端连接服务端,服务端选择性的给指定客户端发送消息
当我们多个客户端连接同一个服务端,这时服务端只能给最后一个连接的客户端发送消息,这是因为,在创建连接成功时,覆盖了前一个创建的socket!那怎样解决呢,我们知道每一个客户端的ip和port是固定的,我们可以创建一个键值对,将其和socket对应,这样我们服务端在通信时,先选择对应的客户端的socket,就可以实现服务端可以选择性的给指定客户端发送消息!
服务端的代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Sockets;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
namespace SocketServer
{
public partial class server : Form
{
public server()
{
InitializeComponent();
textBoxPort.Text = "50000";
textBoxServer.Text = "192.168.1.13";
}
private void buttonStart_Click(object sender, EventArgs e)
{
try
{
Socket socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress i