Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/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
.net 使用TCP套接字发送文件并同时发送字符串_.net_Vb.net_File Sharing_Tcpsocket - Fatal编程技术网

.net 使用TCP套接字发送文件并同时发送字符串

.net 使用TCP套接字发送文件并同时发送字符串,.net,vb.net,file-sharing,tcpsocket,.net,Vb.net,File Sharing,Tcpsocket,我有一个具有日志功能的文件共享应用程序。每次用户连接时,客户机都会发送一个字符串,告知用户已连接,同样,当客户机断开一个字符串时,也会在服务器上发送一个字符串,告知用户已断开连接 现在我的问题是,当用户连接或断开连接,然后同时发送文件时,程序可能无法猜测哪些数据用于日志部分,哪些数据用于文件共享部分。我想要的是在不打扰彼此的情况下将它们分开。TCP连接是在一个TCP套接字中实现的,现在我想,也许为这两个功能中的任何一个使用单独的套接字可以解决这个问题。或者某种算法来确定发送的数据类型,无论是文件

我有一个具有日志功能的文件共享应用程序。每次用户连接时,客户机都会发送一个字符串,告知用户已连接,同样,当客户机断开一个字符串时,也会在服务器上发送一个字符串,告知用户已断开连接

现在我的问题是,当用户连接或断开连接,然后同时发送文件时,程序可能无法猜测哪些数据用于日志部分,哪些数据用于文件共享部分。我想要的是在不打扰彼此的情况下将它们分开。TCP连接是在一个TCP套接字中实现的,现在我想,也许为这两个功能中的任何一个使用单独的套接字可以解决这个问题。或者某种算法来确定发送的数据类型,无论是文件数据还是字符串。涉及IO库之类的东西。我的朋友告诉我,也许我们可以尝试获取正在发送的文件的文件名,然后将其与为日志部分发送的字符串进行比较。为日志部分发送的字符串是常量,所以我想这应该是可能的

我脑子里有一些想法,但我认为有更好的方法。有什么建议吗


提前谢谢

现在还不清楚这里的架构是什么。您不是每个用户都有一个套接字,因此连接只是连接中的第一条消息吗?(当然,您需要确定如何终止该操作…)为使用标识符发送的每个数据块添加前缀。e、 g.第一个字节可能是
0x00
=登录消息,
0x01
=注销消息,
0x02
=文件数据等。您可以从FTP协议中吸取教训,使用两个连接,一个用于控制,另一个用于文件数据。也就是说,如果我理解你所描述的是正确的。谢谢你的回复@是的,每个用户一个套接字。用户可以随时连接和断开连接。当他们这样做时,他们会发送一条消息,通知服务器他们做了什么。日志部分可以这样做,但问题是,发送文件会中断日志部分,反之亦然。@MarcB,这应该很好,但我如何识别文件数据?如果发送一个大文件,我的程序所做的就是按部分发送。问题在于,它无法识别正在发送的数据。它是二进制的。如果我弄错了,请告诉我。:)