为什么会报错

Amour81 2005-04-19 03:37:14
有这样的:
TServerSocket *ServerSocket1;
ServerSocket1->Socket->Listen( "ServerSocket1","127.0.0.1","0",4096,5);

结果报错: [C++ Error] Unit2.cpp(32): E2247 '_fastcall TServerWinSocket::Listen(AnsiString &,AnsiString &,AnsiString &,unsigned short,int)' is not accessible

请问是什么原因啊?是不是只有把TServerSocket改为TServerWinSocket啊??

其他的函数比如SendBuf等也没问题啊??


...全文
85 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Amour81 2005-04-21
  • 打赏
  • 举报
回复
那ServerSocket1就不能LISTEN
要监听的话就只能用TServerWinSocket了??
leonatcs 2005-04-19
  • 打赏
  • 举报
回复
TServerWinSocket::Listen不可访问,
八成是私有函数吧!
class TServerWinSocket
{
private: Listen();
}
happyct 2005-04-19
  • 打赏
  • 举报
回复
ServerSocket这么用不太好吧..
wilsonloveada 2005-04-19
  • 打赏
  • 举报
回复
if(WSAStartup(MAKEWORD(2,2),&wsd)!=0)
{
printf("\nWSAStartup() failed:%d",GetLastError());
__leave;
}
sListen=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if(sListen==INVALID_SOCKET)
{
printf("\nsocket() failed:%d",GetLastError());
__leave;
}
Local.sin_addr.s_addr=htonl(INADDR_ANY);
Local.sin_family=AF_INET;
Local.sin_port=htons(ListenPort);

Target.sin_family=AF_INET;
Target.sin_addr.s_addr=inet_addr(TargetIP);
Target.sin_port=htons(TargetPort);

if(bind(sListen,(struct sockaddr
*)&Local,sizeof(Local))==SOCKET_ERROR)
{
printf("\nbind() failed:%d",GetLastError());
__leave;
}
if(listen(sListen,1)==SOCKET_ERROR)
{
printf("\nlisten() failed:%d",GetLastError());
__leave;
}

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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