⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class1.cs

📁 防空洞教唆犯三大件福连锁店飞机速度飞机送到了;发酵;萨地方结算;地方机速度;
💻 CS
字号:
using System;
using System.Net;
using System.Net.Sockets;
using System.Xml;
using System.Text;
namespace ChatServer
{
	class UserInfo
	{
		public string m_strName;
		public IPEndPoint m_rep;
	}
	class UDPServer
	{
		[STAThread]
		static void Main(string[] args)
		{
			UDPServer server = new UDPServer();
			server.Receive();
		}
		//其它函数
		Socket m_UdpServer=null;
		UserInfo[] m_users = new UserInfo[1024];
		int m_nUserCntr = 0;
		UDPServer()
		{
			m_UdpServer = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
			IPEndPoint iep = new IPEndPoint(IPAddress.Any,8888);
			m_UdpServer.Bind(iep);
		}
		void Receive()
		{
			while(true)
			{
				byte[] buf = new byte[2048];
				EndPoint iep = new IPEndPoint(IPAddress.Any,0);
				int nLen = m_UdpServer.ReceiveFrom(buf,ref iep);

				string str = new UTF8Encoding().GetString(buf,0,nLen);
				XmlDocument doc = new XmlDocument();
				doc.LoadXml(str);
				if(doc.FirstChild.Name == "login")
				{
					string strUser = doc.FirstChild.Attributes["user"].Value;
					m_users[m_nUserCntr] = new UserInfo();
					m_users[m_nUserCntr].m_strName = strUser;
					m_users[m_nUserCntr].m_rep = (IPEndPoint)iep;
					m_nUserCntr++;
				}
				else if(doc.FirstChild.Name == "logout")
				{
					for(int i=0;i<m_nUserCntr;i++)
					{
						if(m_users[i].m_rep == iep)
						{
							m_nUserCntr--;
							m_users[i] = m_users[m_nUserCntr];
							m_users[m_nUserCntr] = null;
							break;
						}
					}
				}
				else
				{
					string strRecv = doc.FirstChild.Attributes["recv"].Value;
					for(int i=0;i<m_nUserCntr;i++)
					{
						if(m_users[i].m_strName == strRecv)
						{
							m_UdpServer.SendTo(buf,nLen,SocketFlags.None,m_users[i].m_rep);
							break;
						}
					}
				}
			}
		}
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -