socket连接成功后不能发送数据

abigbigpig 2007-03-20 03:08:54
我在编写一个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。也就是说在连接成功之后端口随即被关闭,因此写入的数据服务器端无法接收。
怀疑是模拟器网络配置的问题,但却不知道应该怎样配置。还是有什么其它原因,请大家多多帮忙,问题很急,多谢大家了!
...全文
1202 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
SenerityChzr 2008-06-09
  • 打赏
  • 举报
回复
mark……
abigbigpig 2007-03-20
  • 打赏
  • 举报
回复
搞定了,在s60 2.0或以下版本进行上网连接需要安装插件Ethernet plug-in,下载地址如下:http://sw.nokia.com/id/09a700a9-eddd-44d0-aae4-8e3d8ff00480/Ethernet_Plug_in.zip
结帖喽。。。
abigbigpig 2007-03-20
  • 打赏
  • 举报
回复
写漏了,buffer已经有数据了,如下:
TBuf8<256> buffer(KFtpUserCmd);

3,120

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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