Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.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# 将多个阵列发送到“服务器”(C)_C#_Tcpclient_Tcplistener - Fatal编程技术网

C# 将多个阵列发送到“服务器”(C)

C# 将多个阵列发送到“服务器”(C),c#,tcpclient,tcplistener,C#,Tcpclient,Tcplistener,假设我有一个客户机和一个服务器。我想向服务器发送两个阵列: 用户名,在本例中为 密码是b,对于本例 我正在使用此代码发送到服务器: stream.Write (userd, 0, userd.GetLength); stream.Write (passd, 0, passd.GetLength); username:password 服务器端是: 问题是,我在服务器端得到的输出同时是用户和密码,因为我不能将密码字节和用户字节分开,因为它们都在一个流中发送,我没弄错吧 我怎样才能做好呢O能否将

假设我有一个客户机和一个服务器。我想向服务器发送两个阵列:

用户名,在本例中为 密码是b,对于本例 我正在使用此代码发送到服务器:

stream.Write (userd, 0, userd.GetLength);
stream.Write (passd, 0, passd.GetLength);
username:password
服务器端是:

问题是,我在服务器端得到的输出同时是用户和密码,因为我不能将密码字节和用户字节分开,因为它们都在一个流中发送,我没弄错吧


我怎样才能做好呢O

能否将对象序列化为二进制并在服务器上发送流?
然后在服务器上将二进制流反序列化为对象。

这个问题有点宽泛,但接下来是。但是,基本上,你有很多选择,你只需要选择一个,然后用它运行。我的意思是,某些方法有优点也有缺点,但是你可以很容易地解决这些问题,而我猜不出你这么做是为了什么

如果你在做这样的事情,你会想担心安全问题,但这远远超出了你的问题范围,所以我假设你已经解决了

这些只是我脑海中的几个选项

使用分隔符

如果这样做,服务器和客户机上只会有一个字符,可以保证用户名中不会出现该字符,如果需要,还可以进行转义。例如,如果选择冒号,则会向服务器发送:

stream.Write (userd, 0, userd.GetLength);
stream.Write (passd, 0, passd.GetLength);
username:password
服务器可以使用string.Split“:”或等效项来计算参数

使用固定宽度

同样,建立一个合同,但这里你有一定数量的字符,用户名将占用任何东西,永远不会超过

username     password
然后你可以抓取字符串。子字符串。。。找到论点

HTTP

这要复杂得多,但是HTTP请求的授权头使用冒号分隔符,就像我最初提到的那样。如果您将HTTP标准化为用于所有请求,它可能看起来像这样,带有一些伪代码

GET /path HTTP/1.1
Authorization: BASIC [base64(username:password)]
JSON/XML

JSON和XML是用于发送和存储数据的格式

JSON看起来像这样:

{ "username" : "thisIsTheUsername", "password" : "password01" }
XML看起来像这样:

{ "username" : "thisIsTheUsername", "password" : "password01" }
蓟马 密码01
如何使用固定宽度?我的知识还很基础。很抱歉,我的问题听起来很愚蠢。@Jack320先生,我希望这能回答你的问题,或者至少让你走上正确的道路。