Windows phone 7 FTP状态代码响应don';行不通
欢迎光临 我对自己的申请有点问题。此应用程序可以连接(sith socket)FTP服务器,并且工作正常。但我的问题是,如果用户使用了错误的usernam或密码,程序将不会收到响应代码。怎么了? 我想用这个statuscode some子句来检查(usernem或/和密码等) 代码: ParseHostResponse()方法包含以下内容: 代码: 怎么了?此代码发布到Windows phone 7 FTP状态代码响应don';行不通,windows-phone-7,ftp,response,Windows Phone 7,Ftp,Response,欢迎光临 我对自己的申请有点问题。此应用程序可以连接(sith socket)FTP服务器,并且工作正常。但我的问题是,如果用户使用了错误的usernam或密码,程序将不会收到响应代码。怎么了? 我想用这个statuscode some子句来检查(usernem或/和密码等) 代码: ParseHostResponse()方法包含以下内容: 代码: 怎么了?此代码发布到 谢谢你的帮助 我帮不上忙,但我得先说几句话: statusMessage.Trim('\0')不起作用(请尝试) statu
谢谢你的帮助 我帮不上忙,但我得先说几句话:
- statusMessage.Trim('\0')不起作用(请尝试)
- statusMessage.Split('\n')效率低下,因为它涉及额外的分配(猜猜为什么)
- 坏名称:指示响应的解析,而它实际执行通信
- 功能不好:该方法指示同步模式,但在内部使用异步模式。我不知道在这里建议什么,因为每个解决方案似乎都是错误的。例如,等待响应会使UI变得不可靠
public static void ReadResponse()
{
result = ParseHostResponse();
statusCode = int.Parse(result.Substring(0, 3));
statusMessage = "";
}
public static string ParseHostResponse()
{
SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs();
socketEventArg.RemoteEndPoint = socket.RemoteEndPoint;
socketEventArg.SetBuffer(buffer, BUFFER_SIZE, 0);
socketEventArg.Completed += new EventHandler<SocketAsyncEventArgs>(delegate(object s, SocketAsyncEventArgs e)
{
if (e.SocketError == SocketError.Success)
{
statusMessage = Encoding.UTF8.GetString(e.Buffer, e.Offset, e.BytesTransferred);
statusMessage = statusMessage.Trim('\0');
}
else
{
statusMessage = e.SocketError.ToString();
}
});
socket.ReceiveAsync(socketEventArg);
string[] msg = statusMessage.Split('\n');
if (statusMessage.Length > 2)
{
statusMessage = msg[msg.Length - 2];
}
else
{
statusMessage = msg[0];
}
if (!statusMessage.Substring(3, 1).Equals(" "))
{
return ParseHostResponse();
}
return statusMessage;
}
.
.
string[] msg = statusMessage.Split('\n');
.