有容乃大 无欲则刚

C++博客 首页 新随笔 联系 聚合 管理
  10 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks
#include <Winsock2.h>
#include 
<stdio.h>
#pragma comment(lib,
"ws2_32.lib")

void main() 

    WORD wVersionRequested; 
    WSADATA wsaData; 
    
int err; 

    wVersionRequested
=MAKEWORD(1,1); 

    err 
= WSAStartup(wVersionRequested, &wsaData); 
    
if (err != 0
    


        
return
    }
 

    
if (LOBYTE(wsaData.wVersion)!=1 || 
        HIBYTE(wsaData.wVersion)
!=1
    

        WSACleanup(); 
        
return
    }
 

    SOCKET sockSrv
=socket(AF_INET,SOCK_DGRAM,0);

    SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr
=htonl(INADDR_ANY);
    addrSrv.sin_family
=AF_INET;
    addrSrv.sin_port
=htons(6000);

    bind(sockSrv,(SOCKADDR
*)&addrSrv,sizeof(SOCKADDR));

    
char recvBuf[100];
    
char sendBuf[100];
    
char tempBuf[200];

    SOCKADDR_IN addrClient;
    
int len=sizeof(SOCKADDR);

    
while(1)
    
{
        recvfrom(sockSrv,recvBuf,
100,0,(SOCKADDR*)&addrClient,&len);
        
if('q'==recvBuf[0])
        
{
            sendto(sockSrv,
"q",strlen("q")+1,0,(SOCKADDR*)&addrClient,len);
            printf(
"Chat end!%n");
            
break;
        }

        sprintf(tempBuf,
"%s say:%s",inet_ntoa(addrClient.sin_addr),recvBuf);
        printf(
"%s\n",tempBuf);
        printf(
"Please input data:\n");
        gets(sendBuf);
        sendto(sockSrv,sendBuf,strlen(sendBuf)
+1,0,(SOCKADDR*)&addrClient,len);
    }

    closesocket(sockSrv);
    WSACleanup();
}


#include <Winsock2.h>
#include 
<stdio.h>
#pragma comment(lib,
"ws2_32.lib")

void main() 

    WORD wVersionRequested; 
    WSADATA wsaData; 
    
int err; 

    wVersionRequested
=MAKEWORD(1,1); 

    err 
= WSAStartup(wVersionRequested, &wsaData); 
    
if (err != 0
    


        
return
    }
 

    
if (LOBYTE(wsaData.wVersion)!=1 || 
        HIBYTE(wsaData.wVersion)
!=1
    

        WSACleanup(); 
        
return
    }
 
    
    SOCKET sockClient
=socket(AF_INET, SOCK_DGRAM,0);

    SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr
=inet_addr("127.0.0.1");
    addrSrv.sin_family
=AF_INET;
    addrSrv.sin_port
=htons(6000);
     
char recvBuf[100];
     
char sendBuf[100];
     
char tempBuf[200];

     
int len=sizeof(SOCKADDR);

     
while(1)
     
{
         printf(
"please input data:\n");
         gets(sendBuf);
         sendto(sockClient,sendBuf,strlen(sendBuf)
+1,0,
             (SOCKADDR
*)&addrSrv,len);
         recvfrom(sockClient,recvBuf,
100,0,(SOCKADDR*)&addrSrv,&len);
         
if('q'==recvBuf[0])
         
{
             sendto(sockClient,
"q",strlen("q")+1,0,
                 (SOCKADDR
*)&addrSrv,len);
             printf(
"Chat end!\n");
             
break;
         }

         sprintf(tempBuf,
"%s say:%s",inet_ntoa(addrSrv.sin_addr),recvBuf);
         printf(
"%s\n",tempBuf);
     }

     closesocket(sockClient);
     WSACleanup();
}
posted on 2009-07-22 00:07 huyvanpull 阅读(243) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理