一.ULua服务器端简介

SimpleFramework 项目的根文件夹下有一个叫做Server 的文件夹,它是一个独立的VS 项目工程,可以 直接使用VS 打开该项目。[

](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112301-300x155.png)
这个项目就是ULua
,和该程序进行网络通信,完整热更新资源的下载。 这个Server 项目就是Socket 方式.

二.服务器端使用

1.配置服务器端程序 VS 打开项目后,打开工程中的Service\HttpServer.cs 脚本文件,以下是部分代码。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace SimpleFramework.Service {
class HttpServer : HttpService {
Thread thread;

public HttpServer(int port) {
    host = "http://localhost:6688/";
}

public void Start() {
    thread = new Thread(new ThreadStart(Listen));
    thread.Start();
}

public new void Stop() {
    base.Stop();
    thread.Abort();
}

string AssetPath {
    get {
        string exePath = Environment.CurrentDirectory;
        exePath = exePath.Replace('\\\\', '/');
        exePath = exePath.Substring(0, exePath.IndexOf("/Server/"));
        return exePath + "/Assets/StreamingAssets";
    }
}

string GetMimeType(string file) {
    string extName = Path.GetExtension(file.ToLower());
    switch (extName) {
        case ".png": return "image/png";
        case ".jpg": return "image/jpeg";
        case ".txt": return "text/plain";
        default: return "application/octet-stream";
    }
}

①配置服务器端ip 地址和端口 配置第15 行的host 中的ip ,为当前服务器电脑的ip,端口可以保持默认; 如果是在本地测试,这里的ip 就写我们当前电脑的ip 即可。 ②热更新资源目录,服务器端“给”客户端的资源存放在: 第28 行AssetPath 进行配置,默认位置就是我们项目的StreamingAssets文件夹下。 2.编译服务器端程序 生成–>生成解决方案。 [

](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112306-300x137.png)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112306.png) 3.运行服务器端程序 编译后的程序:Server\bin\Debug\SuperSocket.SocketService.exe [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112302-300x145.png)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112302.png) 鼠标选中这个可执行程序,右键-->以管理员权限运行,在弹出的黑窗口内输入“r”即可成功运行。 [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112303-300x143.jpg)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112303.jpg) 4.可能遇到的Bug 在运行编译后的服务器端程序的时候,可能会出现一个Bug。 [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112304-300x159.png)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112304.png) 该Bug 修复步骤(Win10 系统): ①以管理员权限运行cmd; ②在cmd 窗口内输入命令:lodctr /r ,按回车执行; ③修复成功。 [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112305-300x166.png)
](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112306-300x137.png)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112306.png) 3.运行服务器端程序 编译后的程序:Server\bin\Debug\SuperSocket.SocketService.exe [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112302-300x145.png)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112302.png) 鼠标选中这个可执行程序,右键-->以管理员权限运行,在弹出的黑窗口内输入“r”即可成功运行。 [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112303-300x143.jpg)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112303.jpg) 4.可能遇到的Bug 在运行编译后的服务器端程序的时候,可能会出现一个Bug。 [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112304-300x159.png)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112304.png) 该Bug 修复步骤(Win10 系统): ①以管理员权限运行cmd; ②在cmd 窗口内输入命令:lodctr /r ,按回车执行; ③修复成功。 [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112305-300x166.png)