有关socket的一个很奇怪的问题

catguy 2003-08-26 02:02:10
我调用一个socket连接:
receiveIP = IPAddress.Parse(IpAddesss);
receiveipe = new IPEndPoint(receiveIP,receivePort);
receiveSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

receiveSocket.Connect(receiveipe);

while (true)
{
byte[] receiveRecvBytes = new byte[1024];

receiveSocket.Receive(receiveRecvBytes, 0, receiveSocket.Available, SocketFlags.None);

string receiveMessage=Encoding.Default.GetString(receiveRecvBytes);

int myRunCount=(receiveMessage.Length/64)-1;

}

//receiveMessage的值在设断点查看的长度是刚好64的,照理myRunCount应该等于0,但myRunCount的值是14???每次取receiveMessage的值在变化,但myRunCount永远等于14。

我想receiveMessage还在不断的从缓冲区读数据,所以在设断点看到的值不是最新的值,myRunCount根据当前的receiveMessage的长度而定的?
...全文
102 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjohenw 2003-08-26
  • 打赏
  • 举报
回复
byeceiveMessage的长度是根据Encoding.Default.GetString(receiveRecvBytes)来的,

这与你设置receiveRecvBytes的数组长度有关系。

如果你把byte[] receiveRecvBytes = new byte[1048]; 那么显示长度又会不一样的。

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧