730422343 发表于 2024-9-25 08:53:26

易语言与C#互相通信源码-实现易语言和C#的相关操作源码

.版本 2
.支持库 sock

.程序集 窗口程序集_启动窗口
.程序集变量 server, 网络服务器
.程序集变量 client, 客户
.程序集变量 客户Duan句柄, 整数型
.程序集变量 接收数据, 文本型
.程序集变量 发送数据, 文本型

.子程序 _启动监听按钮_被单击

.如果 (server.启动 (到数值 (端口号编辑框.内容)) = 真)
    接收消息编辑框.加入文本 (“服务器启动成功,端口号:” + 端口号编辑框.内容 + #换行符)
    客户Duan句柄 = server.监听 (5000)
    .如果 (客户Duan句柄 ≠ -1)
      接收消息编辑框.加入文本 (“客户进入,客户句柄:” + 到文本 (客户Duan句柄) + #换行符)
      时钟1.时钟周期 = 1000
    .否则
      接收消息编辑框.加入文本 (“客户连接超时,服务器已关闭” + #换行符)
      server.停止 ()
    .如果结束

.否则
    接收消息编辑框.加入文本 (“服务器启动失败” + #换行符)
.如果结束


.子程序 _发送按钮_被单击

.如果 (server.发送 (客户Duan句柄, 发送内容编辑框.内容, 500) = 真)
    接收消息编辑框.加入文本 (“服务器发送:” + 发送内容编辑框.内容 + #换行符)
.否则
    接收消息编辑框.加入文本 (“服务器发送消息失败” + #换行符)
.如果结束


.子程序 _时钟1_周期事件
.局部变量 消息数据, 文本型

消息数据 = 到文本 (server.接收 (客户Duan句柄, 500, ))
.如果真 (消息数据 ≠ “”)
    接收消息编辑框.加入文本 (到文本 (取现行时间 ()) + “收到客户Duan消息” + 消息数据 + #换行符)
.如果真结束


.子程序 _关闭服务器按钮_被单击

.如果 (server.停止 () = 真)
    时钟1.时钟周期 = 0
    接收消息编辑框.加入文本 (“服务器已关闭” + #换行符)
.否则
    接收消息编辑框.加入文本 (“服务器关闭失败” + #换行符)
.如果结束




using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Program
{
    static void Main()
    {
      // 定义服务器的 IP 地址,这里使用本地回环地址,通常用于在同一台机器上进行测试
      string serverIP = "127.0.0.1";
      // 定义服务器监听的端口号
      int serverPort = 8888;
      // 使用 using 语句确保在代码执行完毕后正确释放 TcpClient 资源
      using (TcpClient client = new TcpClient())
      {
            // 尝试与指定的服务器 IP 地址和端口建立连接
            client.Connect(serverIP, serverPort);
            // 获取与服务器连接的网络流,通过这个流可以进行数据的发送和接收
            NetworkStream stream = client.GetStream();
            // 创建一个大小为 1024 的字节数组,用于接收服务器返回的数据
            byte[] buffer = new byte;
            // 进入无限循环,持续接收服务器消息
            while (true)
            {
                // 从网络流中读取数据到缓冲区,并获取实际读取到的字节数量
                int bytesRead = stream.Read(buffer, 0, buffer.Length);
                // 将接收到的字节数组转换为字符串,同样使用 ASCII 编码方式,然后输出接收到的服务器响应内容
                string receivedData = Encoding.ASCII.GetString(buffer, 0, bytesRead);
                Console.WriteLine("接收到服务端响应:" + receivedData);
                // 如果接收到的内容是 "exit",则退出循环
                if (receivedData == "exit")
                  break;
                // 定义要发送给服务器的消息文本内容
                string messageToSend = "C#客户Duan发送的数据";
                // 将消息文本转换为字节数组,这里使用 ASCII 编码方式进行转换
                byte[] dataToSend = Encoding.ASCII.GetBytes(messageToSend);
                // 将字节数组写入网络流,从而将数据发送给服务器
                stream.Write(dataToSend, 0, dataToSend.Length);
            }
            // 关闭客户Duan连接,释放相关资源
            client.Close();
      }
    }
}

qq1423845446 发表于 2024-9-25 15:22:44

好好好好的我要下载看看看

1791703110 发表于 2024-9-25 21:52:02

看看,到底好不好,想学学看看

柠檬 发表于 2024-9-26 04:21:20

这就是传说中的好资源吗?赶紧看看去!

海绵老爹 发表于 2024-9-26 10:50:38

不错不错 支持下

小白 发表于 2024-9-26 17:19:55

很不错的哦,支持,加油

凌空 发表于 2024-9-26 20:31:05

我要下载试试,我要下载试试...

pei002 发表于 2024-9-26 20:55:17

9999999999999999

q12138 发表于 2024-9-26 21:19:29

谢谢分享!~

物语 发表于 2024-9-26 21:43:41

学习了!!!!
页: [1] 2 3 4 5 6
查看完整版本: 易语言与C#互相通信源码-实现易语言和C#的相关操作源码