ÀîÄȶàýÌåÍøÂçͨÐż¼Êõ

2026/4/28 3:18:25

ͼ5 ͼÏñÊý¾ÝÖ¡·¢ËÍÁ÷³Ìͼ

ͼ6 ͼÏñÊý¾ÝÖ¡½ÓÊÕÁ÷³Ìͼ

ÒôƵÐźÅÊÇһάÐźţ¬ÒôƵÊý¾ÝµÄÊÕ·¢¸üΪ¼òµ¥£¬ÔÚÕâÀï¾Í²»×÷¾ßÌå·ÖÎö¡£

3ϵͳ¾ßÌåÉè¼Æ

3.1ºô½Ð´¦Àí

3.1.1ºô½Ð´¦ÀíÄ£¿é

ÔÚʵÏÖÓïÒôÊÓÆµÁÄÌìʱ£¬²ÉÓõÄÊÇ»ùÓÚUDPÌ×½Ó×ֵĵã¶Ôµãģʽ£¬¶øUDPÃæÏòµÄÊÇÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬ÆäÌ×½Ó×ÖµÄʹÓÃÈçͼ7Ëùʾ¡£

ͼ7 UDPÌ×½Ó×ÖµÄʹÓÃ

3.1.2ºô½Ð´¦Àí¹Ø¼ü´úÂë

¿Í»§¶ËÇëÇóÁ¬½ÓỊ̈߳¨ºô½Ð´¦Àí£©¹Ø¼ü´úÂëÈçÏ£º DWORD WINAPI ConnectThreadFunc(LPVOID pParam) {

CChatRoomDlg *pChatRoom = (CChatRoomDlg *)pParam; ASSERT(pChatRoom ! = NULL);

pChatRoom ->m_ConnectSock = socket (AF_INET ,SOCK_STREAM , IPPROTO_TCP); if ( pChatRoom->m_ConnectSock == INVALID_SOCKET) { AfxMessageBox(_T(\н¨Socket ʧ°Ü£¡ \

return FALSE; }

CString strServIp;

pChatRoom->GetDlgItemText(IDC_IP_ADDR, strServIp); int iPort = pChatRoom ->GetDlgItemInt (IDC_CONNECT_PORT); if( iPort <= 0 || iPort > 65535 ) {

AfxMessageBox(_T(\ÇëÊäÈëºÏÊʵĶ˿ڣº1 - 65535\goto __Error_End; }

char szIpAddr[16] = {0}; USES_CONVERSION;

strcpy_s(szIpAddr, 16, T2A(strServIp)); sockaddr_in server;

server.sin_family = AF_INET; server.sin_port = htons(iPort);

server.sin_addr.s_addr = inet_addr(szIpAddr);

if(connect(pChatRoom->m_ConnectSock,(struct sockaddr*)&server, sizeof(struct sockaddr)) == SOCKET_ERROR ) {

AfxMessageBox(_T(\Á¬½Óʧ°Ü£¬ÇëÖØÊÔ£¡ \goto __Error_End; }

pChatRoom->ShowMsg(_T(\ϵͳÐÅÏ¢£º Á¬½Ó·þÎñÆ÷³É¹¦£¡ \while( TRUE ) {

if ( SOCKET_Select(pChatRoom->m_ConnectSock) ) { TCHAR szBuf[MAX_BUF_SIZE] = {0};

int iRet = recv (pChatRoom->m_ConnectSock, (char*)szBuf, MAX_BUF_SIZE, 0); if ( iRet > 0 ) {

pChatRoom->ShowMsg(szBuf);


ÀîÄȶàýÌåÍøÂçͨÐż¼Êõ.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ
ËÑË÷¸ü¶à¹ØÓÚ£º ÀîÄȶàýÌåÍøÂçͨÐż¼Êõ µÄÎĵµ
Ïà¹ØÍÆ¼ö
Ïà¹ØÔĶÁ
¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩

ÏÂÔØ±¾ÎĵµÐèÒªÖ§¸¶ 10 Ôª

Ö§¸¶·½Ê½£º

¿ªÍ¨VIP°üÔ»áÔ± ÌØ¼Û£º29Ôª/ÔÂ

×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºxuecool-com QQ£º370150219