内网聊天-初级程序-极语言教程
//窗体代码:
整数 窗体,聊天框,成员,发送框,发送按钮; 程序资源 24,"清单.xml"; 程序段 加载窗体 整数 左=(桌面.宽-536)>>1,上=(桌面.高-453)>>1; 窗体=创建窗口($100,程序.名称,"局域网聊天",$10C80000,左,上,536,453,0,0,0,0); 聊天框=创建窗口($200,"Edit","欢迎光临",$50210004,0,0,527,387,窗体,1,4,0); 成员=创建窗口($0,"Combobox","全体成员",$52210043,0,393,113,153,窗体,2,8,0); 发送框=创建窗口($200,"Edit","你好",$50010000,120,393,347,27,窗体,3,4,0); 发送按钮=创建窗口($0,"Button","发送",$50010001,473,393,53,27,窗体,4,3,0); 窗体启动;读取消息 结束
//程序代码:
整数 长度=1,内网,接入= -1,选择,名字,信息;地址类 IP(协议=2); 小程序 窗体消息(整数 句柄,整数 消息,整数 参数,整数 数据); 判断(消息)为 窗口关闭{退出程序();} 为 单击左键{左键点击(参数);} 为 $401{网络消息();} 否则{处理窗口(句柄,消息,参数,数据);} 结束 小程序 退出程序 如果(信息框(0,"确定要退出吗?","提示",$24)=选了是){名字(0)=35;发消息(名字,-1);网络终止;停止(0);} 结束 小程序 窗体启动 名字=申请内存(1024);信息=?+24; 网络启动($202,名字);内网 = 分配(网络型,数据报,报协议); 如果 (内网 = -1){信息框(0,"创建socket失败","错误",$20);} 否则{取主机名(名字+1,22);名字(0)=33; 设置接口(内网, 65535, $20, @长度, 2); 异步通知(内网,窗体, $401, 接口读); IP.端口 = 反转(1280); 长度=绑定(内网,IP,16); 如果 (长度 = -1){信息框(0,"绑定端口失败","错误",$20);} 否则{添加成员("大家",-1);长度=strlen(名字); 发送消息(成员,选组合项,0,0); 发消息(名字,-1);} }读取消息 结束 小程序 左键点击(整数 参数); 判断(参数) 为 4{长度=发送消息(发送框,获取文本,1000,信息+1);长度++; 改窗口字(发送框,0);信息(0)=32;发消息(信息, 接入);} 为 10002{长度=发送消息(成员,取组合项,0,0);接入=发送消息(成员,组合数据,长度,0);} 结束 小程序 发消息(整数 内容,整数 adr); IP.地址 = adr; 长度=发到(内网,内容,长度,0,IP,16); 结束 小程序 网络消息 长度=16; 长度=收取(内网,信息,1000,0,IP,@长度); 信息(长度)=0;显示消息("\r\n");判断(信息(0)) 为 32{显示消息(信息);显示消息(" @"); 长度=查找成员(IP.地址); 发送消息(成员,组合读取,长度,信息); 显示消息(信息);} 为 33{显示消息("大家好"); 显示消息(信息);显示消息(" 冒泡了^_^"); 如果(英文比较(名字,信息)){ 发消息(名字,IP.地址);} 添加成员(信息+1,IP.地址);} 为 35{删除成员(IP.地址);} 结束 小程序 查找成员(整数 编号); 整数 id;长度=发送消息(成员,组合总项,0,0); 循环于(id=0;id<长度;id++){ 如果(发送消息(成员,组合数据,id,0) = 编号){返回(id);}}返回(-1); 结束 小程序 显示消息(整数 内容); 设置焦点(聊天框); 发送消息(聊天框,编辑选中,-2,-1); 发送消息(聊天框,编辑替换,0,内容); 结束 小程序 添加成员(整数 名称,整数 编号) 如果(查找成员(编号)=-1){发送消息(成员,组合添加,0,名称); 发送消息(成员,组合附加,长度,编号);} 结束 小程序 删除成员(整数 编号); 编号=查找成员(编号)如果(编号>=0) 发送消息(成员,组合删除,编号,0) 结束;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?