看了无数代码终于弄明白了游戏服务器的简单的原理-.-。
Socket代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace 游戏服务器
{
class Servers
{
private const int maxOL = 100;//最大连接数
private Connect[] connects = new Connect[maxOL];//连接池
private Socket serverSocket;
public Servers()
{
for(int i=0;i<maxOL;i++)
{
connects[i] = new Connect();
}
}
//创建客户端
public void start( string ip,int port)
{
//创建监听socket
serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//绑定端口ip
IPAddress iPAddress = IPAddress.Parse(ip);
IPEndPoint ipEndPoint = new IPEndPoint(iPAddress, port);//获取端口号
serverSocket.Bind(ipEndPoint);
serverSocket.Listen(0);//表示可以无限制连接
serverSocket.BeginAccept(AcceptCallBack, null);//开始监听
OutPut.put("服务端", "服务端创建成功");
}
private void AcceptCallBack(IAsyncResult ar)
{
try
{
Socket clienSocket = serverSocket.EndAccept(ar);//停止接受
int index = getIndex();
Console.Write("开始执行"+index);
if (index==-1)