【发布时间】:2021-05-16 19:10:54
【问题描述】:
当使用简单 TCP 发送数据包时,数据包会一起参与
首先我运行这段代码:
PacketSender.ValidateLogin();
PacketSender.GetProfileInfo();
PacketSender.GetFriendships();
PacketSender.GetFriendRequests();
这是函数:
public static void ValidateLogin()
{
string Packet = string.Format("{0} {1} {2} {3}", "validateLogin", LocalData.ClientID, LocalData.Username, LocalData.Password);
Client.Send(Packet);
}
public static void GetProfileInfo()
{
string Packet = string.Format("{0} {1} {2} {3} {4}", "getProfileInfo", LocalData.ClientID, LocalData.Username, LocalData.Password, TempData.CurrentProfileOwnerUsername);
Client.Send(Packet);
}
public static void GetFriendships()
{
string Packet = string.Format("{0} {1} {2} {3} {4}", "getFriendships", LocalData.ClientID, LocalData.Username, LocalData.Password, TempData.CurrentProfileOwnerUsername);
Client.Send(Packet);
}
public static void SendFriendRequest()
{
string Packet = string.Format("{0} {1} {2} {3} {4}", "sendFriendRequest", LocalData.ClientID, LocalData.Username, LocalData.Password, TempData.CurrentProfileOwnerUsername);
Client.Send(Packet);
}
这是“客户端”类的“发送”函数:
private SimpleTcpClient Client_;
public void Send(string Packet)
{
try
{
Task.Run(() => Client_DataSend(Packet));
}
catch
{
MessageBox.Show("Error while communicating with the server.", "Psychonuts");
Application.Exit();
}
}
void Client_DataSend(string Packet)
{
Client_.Connect("127.0.0.1", Convert.ToInt32(2181));
Client_.WriteLineAndGetReply(Packet, TimeSpan.FromSeconds(1));
Client_.Disconnect();
}
这是来自显示数据包一起参与的服务器日志:
Received: getFriendships pQxIr9d/HUyUHbzD/4JfIA admin admin admingetProfileInfo pQxIr9d/HUyUHbzD/4JfIA admin admin adminvalidateLogin pQxIr9d/HUyUHbzD/4JfIA admin admin
Sent: getFriendships accountIsntExist
Received: getProfileInfo pQxIr9d/HUyUHbzD/4JfIA admin admin adminvalidateLogin pQxIr9d/HUyUHbzD/4JfIA admin admin
Sent: getProfileInfo accountIsntExist
我希望为我发送的每个数据包分开数据包 发生了什么并导致它以及如何解决它,感谢任何帮助。
【问题讨论】:
标签: c#