gpt4 book ai didi

c# - 如何使用 Tcp NetworkStream C# 发送和接收列表

转载 作者:可可西里 更新时间:2023-11-01 02:40:36 25 4
gpt4 key购买 nike

我刚开始学习套接字编程,现在我正在尝试将 List<> 从客户端发送到服务器。

我读到我需要使用 BinaryFormatter 进行序列化和反序列化,但我只是不知道如何使用 NetworkStream 将它发送到服务器。

请帮忙,任何解释将不胜感激。非常感谢您。

下面是我的客户端代码

private void btnSendDataToServer_Click(object sender, EventArgs e)
{
int noOfMessage = Convert.ToInt32(tbMessageNo.Text);
try
{
serverStream = clientSocket.GetStream();
for (int i = 0; i < noOfMessage; i++)
{
clientList.Add(tbSendDataToServer.Text);
}

//send data to server
byte[] outStream = System.Text.Encoding.ASCII.GetBytes(?);
serverStream.Write(outStream, 0, outStream.Length);
serverStream.Flush();

//receive data from server
byte[] inStream = new byte[102400];
serverStream.Read(inStream, 0, (int)clientSocket.ReceiveBufferSize);
string returndata = System.Text.Encoding.ASCII.GetString(inStream);
msg("Data from Server : " + returndata);
}
catch(SocketException ex)
{ }
}

下面是我的服务器代码

byte[] bytesFrom = new byte[102400];

NetworkStream networkStream = clientSocket.GetStream();
networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);
dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom);

f.testQS.Enqueue(dataFromClient);
AppendText(f.testQS.Count().ToString() + " >> " + "From client-" + ClientNo + "--" + dataFromClient);

//send data to client
rCount = Convert.ToString(requestCount);
serverResponse = "Server to Client(" + ClientNo + ") " + rCount;
sendBytes = Encoding.ASCII.GetBytes(serverResponse);
networkStream.Write(sendBytes, 0, sendBytes.Length);
networkStream.Flush();

附言如果它是单个字符串,我没有问题。但我想根据用户 noOfMessage 循环第一个字符串并将其放入列表中。然后我会将列表发送到服务器。然后,Server会读取接收到的List,并显示List的数据。谢谢。

最佳答案

发送数据

BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(serverStream, clientList);
serverStream.Close();

在服务器端接收

BinaryFormatter formatter = new BinaryFormatter();
clientList = (List<string>) formatter.Deserialize(networkStream);

关于c# - 如何使用 Tcp NetworkStream C# 发送和接收列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42298064/

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