gpt4 book ai didi

c# - 使用 NetComm dll 发送屏幕截图到主机

转载 作者:行者123 更新时间:2023-11-30 17:40:12 25 4
gpt4 key购买 nike

我正在使用 NetComm dll 来处理多用户。我的问题是当我发送文本时它工作正常但是当我截取屏幕截图时它不起作用。 我的客户端代码是

ms = new MemoryStream();
bmpScreenshot.Save(ms, ImageFormat.Png);
byte[] buffer;
buffer =imageToByteArray(bmpScreenshot);
client.SendData(buffer);

将图像转换为字节数组的函数是:

 public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}

在接收端我是这样处理的:

    Stream stream = new MemoryStream(Data); // Data is byte array 
pictureBox1.Image = Image.FromStream(stream);
pictureBox1.Refresh();

收到后我在图片框中显示图像。

使用 NetComm dll 我只能发送和接收字节数组格式的数据。

NetComm dll 为我提供了使用它的 id 从一个客户端到另一个客户端进行通信的工具。当服务器启动时,它会等待客户端,一旦客户端建立连接,它就会开始以某种方式为它们提供 ID,例如 abc1、abc2、abc3。当 abc1 想要与 abc3 通信时,它只需输入 abc3 作为 id 而不是 IP 并发送消息,该消息应该传递给 abc3。 This is server

This is client

如您所见,有两个客户端连接到服务器,并且都获得了 jack1 和 jack2 之类的 ID。现在,如果他们想相互交流,只需输入各自的 ID 并发送消息即可。

最佳答案

我尝试制作一个简单的客户端 -> 客户端消息发送,这将是一个位图。当我尝试将它与不同的端口一起使用时遇到问题,但端口被阻止,这就是问题所在。也检查一下。检查代码,看看是否有帮助:

namespace CommTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

NetComm.Host host = new NetComm.Host(10010);
NetComm.Client client1 = new NetComm.Client();
NetComm.Client client2 = new NetComm.Client();

private void Form1_Load(object sender, EventArgs e)
{
host.StartConnection();
client1.Connect("localhost", 10010, "Jack");
client2.Connect("localhost", 10010, "Jack2");
client2.DataReceived += client2_DataReceived;
client1.SendData(imageToByteArray(Image.FromFile("Bitmap1.bmp")), "Jack2");
}

void client2_DataReceived(byte[] Data, string ID)
{
Stream stream = new MemoryStream(Data); // Data is byte array
pictureBox1.Image = Image.FromStream(stream);
// pictureBox1.Refresh(); works without it
}

public byte[] imageToByteArray(Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, ImageFormat.Gif);
return ms.ToArray();
}

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
host.CloseConnection();
}
}
}

关于c# - 使用 NetComm dll 发送屏幕截图到主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34545616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com