怎么用易语言 *** 端口映射工具啊?
版本 2
.支持库 sockip1 = 取本机IP ()
.如果 (取数组成员数 (ip1) = 2)
ip框1.内容 = ip1 [2]
.否则
ip框1.内容 = ip1 [1]
.如果结束
ip框2.内容 = ip框1.内容.子程序 _按钮1_被单击.如果真 (按钮1.标题 = “启动映射”)
服务器1.端口 = 到数值 (端口框1.内容)
标记 = “映射”
按钮1.标题 = “停止映射”
返回 ()
.如果真结束
按钮1.标题 = “启动映射”
服务器1.端口 = 0.子程序 _服务器1_客户进入客户信息 = 服务器1.取回客户 ()
客户1.连接 (ip框2.内容, 到数值 (端口框2.内容)).子程序 _服务器1_数据到达客户1.发送数据 (服务器1.取回数据 ()).子程序 _客户1_数据到达服务器1.发送数据 (客户信息, 客户1.取回数据 (), ).子程序 _客户1_连接断开服务器1.断开客户 (客户信息).子程序 _按钮3_被单击结束 ().子程序 _按钮2_被单击
易语言 服务端启动时,如何检测指定端口是否被其他软件先占用?
.版本 2
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕
.如果 (客户1.连接 (“127.0.0.1”, 19730))
信息框 (“端口检测完毕1”, 0, )
.否则
信息框 (“端口已被占用”, 0, )
.如果结束
.子程序 _服务器1_客户进入
.如果 (取文本左边 (服务器1.取回客户 (), 9) = “127.0.0.1”)
信息框 (“端口检测完毕2”, 0, )
.否则
信息框 (“端口已被占用”, 0, )
.如果结束
试试看能不能实现
求大手们教教我 易语言怎么取IP 地址的端口号?
.版本 2.子程序 取客户IP, 文本型, 公开, 取客户端IP,成功返回客户端IP,失败返回空字符串。.参数 客户端句柄, 整数型, , 通过“取回客户()”得到的客户端句柄。.局部变量 IP地址指针, 整数型.局部变量 整数IP地址, 整数型.局部变量 对方地址信息, Sockaddr_in.局部变量 信息长度, 整数型, , , 用于获取信息长度.局部变量 返回值, 整数型信息长度 = 16返回值 = getpeername (客户端句柄, 对方地址信息, 信息长度).如果真 (返回值 = #SOCKET_ERROR) 返回 (“”) ' 服务器类取客户IP时出错.如果真结束IP地址指针 = inet_ntoa (对方地址信息.sin_addr).如果真 (IP地址指针 = 0) 返回 (“”) ' 服务器类取客户IP时整数地址转文本地址时出错.如果真结束返回 (指针到文本 (IP地址指针)).子程序 取客户端口, 整数型, 公开, 取客户端口,成功返回客户端口,失败返回-1。.参数 客户端句柄, 整数型, , 通过“监听()”得到的客户端句柄。.局部变量 整数IP地址, 整数型.局部变量 对方地址信息, Sockaddr_in.局部变量 信息长度, 整数型.局部变量 返回值, 整数型信息长度 = 16返回值 = getpeername (客户端句柄, 对方地址信息, 信息长度).如果真 (返回值 = #SOCKET_ERROR) 返回 (-1) ' 服务器类取客户端口时出错.如果真结束返回 (取字节集数据 (到字节集 (ntohs (对方地址信息.sin_port)), #整数型, 1))
二级路由如何做端口映射,为了用易语言建立服务器,
用糖衣炮弹攻击 *** 管理员让他给你做端口映射。
技术方面可以参考UPnP技术,做动态端口映射。但在多级 *** 下并不好用,如果哪一级不支持UPnP将失败。
其它没办法的。
易语言客户端服务端
.版本 2
.程序集 窗口程序集1
.程序集变量 客户, 文本型
.子程序 __启动窗口_创建完毕
服务器1.端口 = 19730
' 这里是将服务器跟客户端放在同一个窗口下写的
' 客户1连接服务器的3个条件,1:服务端已经运行。2:服务地址填写正确。3:端口要一致
' 本机测试用127.0.0.1就可以了,外网的话根据外网IP填写,或用域名解析。例如 花生壳等软件,解析后直接填入域名。
' 端口 0-65535 只要不跟其他程序使用的端口冲突就可以
.如果真 (客户1.连接 (“127.0.0.1”, 19730) = 假)
信息框 (“连接服务器失败!”, 0, )
返回 ()
.如果真结束
信息框 (“连接服务器成功!”, 0, )
.子程序 _服务器1_客户进入
' 当客户连接进来以后可以先取回这个客户的IP,等下发送数据数用得到,有多个客户连接的话可以用数组保存
客户 = 服务器1.取回客户 ()
.子程序 _按钮2_被单击
' 客户发送数据
客户1.发送数据 (“客户1发送来的数据”)
.子程序 _按钮1_被单击
' 服务器发送数据
服务器1.发送数据 (客户, “服务器1发送来的消息”, )
.子程序 _客户1_数据到达
.局部变量 消息, 文本型
' 客户取回服务器发来的消息
' 接收到的数据时字节集型的,先到下文本
消息 = 到文本 (客户1.取回数据 ())
信息框 (消息, 0, )
' 当然,如果发送的不是文本,而是一个文件、一张图片的话,就不用到文本了。而应该用一个字节集型的变量来接收
.子程序 _服务器1_数据到达
.局部变量 消息, 文本型
' 接收客户发送的数据
消息 = 到文本 (服务器1.取回数据 ())
信息框 (消息, 0, )
易语言服务器问题
你这样(外网)是无效的,我给你详细 *** :
1.不下载软件,右键本地连接复制你的ip,好,打开ie地址输入:192.168.1.1进入路由器,转发规则,ip粘帖你的ip,端口写服务器端口,保存。进入网站:ip138.com,看到你外网ip,复制外网ip,好,代码写:客户1.连接(“外网ip”,服务器端口)。完成了。
不推荐 *** 1,关机再开机就无效了,因为外网ip会变,客户就连不上。
*** 2.下载“花生壳“软件。注册免费域名,登陆软件,再进路由器,转发规则和上面写法一样保存,再找路由的:动态dns解析功能,帐号写你注册花生壳的帐号和密码,登陆。好,代码写:客户1.连接(“花生壳免费域名”,服务器端口)。提示:免费域名可再花生壳软件里查看,软件要正常运行。
强烈推荐 *** 2,关机再开机毫不影响,稳定才是王道。
0条大神的评论