SOCKET对象发送消息问题?

a1231707 2007-01-02 03:55:38
//m_Socket和client分别是SOCKET和struct sockaddr_in的全局对象
void __fastcall TForm1::Button1Click(TObject *Sender)
{
WSADATA wsaD;
WORD wVersionRequested = MAKEWORD(1,1);
if(WSAStartup(wVersionRequested, &wsaD) !=0 ){
MessageDlg("错误1!",mtInformation,TMsgDlgButtons()<<mbOK,0);
return;
}

if((m_Socket = socket(AF_INET,SOCK_STREAM,0)) == INVALID_SOCKET ){
MessageDlg("错误2!",mtInformation,TMsgDlgButtons()<<mbOK,0);
return;
}
client.sin_family = AF_INET;
client.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
client.sin_port = htons( 878787 );
int len = sizeof(client);
if(connect( m_Socket, (struct sockaddr*)&client, sizeof( client)) == SOCKET_ERROR ){
MessageDlg("错误3!",mtInformation,TMsgDlgButtons()<<mbOK,0);
return;
}

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
char buf[5] = {'1','2','3','4','5'};
if( send( m_Socket, buf, 5, 0 ) == SOCKET_ERROR ){
MessageDlg("错误4!",mtInformation,TMsgDlgButtons()<<mbOK,0);
return;
}
}

问题是这样的,按Button1连接成功(没有出错,服务器端也能收到连接成功的信息)之后,再按Button2为什么还会出错?哪位大侠能告诉我少了哪个步骤?
...全文
263 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sbkopoky 2007-02-17
  • 打赏
  • 举报
回复
有一个香港和悦网络电话的源文件 ,有兴趣妨进入我的BLOG看看
laowang2 2007-01-10
  • 打赏
  • 举报
回复
帮顶
wcpjavastudy 2007-01-10
  • 打赏
  • 举报
回复
邀请c/c++学习的各路好友加入c/c++学习群:17185131
shadowstar 2007-01-02
  • 打赏
  • 举报
回复
楼主把 ws2_32.lib 这个文件加到工程里应该可以。
shadowstar 2007-01-02
  • 打赏
  • 举报
回复
应用程序没有调用 WSAStartup,或者 WSAStartup 失败。
a1231707 2007-01-02
  • 打赏
  • 举报
回复
void __fastcall TListenThread::Execute(){
while(!Terminated){
if(m_AcceptSocket = accept(AcppetSocket,(struct sockaddr*)&client,&nLen)!=INVALID_SOCKET){
return;
}
}
}
?没人知道么
这是服务端的部分代码,用来测试的,m_AccptSocket和client是全局对象
a1231707 2007-01-02
  • 打赏
  • 举报
回复
返回10093?
shadowstar 2007-01-02
  • 打赏
  • 举报
回复
WSAGetLastError 看一下是什么错误。

1,317

社区成员

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

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