C++Builder中用socketapi来编写网络通讯程序(一)
来源:优易学  2011-11-24 18:34:17   【优易学:中国教育考试门户网】   资料下载   IT书店

 

 if(m_Socket==INVALID_SOCKET){

  sprintf(szTmp,"Failed to create a new socket!,error no:%d",::WSAGetLastError());

  ::MessageBox(0,szTmp,"Error",MB_OK+MB_ICONERROR);

  ::WSACleanup();

  return;

  }

  //bind socket

  struct sockaddr_in client;

  unsigned long nClient;

  memcpy(&nClient,he->h_addr_list[0],sizeof(int));

  if(nClient==INADDR_NONE){

  sprintf(szTmp,"Failed to obtain the local machine's IP!","Error",MB_OK+MB_ICONERROR);

  ::MessageBox(0,szTmp,"Error",MB_OK+MB_ICONERROR);

  closesocket(m_Socket);

  ::WSACleanup();

  return;

  }

  client.sin_family=AF_INET;

  client.sin_port=0;

  client.sin_addr.S_un.S_addr=(int)nClient;

  if(bind(m_Socket,(struct sockaddr*)&client,sizeof(struct sockaddr))){

  sprintf(szTmp,"Failed to bind socket!","Error",MB_OK+MB_ICONERROR);

  closesocket(m_Socket);

  ::WSACleanup();

  return;}

  //connect socket

  struct sockaddr_in To;

  To.sin_family=AF_INET;

  To.sin_port=htons(m_Port);

  To.sin_addr.S_un.S_addr=(int)nAddr;

  fd_set FDSET;

  FD_ZERO(&FDSET);

  FD_SET(m_Socket,&FDSET);

  if(m_Protocol==TCP){

  if(connect(m_Socket,(struct sockaddr*)&To,sizeof(struct sockaddr))){

  sprintf(szTmp,"Failed to connect the object!,error no:%d",::WSAGetLastError());

  ::MessageBox(0,szTmp,"Error",MB_OK+MB_ICONERROR);

  closesocket(m_Socket);

  ::WSACleanup();

  return;

  }

上一页  [1] [2] [3] [4] [5] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训