110,537
社区成员
发帖
与我相关
我的任务
分享
public void Receive()
{
byte[] recByteBuffer = new byte[1024];
int sindex = 0,nindex = 0;
int rdLength = 0;
uint dataLength = 0;
//socket.ReceiveTimeout = 5000;
while(true)
{
try
{
rdLength = socket.Receive(recByteBuffer);
if (rdLength == 0)
{
//if (stRemote.Connected == false)
// break; //没有接收到数据
//else
Thread.Sleep(5);
continue;
}
//主调方法:
socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(RecCallback), null);
//回调方法:
private void RecCallback(IAsyncResult ar)
{
int received = socket.EndReceive(ar); //在这里阻塞
socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(RecCallback), null);
}