套接字编程/通过无线发送二进制图像数据

时间:2013-12-13 14:39:15

标签: c# sockets

如何通过无线发送字节数组(byte[])?

我目前正在开发客户端/服务器聊天应用程序。我已经实现了各种其他功能,例如配置文件管理,但我面临的问题是尝试通过无线方式发送图像。

我已经知道如何将图像转换为字节格式并从数据库中保存/检索,但是当它在TCP / IP中发送时,它不适用于使用的类(StreamWriter

发送字节流需要哪些类?不干扰他的个人资料?

(在我的聊天记录表格中)
这是我的算法:连接用户信息,例如他的用户名,密码,位置,性别,状态和嵌入服务器符号,例如(%,^,〜,`),这样服务器可以将他的信息分开并将其保存在数据库中。< / p>

在我尝试将字节数组(byte[],即图像数据)与其信息连接起来之前,一切正常。

我的解决方案:我将单独发送他的信息,即所有字符串将在一起,当我想将他的个人资料详细信息发送到服务器时,他的图像将独立存在。

我的课程:我正在使用stream Writer将用户信息写入服务器。 请给我一个例子,使用一个好的类,例如(二进制作家)发送他的个人资料图片。如果我能在服务器上获得二进制代码,我会非常感激,非常感谢。

1 个答案:

答案 0 :(得分:2)

TcpClient将有效。

TcpClient tcpClient = new TcpClient();
tcpClient.Connect(server, port);
Stream stream = tcpClient.GetStream();

byte[] testString = Encoding.ASCII.GetBytes("test");
stream.Write(testString, 0, testString.Length);

stream.Close();
tcpClient.Close();

那将发送string“测试”。您可以将相同的逻辑应用于不同的数据格式。

byte[] hexMsg = new byte[] { 0x1A, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 };
stream.Write(hexMsg, 0, hexMsg.Length);

这将在整个流中发送一些hex值。