版本要求: netMarketing1.4.0
命名空间:netMarketing.Net.SocketLibrary
客户端调用示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SocketClientTest
{
    class Program
    {
        public static int a = 0;
        public static int b = 0;
        public static int c = 0;
        static SocketLibrary.Client client;
        static SocketLibrary.Client client2;
        static SocketLibrary.Client client3;
        static void Main(string[] args)
        {
            client = new SocketLibrary.Client("192.168.0.222", 60000);//此处输入自己的计算机IP地址,端口不能改变
            client.MessageReceived += _client_MessageReceived;
            client.MessageSent += client_MessageSent;
            client.StartClient();
            client2 = new SocketLibrary.Client("192.168.0.222", 60000);//此处输入自己的计算机IP地址,端口不能改变
            client2.MessageReceived += _client_MessageReceived;
            client2.MessageSent += client_MessageSent;
            client2.StartClient();
            client3 = new SocketLibrary.Client("192.168.0.222", 60000);//此处输入自己的计算机IP地址,端口不能改变
            client3.MessageReceived += _client_MessageReceived;
            client3.MessageSent += client_MessageSent;
            client3.StartClient();
            while (true)
            {
                System.Threading.Thread.Sleep(200);
                sendMsg();
                sendMsg2();
                sendMsg3();
            }
        }
        public static object lockk = new object();
        private static void client_MessageSent(object sender, SocketLibrary.SocketBase.MessageEventArgs e)
        {
            Console.WriteLine(e.Connecction.ConnectionName + "," + e.Message.MessageBody + "" + "发送成功");
            lock (lockk)
            {
                switch (e.Message.MessageBody.Substring(3))
                {
                    case "1":
                        a++;
                        break;
                    case "2":
                        b++;
                        break;
                    case "3":
                        c++;
                        break;
                    default:
                        break;
                }
                Console.WriteLine($"{a},{b},{c}");
            }
        }
        private static void _client_MessageReceived(object sender, SocketLibrary.SocketBase.MessageEventArgs e)
        {
            string msg = e.Message.MessageBody;
            Console.WriteLine(e.Connecction.ConnectionName +""+ msg + ":发送成功");
        }
        private static void sendMsg()
        {
            SocketLibrary.Connection connection;
            client.Connections.TryGetValue(client.ClientName, out connection);
            if (connection != null)
            {
                SocketLibrary.Message message = new SocketLibrary.Message(SocketLibrary.Message.CommandType.SendMessage, "消息体1");
                connection.messageQueue.Enqueue(message);
            }
            else
            {
                Console.WriteLine("发送失败!");
            }
        }
        private static void sendMsg2()
        {
            SocketLibrary.Connection connection;
            client2.Connections.TryGetValue(client2.ClientName, out connection);
            if (connection != null)
            {
                SocketLibrary.Message message = new SocketLibrary.Message(SocketLibrary.Message.CommandType.SendMessage, "消息体2");
                connection.messageQueue.Enqueue(message);
            }
            else
            {
                Console.WriteLine("发送失败!");
            }
        }
        private static void sendMsg3()
        {
            SocketLibrary.Connection connection;
            client3.Connections.TryGetValue(client3.ClientName, out connection);
            if (connection != null)
            {
                SocketLibrary.Message message = new SocketLibrary.Message(SocketLibrary.Message.CommandType.SendMessage, "消息体3");
                connection.messageQueue.Enqueue(message);
            }
            else
            {
                Console.WriteLine("发送失败!");
            }
        }
    }
}服务端调用示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SocketServerTest
{
    class Program
    {
        static int i = 0;
        static SocketLibrary.Server _server;
        static void Main(string[] args)
        {
            _server = new SocketLibrary.Server("192.168.0.222", 60000);
            _server.MessageReceived += _server_MessageReceived;
            _server.Connected += _server_Connected;
            _server.ConnectionClose += _server_ConnectionClose;
            _server.MessageSent += _server_MessageSent;
            _server.StartServer();
            while (true)
            {
                System.Threading.Thread.Sleep(200);
            }
        }
        static void _server_MessageSent(object sender, SocketLibrary.SocketBase.MessageEventArgs e)
        {
            Console.WriteLine("服务端发送成功");
        }
        private static void _server_ConnectionClose(object sender, SocketLibrary.SocketBase.ConCloseMessagesEventArgs e)
        {
            Console.WriteLine(e.ConnectionName + "连接关闭");
        }
        private static void _server_Connected(object sender, SocketLibrary.Connection e)
        {
            Console.WriteLine(e.ConnectionName + "连接成功");
        }
        public static int a = 0;
        public static int b = 0;
        public static int c = 0;
        public static object lockk = new object();
        private static void _server_MessageReceived(object sender, SocketLibrary.SocketBase.MessageEventArgs e)
        {
            lock (lockk)
            {
                string ss = e.Message.MessageBody;
                int d = Convert.ToInt32( ss.Substring(3));
                switch (d)
                {
                    case 1:
                        a++;
                        break;
                    case 2:
                        b++;
                        break;
                    case 3:
                        c++;
                        break;
                    default:
                        break;
                }
            }
            Console.WriteLine($"{a},{b},{c}");
            Console.WriteLine(e.Message.MessageBody);
            SendMsg();
        }
        private static void SendMsg()
        {
            i += 1;
            SocketLibrary.Connection connection = null;
            foreach (var keyValue in _server.Connections)
            {
                if ("192.168.2.208".Equals(keyValue.Value.NickName))
                {
                    connection = keyValue.Value;
                }
            }
            if (connection != null)
            {
                SocketLibrary.Message message = new SocketLibrary.Message(SocketLibrary.Message.CommandType.SendMessage, i + "123");
                connection.messageQueue.Enqueue(message);
            }
            else
            {
                Console.WriteLine("发送失败!");
            }
        }
    }
}---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!
本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:



少有人走的路



















