shù > winsocktapi fēng zhuāng
目录
No. 1
  mfc gōng liǎo liǎng lèi casyncsocket csocket lái fēng zhuāng winsockapi, zhè gěi chéng yuán gōng liǎo gèng jiǎn dān de wǎng luò biān chéng jiē kǒu
  casyncsocket zài jiào céng shàng fēng zhuāng liǎo winsockapi, quē shěng qíng kuàng xiàshǐ yòng gāi lèi chuàng jiàn de socket shì fēi zǔsè de socket, suǒ yòu cāo zuò huì fǎn huí guǒ méi yòu dào jiēguǒfǎn huí wsaewouldblock, biǎo shì shì zǔsè cāo zuò
  csocket jiàn zài casyncsocket de chǔ shàngshì casyncsocket de pài shēng lèi jiù shì quē shěng qíng kuàng xià shǐ yòng gāi lèi chuàng jiàn de socket shì fēi zǔsè de socket, dàn shì csocket de wǎng luò i/o shì zǔsè de zài wán chéng rèn zhī hòu cái fǎn huí。 csocket de zǔsè shì jiàn zài zǔsè” socket de chǔ shàngér shì zàifēi zǔsè” socket shàng shí xiàn de zǔsè cāo zuòzài zǔsè jiān, csocket shí xiàn liǎo běn xiàn chéng de xiāo xún huányīn suī rán shì zǔsè cāo zuòdàn shì bìng yǐng xiǎng xiāo xún huán yòng réng rán chéng jiāo
  casyncsocket
  casyncsocket fēng zhuāng liǎo céng de winsockapi, chéng yuán biàn liàng m_hsocket bǎo cún duì yìng de socket bǐngshǐ yòng casyncsocket de fāng xià
   shǒu xiānzài duī huò zhě zhàn zhōng gòu zào casyncsocket duì xiàng
  casyncsocketsock; huò zhě
  casyncsocket*psock=newcasyncsocket;
   diào yòng create chuàng jiàn socket,
   shǐ yòng quē shěng cān shù chuàng jiàn miàn xiàng lián jiē de socket
  sock.create()
   zhǐ dìng cān shù cān shù chuàng jiàn shǐ yòng shù bào de socket, běn duān kǒu wéi 30
  psocket.create(30,sock_dgrm);
   sān guǒ shì chéng shǐ yòng connect lián jiē dào yuǎn guǒ shì chéng shǐ yòng listen jiān tīng yuǎn de lián jiē qǐng qiú
   shǐ yòng chéng yuán hán shù jìn xíng wǎng luò i/o。
   zuì hòuxiāo huǐ casyncsocket, gòu hán shù diào yòng close chéng yuán hán shù guān socket。
   xià miànfēn casyncsocket de hán shùcóng zhōng kàn dào shì fēng zhuāng céng de winsockapi, jiǎn huà yòu guān cāo zuò dehái kàn dào shì shí xiàn fēi zǔsè de socket fēi zǔsè cāo zuò
  socket duì xiàng de chuàng jiàn kǔn bǎng
  ( 1) create hán shù
   shǒu xiāntǎo lùn create hán shùfēn socket bǐng bèi chuàng jiàn bìng casyncsocket duì xiàng guān lián。 create de shí xiàn xià
  boolcasyncsocket::create(uintnsocketport,intnsockettype,
  longlevent,lpctstrlpszsocketaddress)
  {
  if(socket(nsockettype,levent))
  {
  if(bind(nsocketport,lpszsocketaddress))
  returntrue;
  intnresult=getlasterror();
  close();
  wsasetlasterror(nresult);
  }
  returnfalse;
  }
   zhōng
   cān shù 1 biǎo shì běn socket de duān kǒuquē shěng shì 0, guǒ yào chuàng jiàn shù bào de socket, zhǐ dìng duān kǒu hào
   cān shù 2 biǎo shì běn socket de lèi xíngquē shěng shì sock_stream, biǎo shì miàn xiàng lián jiē lèi xíng
   cān shù 3 shì píng wèibiǎo shì wàng duì běn socket jiān de shì jiànquē shěng shì fd_read|fd_write|fd_oob|fd_accept|fd_connect|fd_close。
   cān shù 4 biǎo shì běn socket de ip zhǐ chuànquē shěng shì null。
  create diào yòng socket hán shù chuàng jiàn socket, bìng kǔn bǎng zài this suǒ zhǐ duì xiàng shàngjiān zhǐ dìng de wǎng luò shì jiàncān shù 2 3 bèi chuán gěi socket hán shù guǒ wàng chuàng jiàn shù bào de socket, yào shǐ yòng quē shěng cān shùzhǐ dìng cān shù 2 shì sock_dgrm。
   guǒ shàng zhòu chéng gōng diào yòng bind gěi xīn de socket fēn pèi duān kǒu ip zhǐ
  ( 2) socket hán shù
   jiē zhefēn socket hán shù shí xiàn xià
  boolcasyncsocket::socket(intnsockettype,longlevent,
  intnprotocoltype,intnaddressformat)
  {
  assert(m_hsocket==invalid_socket);
  m_hsocket=socket(naddressformat,nsockettype,nprotocoltype);
  if(m_hsocket!=invalid_socket)
  {
  casyncsocket::attachhandle(m_hsocket,this,false);
  returnasync_select_(levent);
  }
  returnfalse;
  }
   zhōng
   cān shù 1 biǎo shì socket lèi xíngquē shěng zhí shì sock_stream。
   cān shù 2 biǎo shì wàng jiān de wǎng luò shì jiànquē shěng zhí tóng create, zhǐ dìng liǎo quán shì jiàn
   cān shù 3 biǎo shì shǐ yòng de xié quē shěng shì 0。 shí shàng, sock_stream lèi xíng de socket shǐ yòng tcp xié , sock_dgrm de socket shǐ yòng udp xié
   cān shù 4 biǎo shì zhǐ zhǐ shì), quē shěng zhí shì pf_inet( děng tóng af_inet)。 duì tcp/ip lái shuōxié zhǐ shì tóng zhí de
   zài socket méi yòu bèi chuàng jiàn zhī qiánchéng yuán biàn liàng m_hsocket shì xiào de socket bǐng。 socket hán shù xié 、 socket lèi xíngshǐ yòng de xié děng xìn chuán gěi winsockapi hán shù socket, chuàng jiàn socket。 guǒ chuàng jiàn chéng gōng kǔn bǎng zài this suǒ zhǐ duì xiàng
  ( 3) kǔn bǎng( attatch)
   kǔn bǎng guò chéng lèi windows duì xiàngjiāng zài kuài xiàn chéng zhuàng tài de winsock yìng shè zhōng tiān jiā duì xīn de yìng shè: this suǒ zhǐ duì xiàng xīn chuàng jiàn de socket duì xiàng de yìng shè
   lìng wài guǒ běn kuài xiàn chéng zhuàng tài de“ socket chuāng kǒuméi yòu chuàng jiàn chuàng jiàn gāi chuāng kǒu zài cāo zuò shí yòng lái jiē shōu winsock de tōng zhī xiāo chuāng kǒu bǐng bǎo cún dào kuài xiàn chéng zhuàng tài de m_hsocketwindow biàn liàng zhōnghán shù async_select_ jiāng zhǐ dìng gāi chuāng kǒu wéi wǎng luò shì jiàn xiāo de jiē shōu chuāng kǒu
   hán shù attachhandle de shí xiàn zài liè liǎo
  ( 4) zhǐ dìng yào jiān de wǎng luò shì jiàn
   zài kǔn bǎng wán chéng zhī hòudiào yòng async_select_ zhǐ dìng xīn chuàng jiàn de socket jiāng jiān de wǎng luò shì jiàn。 async_select_ shí xiàn xià
  boolcasyncsocket::async_select_(longlevent)
  {
  assert(m_hsocket!=invalid_socket);
  _afx_sock_thread_state*pstate=_afxsockthreadstate;
  assert(pstate->m_hsocketwindow!=null);
  returnwsaasync_select_(m_hsocket,pstate->m_hsocketwindow,
  wm_socket_notify,levent)!=socket_error;
  }
   hán shù cān shù levent biǎo shì wàng jiān shì de wǎng luò shì jiàn
  _afxsockthreadstate dào de shì dāng qián de kuài xiàn chéng zhuàng tài, m_hsocketwindow shì běn kuài zài dāng qián xiàn chéng de“ socket chuāng kǒu”, zhǐ dìng jiān shì m_hsocket de wǎng luò shì jiàn zhǐ dìng shì jiàn shēnggěi chuāng kǒu m_hsocketwindow sòng wm_socket_notify xiāo
   bèi zhǐ dìng de wǎng luò shì jiàn duì yìng de wǎng luò i/o jiāng shì cāo zuòshì fēi zǔsè cāo zuò zhǐ dìng fr_read dǎo zhì receive shì cāo zuò guǒ néng dào shù fǎn huí cuò wsaewouldblock。 zài shù dào zhī hòu, winsock tōng zhī chuāng kǒu m_hsocketwindow, dǎo zhì onreceive bèi diào yòng
   zhǐ dìng fr_write dǎo zhì send shì cāo zuò shǐ shù méi yòu sòng chū fǎn huí cuò wsaewouldblock。 zài shù sòng zhī hòu, winsock tōng zhī chuāng kǒu m_hsocketwindow, dǎo zhì onsend bèi diào yòng
   zhǐ dìng fr_connect dǎo zhì connect shì cāo zuòhái méi yòu lián jiē shàng jiù fǎn huí cuò xìn wsaewouldblock, zài lián jiē wán chéng zhī hòu, winsock tōng zhī chuāng kǒu m_hsocketwindow, dǎo zhì onconnect bèi diào yòng
   duì wǎng luò shì jiànjiù jiě shì liǎo
   suǒ shǐ yòng casyncsocket shí guǒ shǐ yòng create quē shěng chuàng jiàn socket, suǒ yòu wǎng luò i/o dōushì cāo zuòjìn xíng yòu guān wǎng luò i/o shí gài xià de xiāng guān hán shù
  onaccept、 onclose、 onconnect、 onoutofbanddata、 onreceive、 onsend。
  ( 5) bind hán shù
   jīng guò shàng shù guò chéng, socket chuàng jiàn wán xià miàndiào yòng bind hán shù gěi m_hsocket zhǐ dìng běn duān kǒu ip zhǐ。 bind de shí xiàn xià
  boolcasyncsocket::bind(uintnsocketport,lpctstrlpszsocketaddress)
  {
  uses_conversion;
  // shǐ yòng winsock de zhǐ jié gòu gòu zào zhǐ xìn
  sockaddr_insockaddr;
  memset(&sockaddr,0,sizeof(sockaddr));
  // dào zhǐ cān shù de zhí
  lpstrlpszascii=t2a((lptstr)lpszsocketaddress);
  // zhǐ dìng shì internet zhǐ lèi xíng
  sockaddr.sin_family=af_inet;
  if(lpszascii==null)
  // méi yòu zhǐ dìng zhǐ dòng dào běn ip zhǐ
  // 32 de shù cóng zhù jié zhuǎn huàn chéng wǎng luò jié
  sockaddr.sin_addr.s_addr=htonl(inaddr_any);
  else
  {
  // dào zhǐ
  dwordlresult=inet_addr(lpszascii);
  if(lresult==inaddr_none)
  {
  wsasetlasterror(wsaeinval);
  returnfalse;
  }
  sockaddr.sin_addr.s_addr=lresult;
  }
  // guǒ duān kǒu wéi 0, winsock fēn pèi duān kǒu( 1024 héng 5000)
  // 16 de shù cóng zhù jié zhuǎn huàn chéng wǎng luò jié
  sockaddr.sin_port=htons((u_short)nsocketport);
  //bind diào yòng winsockapi hán shù bind
  returnbind((sockaddr*)&sockaddr,sizeof(sockaddr));
  }
   zhōnghán shù cān shù 1 zhǐ dìng liǎo duān kǒucān shù 2 zhǐ dìng liǎo bāo hán běn zhǐ de chuànquē shěng shì null。
   hán shù bind shǒu xiān shǐ yòng jié gòu sockaddr_in gòu zào zhǐ xìn gāi jié gòu de sin_family biǎo shì zhǐ shì( tcp/ip tóng xié ), zhí wéi af_inet( internet zhǐ shì); sin_port biǎo shì duān kǒu guǒ cān shù 1 wéi 0, winsock fēn pèi duān kǒujǐ fàn wéi zài 1024 5000 zhī jiān sin_addr shì biǎo shì zhǐ xìn shì lián zhōng s_addr biǎo shì xià xíng shì de chuàn,“ 28.56.22.8”。 guǒ cān shù méi yòu zhǐ dìng zhǐ winsock dòng dào běn ip zhǐ guǒ yòu wǎng shǐ yòng zhōng de zhǐ)。
  ( 6) zǒng jié create de guò chéng
   shǒu xiāndiào yòng socket hán shù chuàng jiàn socket; rán hòu chuàng jiàn de socket duì xiàng yìng shè dào casyncsocket duì xiàngkǔn bǎng zài ), zhǐ dìng běn socket yào tōng zhī de wǎng luò shì jiànbìng chuàng jiàn “ socket chuāng kǒulái jiē shōu wǎng luò shì jiàn xiāo zuì hòuzhǐ dìng socket de běn xìn
   xià shì shǐ yòng chéng yuán hán shù connect lián jiē yuǎn zhù pèi zhì socket de yuǎn xìn hán shù connect lèi bind, zhǐ dìng de yuǎn zhǐ zhuǎn huàn chéng sockaddr_in duì xiàng biǎo shì de zhǐ xìn bāo kuò wǎng luò jié de zhuǎn huàn), rán hòu diào yòng winsock hán shù connect lián jiē yuǎn zhù pèi zhì socket de yuǎn duān kǒu yuǎn ip zhǐ
No. 2
  MFC gōng liǎo liǎng lèi CAsyncSocket CSocket lái fēng zhuāng WinSockAPI, zhè gěi chéng yuán gōng liǎo gèng jiǎn dān de wǎng luò biān chéng jiē kǒu
  CAsyncSocket zài jiào céng shàng fēng zhuāng liǎo WinSockAPI, quē shěng qíng kuàng xiàshǐ yòng gāi lèi chuàng jiàn de socket shì fēi zǔsè de socket, suǒ yòu cāo zuò huì fǎn huí guǒ méi yòu dào jiēguǒfǎn huí WSAEWOULDBLOCK, biǎo shì shì zǔsè cāo zuò
  CSocket jiàn zài CAsyncSocket de chǔ shàngshì CAsyncSocket de pài shēng lèi jiù shì quē shěng qíng kuàng xià shǐ yòng gāi lèi chuàng jiàn de socket shì fēi zǔsè de socket, dàn shì CSocket de wǎng luò I/O shì zǔsè de zài wán chéng rèn zhī hòu cái fǎn huí。 CSocket de zǔsè shì jiàn zàizǔsè” socket de chǔ shàngér shì zàifēi zǔsè” socket shàng shí xiàn de zǔsè cāo zuòzài zǔsè jiān, CSocket shí xiàn liǎo běn xiàn chéng de xiāo xún huányīn suī rán shì zǔsè cāo zuòdàn shì bìng yǐng xiǎng xiāo xún huán yòng réng rán chéng jiāo
  CAsyncSocket
  CAsyncSocket fēng zhuāng liǎo céng de WinSockAPI, chéng yuán biàn liàng m_hSocket bǎo cún duì yìng de socket bǐngshǐ yòng CAsyncSocket de fāng xià
   shǒu xiānzài duī huò zhě zhàn zhōng gòu zào CAsyncSocket duì xiàng
  CAsyncSocketsock; huò zhě
  CAsyncSocket*pSock=newCAsyncSocket;
   diào yòng Create chuàng jiàn socket,
   shǐ yòng quē shěng cān shù chuàng jiàn miàn xiàng lián jiē de socket
  sock.Create()
   zhǐ dìng cān shù cān shù chuàng jiàn shǐ yòng shù bào de socket, běn duān kǒu wéi 30
  pSocket.Create(30,SOCK_DGRM);
   sān guǒ shì chéng shǐ yòng Connect lián jiē dào yuǎn guǒ shì chéng shǐ yòng Listen jiān tīng yuǎn de lián jiē qǐng qiú
   shǐ yòng chéng yuán hán shù jìn xíng wǎng luò I/O。
   zuì hòuxiāo huǐ CAsyncSocket, gòu hán shù diào yòng Close chéng yuán hán shù guān socket。
   xià miànfēn CAsyncSocket de hán shùcóng zhōng kàn dào shì fēng zhuāng céng de WinSockAPI, jiǎn huà yòu guān cāo zuò dehái kàn dào shì shí xiàn fēi zǔsè de socket fēi zǔsè cāo zuò
  socket duì xiàng de chuàng jiàn kǔn bǎng
  ( 1) Create hán shù
   shǒu xiāntǎo lùn Create hán shùfēn socket bǐng bèi chuàng jiàn bìng CAsyncSocket duì xiàng guān lián。 Create de shí xiàn xià
  BOOLCAsyncSocket::Create(UINTnSocketPort,intnSocketType,
  longlEvent,LPCTSTRlpszSocketAddress)
  {
  if(Socket(nSocketType,lEvent))
  {
  if(Bind(nSocketPort,lpszSocketAddress))
  returnTRUE;
  intnResult=GetLastError();
  Close();
  WSASetLastError(nResult);
  }
  returnFALSE;
  }
   zhōng
   cān shù 1 biǎo shì běn socket de duān kǒuquē shěng shì 0, guǒ yào chuàng jiàn shù bào de socket, zhǐ dìng duān kǒu hào
   cān shù 2 biǎo shì běn socket de lèi xíngquē shěng shì SOCK_STREAM, biǎo shì miàn xiàng lián jiē lèi xíng
   cān shù 3 shì píng wèibiǎo shì wàng duì běn socket jiān de shì jiànquē shěng shì FD_READ|FD_WRITE|FD_OOB|FD_ACCEPT|FD_CONNECT|FD_CLOSE。
   cān shù 4 biǎo shì běn socket de IP zhǐ chuànquē shěng shì NULL。
  Create diào yòng Socket hán shù chuàng jiàn socket, bìng kǔn bǎng zài this suǒ zhǐ duì xiàng shàngjiān zhǐ dìng de wǎng luò shì jiàncān shù 2 3 bèi chuán gěi Socket hán shù guǒ wàng chuàng jiàn shù bào de socket, yào shǐ yòng quē shěng cān shùzhǐ dìng cān shù 2 shì SOCK_DGRM。
   guǒ shàng zhòu chéng gōng diào yòng bind gěi xīn de socket fēn pèi duān kǒu IP zhǐ
  ( 2) Socket hán shù
   jiē zhefēn Socket hán shù shí xiàn xià
  BOOLCAsyncSocket::Socket(intnSocketType,longlEvent,
  intnProtocolType,intnAddressFormat)
  {
  ASSERT(m_hSocket==INVALID_SOCKET);
  m_hSocket=socket(nAddressFormat,nSocketType,nProtocolType);
  if(m_hSocket!=INVALID_SOCKET)
  {
  CAsyncSocket::AttachHandle(m_hSocket,this,FALSE);
  returnAsyncSelect(lEvent);
  }
  returnFALSE;
  }
   zhōng
   cān shù 1 biǎo shì Socket lèi xíngquē shěng zhí shì SOCK_STREAM。
   cān shù 2 biǎo shì wàng jiān de wǎng luò shì jiànquē shěng zhí tóng Create, zhǐ dìng liǎo quán shì jiàn
   cān shù 3 biǎo shì shǐ yòng de xié quē shěng shì 0。 shí shàng, SOCK_STREAM lèi xíng de socket shǐ yòng TCP xié , SOCK_DGRM de socket shǐ yòng UDP xié
   cān shù 4 biǎo shì zhǐ zhǐ shì), quē shěng zhí shì PF_INET( děng tóng AF_INET)。 duì TCP/IP lái shuōxié zhǐ shì tóng zhí de
   zài socket méi yòu bèi chuàng jiàn zhī qiánchéng yuán biàn liàng m_hSocket shì xiào de socket bǐng。 Socket hán shù xié 、 socket lèi xíngshǐ yòng de xié děng xìn chuán gěi WinSockAPI hán shù socket, chuàng jiàn socket。 guǒ chuàng jiàn chéng gōng kǔn bǎng zài this suǒ zhǐ duì xiàng
  ( 3) kǔn bǎng( Attatch)
   kǔn bǎng guò chéng lèi Windows duì xiàngjiāng zài kuài xiàn chéng zhuàng tài de WinSock yìng shè zhōng tiān jiā duì xīn de yìng shè: this suǒ zhǐ duì xiàng xīn chuàng jiàn de socket duì xiàng de yìng shè
   lìng wài guǒ běn kuài xiàn chéng zhuàng tài de“ socket chuāng kǒuméi yòu chuàng jiàn chuàng jiàn gāi chuāng kǒu zài cāo zuò shí yòng lái jiē shōu WinSock de tōng zhī xiāo chuāng kǒu bǐng bǎo cún dào kuài xiàn chéng zhuàng tài de m_hSocketWindow biàn liàng zhōnghán shù AsyncSelect jiāng zhǐ dìng gāi chuāng kǒu wéi wǎng luò shì jiàn xiāo de jiē shōu chuāng kǒu
   hán shù AttachHandle de shí xiàn zài liè liǎo
  ( 4) zhǐ dìng yào jiān de wǎng luò shì jiàn
   zài kǔn bǎng wán chéng zhī hòudiào yòng AsyncSelect zhǐ dìng xīn chuàng jiàn de socket jiāng jiān de wǎng luò shì jiàn。 AsyncSelect shí xiàn xià
  BOOLCAsyncSocket::AsyncSelect(longlEvent)
  {
  ASSERT(m_hSocket!=INVALID_SOCKET);
  _AFX_SOCK_THREAD_STATE*pState=_afxSockThreadState;
  ASSERT(pState->m_hSocketWindow!=NULL);
  returnWSAAsyncSelect(m_hSocket,pState->m_hSocketWindow,
  WM_SOCKET_NOTIFY,lEvent)!=SOCKET_ERROR;
  }
   hán shù cān shù lEvent biǎo shì wàng jiān shì de wǎng luò shì jiàn
  _afxSockThreadState dào de shì dāng qián de kuài xiàn chéng zhuàng tài, m_hSocketWindow shì běn kuài zài dāng qián xiàn chéng de“ socket chuāng kǒu”, zhǐ dìng jiān shì m_hSocket de wǎng luò shì jiàn zhǐ dìng shì jiàn shēnggěi chuāng kǒu m_hSocketWindow sòng WM_SOCKET_NOTIFY xiāo
   bèi zhǐ dìng de wǎng luò shì jiàn duì yìng de wǎng luò I/O jiāng shì cāo zuòshì fēi zǔsè cāo zuò zhǐ dìng FR_READ dǎo zhì Receive shì cāo zuò guǒ néng dào shù fǎn huí cuò WSAEWOULDBLOCK。 zài shù dào zhī hòu, WinSock tōng zhī chuāng kǒu m_hSocketWindow, dǎo zhì OnReceive bèi diào yòng
   zhǐ dìng FR_WRITE dǎo zhì Send shì cāo zuò shǐ shù méi yòu sòng chū fǎn huí cuò WSAEWOULDBLOCK。 zài shù sòng zhī hòu, WinSock tōng zhī chuāng kǒu m_hSocketWindow, dǎo zhì OnSend bèi diào yòng
   zhǐ dìng FR_CONNECT dǎo zhì Connect shì cāo zuòhái méi yòu lián jiē shàng jiù fǎn huí cuò xìn WSAEWOULDBLOCK, zài lián jiē wán chéng zhī hòu, WinSock tōng zhī chuāng kǒu m_hSocketWindow, dǎo zhì OnConnect bèi diào yòng
   duì wǎng luò shì jiànjiù jiě shì liǎo
   suǒ shǐ yòng CAsyncSocket shí guǒ shǐ yòng Create quē shěng chuàng jiàn socket, suǒ yòu wǎng luò I/O dōushì cāo zuòjìn xíng yòu guān wǎng luò I/O shí gài xià de xiāng guān hán shù
  OnAccept、 OnClose、 OnConnect、 OnOutOfBandData、 OnReceive、 OnSend。
  ( 5) Bind hán shù
   jīng guò shàng shù guò chéng, socket chuàng jiàn wán xià miàndiào yòng Bind hán shù gěi m_hSocket zhǐ dìng běn duān kǒu IP zhǐ。 Bind de shí xiàn xià
  BOOLCAsyncSocket::Bind(UINTnSocketPort,LPCTSTRlpszSocketAddress)
  {
  USES_CONVERSION;
  // shǐ yòng WinSock de zhǐ jié gòu gòu zào zhǐ xìn
  SOCKADDR_INsockAddr;
  memset(&sockAddr,0,sizeof(sockAddr));
  // dào zhǐ cān shù de zhí
  LPSTRlpszAscii=T2A((LPTSTR)lpszSocketAddress);
  // zhǐ dìng shì Internet zhǐ lèi xíng
  sockAddr.sin_family=AF_INET;
  if(lpszAscii==NULL)
  // méi yòu zhǐ dìng zhǐ dòng dào běn IP zhǐ
  // 32 de shù cóng zhù jié zhuǎn huàn chéng wǎng luò jié
  sockAddr.sin_addr.s_addr=htonl(INADDR_ANY);
  else
  {
  // dào zhǐ
  DWORDlResult=inet_addr(lpszAscii);
  if(lResult==INADDR_NONE)
  {
  WSASetLastError(WSAEINVAL);
  returnFALSE;
  }
  sockAddr.sin_addr.s_addr=lResult;
  }
  // guǒ duān kǒu wéi 0, WinSock fēn pèi duān kǒu( 1024 héng 5000)
  // 16 de shù cóng zhù jié zhuǎn huàn chéng wǎng luò jié
  sockAddr.sin_port=htons((u_short)nSocketPort);
  //Bind diào yòng WinSockAPI hán shù bind
  returnBind((SOCKADDR*)&sockAddr,sizeof(sockAddr));
  }
   zhōnghán shù cān shù 1 zhǐ dìng liǎo duān kǒucān shù 2 zhǐ dìng liǎo bāo hán běn zhǐ de chuànquē shěng shì NULL。
   hán shù Bind shǒu xiān shǐ yòng jié gòu SOCKADDR_IN gòu zào zhǐ xìn gāi jié gòu de sin_family biǎo shì zhǐ shì( TCP/IP tóng xié ), zhí wéi AF_INET( Internet zhǐ shì); sin_port biǎo shì duān kǒu guǒ cān shù 1 wéi 0, WinSock fēn pèi duān kǒujǐ fàn wéi zài 1024 5000 zhī jiān sin_addr shì biǎo shì zhǐ xìn shì lián zhōng s_addr biǎo shì xià xíng shì de chuàn,“ 28.56.22.8”。 guǒ cān shù méi yòu zhǐ dìng zhǐ WinSock dòng dào běn IP zhǐ guǒ yòu wǎng shǐ yòng zhōng de zhǐ)。
  ( 6) zǒng jié Create de guò chéng
   shǒu xiāndiào yòng socket hán shù chuàng jiàn socket; rán hòu chuàng jiàn de socket duì xiàng yìng shè dào CAsyncSocket duì xiàngkǔn bǎng zài ), zhǐ dìng běn socket yào tōng zhī de wǎng luò shì jiànbìng chuàng jiàn “ socket chuāng kǒulái jiē shōu wǎng luò shì jiàn xiāo zuì hòuzhǐ dìng socket de běn xìn
   xià shì shǐ yòng chéng yuán hán shù Connect lián jiē yuǎn zhù pèi zhì socket de yuǎn xìn hán shù Connect lèi Bind, zhǐ dìng de yuǎn zhǐ zhuǎn huàn chéng SOCKADDR_IN duì xiàng biǎo shì de zhǐ xìn bāo kuò wǎng luò jié de zhuǎn huàn), rán hòu diào yòng WinSock hán shù Connect lián jiē yuǎn zhù pèi zhì socket de yuǎn duān kǒu yuǎn IP zhǐ