C# socket连续发送两次

服务端socket连续发送两次,客户端会返回两条数据给服务端,但是服务端在recive的时候,这两条数据合成了一条数据。客户端:封装。。。。接收数据后,返回数据给服务端。... 服务端socket连续发送两次,客户端会返回两条数据给服务端,但是服务端在recive的时候,这两条数据合成了一条数据。
客户端:
封装。。。。
接收数据后,返回数据给服务端。

服务端:
socket.send(s1);(客户端返回一条数据)
socket.send(s2);(客户度返回一条数据)
socket.recive(--,--,--);//这个recive的本意是只想接收socket.send(s2);返回的数据。

但是实际recive得到的数据是socket.send(s1);和socket.send(s2);客户端返回了两条数据,并且还合并成了一条数据。

求解:recive只想接收socket.send(s2);返回的数据。怎么写?
展开
 我来答
limyyan890609
推荐于2018-03-29 · TA获得超过1564个赞
知道小有建树答主
回答量:1484
采纳率:100%
帮助的人:873万
展开全部
你可以将你收到的数据解析下啊.
比如你发送的数据以/r/n结尾,收数据时也通过判断/r/n/就能将两次数据区分开了.
int recv = Client.Receive(receiveData);
if (recv == 0)
{
break;
}
string stringdata = Encoding.ASCII.GetString(receiveData, 0, recv);

temp += stringdata;
if (temp.Contains("\r\n"))
{
//do
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fistlong
2013-10-24 · 超过30用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:65.5万
展开全部
你可以在第二条发送之前先判断一下接收缓存里是否有数据有的话接收所有数据但是不做任何处理这样就相当于清掉了接收缓存.这样第二条就正常了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式