Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想在客户端使用TCP/IP向服务器发送请求时发送一些数据和图像_C#_Sockets_Tcp - Fatal编程技术网

C# 我想在客户端使用TCP/IP向服务器发送请求时发送一些数据和图像

C# 我想在客户端使用TCP/IP向服务器发送请求时发送一些数据和图像,c#,sockets,tcp,C#,Sockets,Tcp,我是套接字编程新手。我做了一个从一个进程到另一个进程的简单消息传输,但现在我想在客户端向服务器发送请求时发送image+数据。 我只能发送数据或图像,不能在一个请求中发送两个。我如何才能做到这一点?正如评论中提到的,在TCP/IP的上下文中,所有发送\接收过程都基于字节数组流。 您可以使用以下算法(它不是复制粘贴解决方案): 创建一些包含数据的自定义类型:可能是字符串,我强烈建议只将路径字符串存储到原始图像 class StreamData{string dataPath{get;set;}st

我是套接字编程新手。我做了一个从一个进程到另一个进程的简单消息传输,但现在我想在客户端向服务器发送请求时发送image+数据。
我只能发送数据或图像,不能在一个请求中发送两个。我如何才能做到这一点?

正如评论中提到的,在TCP/IP的上下文中,所有发送\接收过程都基于字节数组流。 您可以使用以下算法(它不是复制粘贴解决方案):

  • 创建一些包含数据的自定义类型:可能是字符串,我强烈建议只将路径字符串存储到原始图像
    class StreamData{string dataPath{get;set;}string imagePath{get;set;}}

  • 添加另一个抽象级别的类,该类将数据(图像、音乐)转换为字节数组,并获取要转换的数据路径。
    class StreamConverter{//some awesome method(string path)}

  • 然后把这些数据发送给客户。另外,不要忘记客户机将如何反序列化/编码这些数据

    请记住,TCP是一个字节流。这就是它给你的。如果你想以消息的形式进行处理,那么你需要在字节流的基础上实现这一点,或者转移到一个更高级别的抽象,从而为你提供消息。图像只不过是数据。为什么不在自定义对象中同时装箱图像和数据,然后在另一端取消装箱?谢谢@AdamCalvetBohlThanks先生,但如果两个进程都在同一台机器上,但我的两个进程都在不同的机器上运行,则会给出图像路径。我想传输图像文件