socket连接成功后不能发送数据
我在编写一个socket客户端程序,平台是s60 2nd FP3。自己在windows平台下编写了一个简单的服务器端,客户端(使用nokia模拟器)与服务器端分别在公司的局域网内的两台机器上运行。代码如下:
_LIT8(KFtpUserCmd, "USER pku\r\n");
RSocketServ iSocketServ;
RSocket iSocket;
User::LeaveIfError(iSocketServ.Connect());
User::LeaveIfError(iSocket.Open(iSocketServ, KAfInet, KSockStream, KProtocolInetTcp));
TUint32 addr = INET_ADDR(172,24,17,124); //服务器端地址
iAddress.SetPort(21);
iAddress.SetAddress(addr);
iSocket.Connect(iAddress, iStatus);
SetActive();
void RunL()
{
if (iStatus == KErrNone)
{
TRequestStatus aStatus;
aStatus = KRequestPending;
TBuf8<256> buffer;
iSocket.Write( buffer, aStatus );
User::WaitForRequest(aStatus);
User::LeaveIfError( aStatus.Int() );
}
}
服务器端accept()已经收到连接成功,但随后无法发送数据。我查找了错误代码,提示是客户端在连接之后强行关闭socket。也就是说在连接成功之后端口随即被关闭,因此写入的数据服务器端无法接收。
怀疑是模拟器网络配置的问题,但却不知道应该怎样配置。还是有什么其它原因,请大家多多帮忙,问题很急,多谢大家了!