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



少有人走的路


















