网络.套接字 套接字 Socket
2022-12-22 13:59:33 最后更新
用法:

// 需要启用线程
工具.线程(){
// 创建服务端
// 输入服务端口,服务端超时限制(指定时间内无新连接则关闭服务器,0为无限制),客户端超时限制(已连接的客户端指定时间内未通信则关闭,0为无限制),是否接收新连接请求
是 tjz = 网络.套接字(6666, 0, 0, true)(so,sr){
// so 服务端对象
// sr 新连接对象

工具.输出(sr.ip() + ":" + sr.dk() + ":" + sr.bjip() + ":" + sr.bjdk())

},(sr,te,mg,bs){
// sr 连接对象
// te 数据类型,0为无数据头字节数组,1为带数据头字符串,2为带数据头文件,3为带数据头字节数组
// mg 数据信息,数据类型为1时值为对应的字符串,数据类型为2时值为文件的后缀
// bs 数据的字节数组

工具.输出(sr + ":" + te + ":" + mg + ":" + bs.length)

}

// 开始,这里线程会被堵塞
tjz.开始()

// 下面的代码将在服务端关闭后执行
工具.输出("服务端已关闭")

}

// 需要启用线程
工具.线程(){
// 创建客户端
// 输入服务器IP,服务端口,超时限制(指定时间内未通信则关闭,0为无限制)
是 tjz = 网络.套接字("192.168.1.100", 6666, 0)(so,sr){
},(sr,te,mg,bs){
// sr 连接对象
// te 数据类型,0为无数据头字节数组,1为带数据头字符串,2为带数据头文件,3为带数据头字节数组
// mg 数据信息,数据类型为1时值为对应的字符串,数据类型为2时值为文件的后缀
// bs 数据的字节数组

工具.输出(sr + ":" + te + ":" + mg + ":" + bs.length)
}

// 开始
tjz.开始()

}

// 更多方法

// 重启
tjz.重启()

// 开始启动或连接
tjz.开始()

// 连接总数
是 ljzs = tjz.连接总数()

// 获取连接列表
是 ljlb = tjz.连接()

// 获取指定序号的连接
是 lj = tjz.连接(0)

// 连接清空
tjz.连接清空()

// 获取当前是否已关闭
是 sfgb = tjz.是否关闭()

// 关闭释放
tjz.关闭()

// 获取服务器对象
是 fwd = tjz.服务器()

// 获取本机的IP
是 bjip = tjz.本机ip()

// 获取本机的端口
是 bjdk = tjz.本机端口()

// 输出数据,返回发送成功数量,如果是服务端则为群发
// 可输出多种类型数据,字符串,字节数组,文件等
工具.线程(){
是 sc1 = tjz.输出("nihao")
}

// 输出数据,需要开线程
工具.线程(){
// 输入数据类型,输入数据内容
是 sc2 = tjz.输出(1, "nihao")
// 输出文件
//s sc2 = tjz.输出(2, "%a.png")
}

// sr 连接对象的方法

// 获取远程连接的IP
是 ip = sr.ip()

// 获取远程连接的端口
是 dk = sr.端口()

// 获取本机的IP
是 bjip = sr.本机ip()

// 获取本机的端口
是 bjdk = sr.本机端口()

// 获取当前是否已关闭
是 sfgb = sr.是否关闭()

// 重启连接
sr.重启()

// 关闭释放
sr.关闭()

// 获取连接socket对象
是 ljdx = sr.连接对象()

// 设置自定义数据
sr.数据("abcd")

// 获取自定义数据
是 数据. = sr.数据()

// 设置自定义数组数据
是 sz = { "abcd", "efg" }
sr.数组数据(sz)

// 获取自定义数组数据
是 szsj = sr.数组数据()

// 输出数据,返回发送成功数量,如果是服务端则为群发
// 可输出多种类型数据,字符串,字节数组,文件等
工具.线程(){
是 sc1 = sr.输出("nihao")
}

// 输出数据
// 输入数据类型,输入数据内容
工具.线程(){
是 sc2 = sr.输出(1, "nihao")
// 输出文件
//s sc2 = sr.输出(2, "%a.png")
}

关于数据头:
数据头是为了更佳简便的使用套接字,为固定模式和长度;
数据头固定为32位;6位固定标识0-5,1位数据类型6-6,10位数据长度7-16,15位文件后缀17-31

// 数据类型: 1为字符串,2为文件,3为字节数组

// java开头固定字节标识 32, -93, 93, 0, 63, -63
// c#开头固定字节标识 32, 163, 93, 0, 63, 193