当前位置: 首页 > news >正文

网站建设进度规划口碑营销的名词解释

网站建设进度规划,口碑营销的名词解释,wordpress百科主题,微信创建小程序怎么弄游戏服务端要处理客户端请求,作为服务端引擎,网络编程也是Skynet的核心功能。1、学习网络模块 skynet.socket模块提供了网络编程的API,常用的API如下表所示:Lua API说明socket.listen(address ,port)监听一个端口,返回…
        游戏服务端要处理客户端请求,作为服务端引擎,网络编程也是Skynet的核心功能。

1、学习网络模块

  skynet.socket模块提供了网络编程的API,常用的API如下表所示:
Lua API说明
socket.listen(address ,port)监听一个端口,返回一个 id ,供 start 使用。
socket.start(id , accept)  accept 是一个函数。每当一个监听的 id 对应的 socket 上有连接接入的时候,都会调用 accept 函数。这个函数会得到接入连接的 id 以及 ip 地址。你可以做后续操作。
socket.read(id, sz)从一个 socket 上读 sz 指定的字节数。如果读到了指定长度的字符串,它把这个字符串返回。如果连接断开导致字节数不够,将返回一个 false 加上读到的字符串。如果 sz 为 nil ,则返回尽可能多的字节数,但至少读一个字节(若无新数据,会阻塞)。
socket.write(id, str) 把一个字符串置入正常的写队列,skynet框架会在 socket 可写时发送它。
socket.close(id) 关闭一个连接,这个 API 有可能阻塞住执行流。因为如果有其它coroutine 正在阻塞读这个id对应的连接,会先驱使读操作结束,close操作才返回。

        socket.read中所谓的阻塞模式和 skynet.call一样,都利用了Lua的协程机制。调用socket.read,服务有可 能被挂起,直到接收到数据,才会往下执行。

        更多API参见:https://github.com/cloudwu/skynet/wiki/Socket

2、功能开发

        学完上面的API,我们来写一个Echo程序,Echo程序其实就是一个开启处理客户端消息的服务,它会把收到的内容原封不动地发回给客户端。以下是Echo程序的示意图:

 3、代码实现

        (1)主服务

         本例只需开启一个服务,在skynet/examples目录下创建main_echo.lua文件,输入代码如下所示:

local skynet = require "skynet"
local socket = require "skynet.socket"function connect(fd, addr)--启用连接print(fd.." connected addr:"..addr)socket.start(fd)--消息处理while true dolocal readdata = socket.read(fd)--正常接收if readdata ~= nil thenprint(fd.." recv "..readdata)socket.write(fd, readdata)--断开连接elseprint(fd.." close ")socket.close(fd)endend
endskynet.start(function()local listenfd = socket.listen("0.0.0.0", 8888)socket.start(listenfd ,connect)
end)

代码说明:

  1. 先引入skynetskynet.socket这两个模块;
  2. 使用skynet.start启动服务后,依次调用socket.listensocket.start来监听8888端口;
  3. 新客户端发起连接时,connect方法将被调用;
  4. while循环里,程序先用socket.read接收数据,如果收到数据(if readdata~=nil的真分
    支),则通过socket.write将数据发回客户端;如果客户端断开了连接 (if readdata~=nil的假分支),则调用socket.close关闭连接;
  5. “0.0.0.0”表示不限制客户端的IP。

(2)配置文件 

       skynet/examples目录下创建config_echo文件,也可以拿之前的配置文件修改"start"的值即可,配置参数如下所示: 

include "config.path"thread = 8
logger = nil
logpath = "."
harbor = 0
start = "main_echo"	-- main script
bootstrap = "snlua bootstrap"	-- The service for bootstrap
-- snax_interface_g = "snax_g"
cpath = root.."cservice/?.so"
-- daemon = "./skynet.pid"

4、运行代码

(1)输入如下指令即可运行:

  • cd skynet
  • ./skynet examples/config_echo

        如果开启服务端时提示“init service failed: ./lualib/skynet/socket.lua:414: Listen error”,意味着监听端口8888被占用,可能是多次运行服务端所致,可以执行“killall skynet”命令关闭所有的Skynet进程。

(2)重新打开终端输入命令,显示如下结果,表示运行成功;

(3)此时我们还需要开启一个telnet来作为我们的客户端去连接主服务,我们再打开一个终端输入指令“telnet 127.0.0.1 8888”

知识拓展:telnetLinux下的一个程序,可用于调试TCP连接。如果尚未安装,可执行apt-get install telnet”安装。输入“telnet [ip] [端口]”即可向指定服务器发起连接,连接成功后还可以在telnet中输入内容,按回车键可将字符串发 给服务端。

5、运行结果

当客户端连接成功后,主服务会收到一条外部访问的IP地址

 客户端输入了“hello”发送给服务端,服务器收到消息后再返回给客户端,如下图所示:

http://www.yidumall.com/news/43025.html

相关文章:

  • 丽江手机网站建设百度收录网站
  • 建筑类电商网站线上推广软件
  • 做网站要法人身份证吗google浏览器官方
  • 网站建设哪种语言好智慧软文网站
  • 网站编程是什么意思seo网络推广企业
  • 网站建设中国十强百度小说排行榜2019
  • 建网站中企动力做专业搜索引擎优化
  • 建设网站方法有哪些内容广东网络优化推广
  • 做宣传图册在什么网站上海知名网站制作公司
  • 河南网站建设公司哪个好呀天津百度推广网络科技公司
  • 什么是网络营销网络营销有哪些内容百度快照优化排名怎么做
  • css3网站导航推广seo优化公司
  • 空包网站建设东莞营销网站建设优化
  • 中国重点城镇建设集团网站中国工商业联合会
  • wordpress外贸建站主题百度推广怎么找客户
  • 海外做淘宝网站品牌宣传有哪些途径
  • 做自己的网站有什么用ks刷粉网站推广马上刷
  • 做展示型企业网站线上推广平台报价
  • 沭阳网站建设招聘小红书广告投放平台
  • 海南在线人才网招聘信息seo关键词搜索优化
  • 网站制作顶级公司营销策划方案模板
  • 昌平哪有做网站的公司开发一个网站需要多少钱
  • 哈尔滨php网站开发公司上海短视频推广
  • 网站建设 辉煌电商十大搜索引擎
  • 重庆响应式网站建设哪家有seo网站推广优化论文
  • 中华人民共和国住房和城乡建设部官方网站网站seo李守洪排名大师
  • 如何做网站模板鲜花网络营销推广方案
  • 安徽建筑大学招生网录取查询seo精准培训课程
  • 中国林业建设协会网站建网站流程
  • 北京网站设计公司jq成都柚米科技15长沙的seo网络公司