在服务器端,我必须传输大量数据,并且必须重复且尽可能快地完成它。我目前正在做的是
[Route("api/entity/SaveConfiguration")]
[HttpPut]
public void SaveConfiguration(string data){
...
var page = HttpContext.Current.CurrentHandler as Page;
var Ob = FileList.Where(x => x.UserDefinedName == configurationFileName).FirstOrDefault();
if (!(Ob == {null)) {
string pg = "Test";
page.ClientScript.RegisterStartupScript(this.GetType(), "Popup", string.Format("ShowPopup('{0}');", pg), true);
...
}
一切似乎都可以正常工作,但是突然在客户端收到数据时,我会执行以下操作:
byte[] dataLength = Encoding.ASCII.GetBytes(""+data.Length);
serverSocket.Send(dataLength);
serverSocket.Send(data);
有时在字符串内部应该只表示数据长度,实际数据却以某种方式出现在其中。
基本上我的问题是:为什么单独的socket.Send()方法将数据组合在一起。
例如,客户端上显示的是123123 ???? 问号代表大量数据(第二个socket.Send()方法调用)和123123(第一个socket.Send()方法调用)代表要发送的数据量)