【实例简介】
【实例截图】
【核心代码】
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
using IocpServer;
using IocpServer.AsyncSocketServer;
namespace IoServer
{
public enum ProtocolFlag
{
None = 0,
Add = 1,
Remove = 2,
Clear = 3
}
public partial class Form1 : Form
{
//主窗体
public static Form1 mainform = null;
//调试信息窗体
public static MessageBOX messagelist;
//server服务
public static IServerSocket serversocket;
//用户列表 第一个参数是 ConnectID,第二个 参数是用户名
public static Dictionary userlistdata = new Dictionary();
//获取主窗体
public static Form1 GetMainForm()
{
if (mainform != null)
{
return mainform;
}
return null;
}
//构造函数
public Form1()
{
InitializeComponent();
CheckForIllegalCrossThreadCalls = false;
Form1.mainform = this;
}
public static void Debug(string message)
{
if (messagelist != null)
{
messagelist.AddMessage(message);
}
}
public static void DebugError(string message)
{
if (messagelist != null)
{
messagelist.AddMessage(message);
}
}
public bool SetListBoxUser(string id, string user, ProtocolFlag flag)
{
try
{
lock (((ICollection)userlistdata).SyncRoot)
{
string str = "";
switch (flag)
{
case ProtocolFlag.Add:
if (!userlistdata.TryGetValue(id, out str))
{
userlistdata.Add(id, user);
return true;
}
break;
case ProtocolFlag.Remove:
if (userlistdata.TryGetValue(id, out