版本要求: 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,转载请注明出处!讨论可扫码加群:


