`
paulfzm
  • 浏览: 888441 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

VC++ UDP通信程序

    博客分类:
  • vc++
阅读更多

UDP的服务器端:(UdpSrv.cpp)
 
#i nclude "Winsock2.h"
#i nclude "stdio.h"
 
void main()
{
//初始化socket库
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(4000) ;
 
bind( sockSrv , (SOCKADDR*)&addrSrv , sizeof(SOCKADDR) ) ;
 
char sendBuf[100] ;
char recvBuf[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() ;
}
UDP的客户端:(UdpClient.cpp)
 
#i nclude "Winsock2.h"
#i nclude "stdio.h"
 
void main()
{
//³õʼ»¯socket¿â
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(4000) ;
 
char sendBuf[100] ;
char recvBuf[100] ;
char tempBuf[200] ;
 
int len = sizeof(SOCKADDR) ;
 
while (1)
{
   printf("Please input data:\n");
   gets( sendBuf ) ;
   sendto( sockClient , sendBuf , strlen(sendBuf) , 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!") ;
    break ;
   }
   sprintf( tempBuf , "%s say: %s\n" , inet_ntoa(addrSrv.sin_addr) , recvBuf ) ;
   printf( tempBuf ) ;
}
 
closesocket(sockClient) ;
WSACleanup() ;
}

分享到:
评论

相关推荐

    VC++UDP测试程序,MFC程序,包含服务器和客户端-VC++ UDP

    CSocket类提供了打开、关闭、发送、接收等方法,简化了UDP通信的实现。对于服务器,可以使用CSocketServer类,而客户端则可以使用CSocket类。 在压缩包文件"TestUDP"中,可能包含了服务器和客户端的源代码。这些...

    Udp.rar_UDP对话框程序_VC++ UDP程序_vc中udp

    在这个"Udp.rar"压缩包中,包含了一个基于VC++的对话框程序,该程序实现了UDP通信功能,适用于局域网环境。在VC++环境下,开发者通常使用MFC(Microsoft Foundation Classes)库来创建对话框界面,而MFC也提供了对...

    VC++ UDP编程实例

    UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,它是Internet协议...理解这些概念和函数的使用是实现UDP通信的关键。通过Chat实例,你可以进一步学习和实践这些知识,掌握UDP网络编程的基本技巧。

    VC++ UDP实现的服务器与客户端的双端视频通信完整源码。

    在VC++中实现UDP通信,我们需要使用Winsock库,它是Windows平台上的网络编程接口。创建一个UDP套接字涉及到以下步骤: 1. **初始化Winsock**:调用`WSAStartup`函数来加载Winsock动态链接库并设置版本信息。 2. **...

    VC++UDP网络聊天程序

    【VC++ UDP网络聊天程序】是一种基于VC++编程语言实现的通信应用,它利用了无连接的用户数据报协议(UDP)进行数据传输。UDP是Internet协议簇中的一个基础部分,与TCP(传输控制协议)相比,UDP提供的是不可靠但高效...

    VC++ UDP 发送接收

    在VC++环境中开发UDP通信程序,主要涉及Windows套接字API(Winsock),这是一个应用程序接口(API),用于网络通信。 首先,我们需要在VC++项目中引入Winsock库。在`stdafx.h`或相应的头文件中包含`winsock2.h`和`...

    VC6.0实现的UDP通信源码

    【标题】"VC6.0实现的UDP通信源码"涉及了使用Microsoft Visual C++ 6.0(简称VC6.0)开发环境进行网络编程,特别是基于用户数据报协议(UDP)的通信。UDP是一种无连接的传输层协议,它不提供连接建立和释放,也不...

    UDP_UDP通信;C++_

    UDP(User Datagram Protocol)是一种...理解并掌握这些概念和函数,就能编写出能够实现两台设备间UDP通信的客户端和服务端程序。在实际开发中,还需要根据具体需求进行优化和扩展,例如添加加密、身份验证等高级功能。

    VC++网络通信程序开发基础及实例解析3

    在VC++环境中进行网络通信程序开发是一项复杂但充满挑战的任务,尤其对于初学者而言。"VC++网络通信程序开发基础及实例解析3"是针对这一主题的深入学习资源,提供了第8章和第9章的配套程序,帮助读者通过实践来理解...

    VC6实现UDP通信

    总的来说,通过理解和实践这些步骤,开发者可以在VC6中构建可靠的UDP通信应用程序。记住,尽管UDP提供了快速的数据传输,但需要开发者自己处理数据的顺序和完整性问题。在适当的情况下,选择UDP可以带来更高的性能和...

    基于VC++的UDP文件传输系统

    在本文中,我们将深入探讨如何使用VC++进行UDP文件传输系统的开发。首先,我们需要了解UDP(User Datagram Protocol)和VC++的基本概念。 UDP是一种无连接的传输层协议,与TCP(Transmission Control Protocol)...

    vc++用UDP实现的一个简单的聊天程序

    在VC++环境中,我们可以使用Winsock库来实现UDP通信。Winsock是Windows平台上的网络编程接口,提供了TCP/IP协议栈的访问。首先,我们需要包含相关的头文件并初始化Winsock库: ```cpp #include #include int ...

    VC++网络通信程序开发基础及实例解析4

    在VC++环境中进行网络通信程序的开发是一项技术性较强的工作,尤其对于初学者来说,可能会遇到许多挑战。本文将深入探讨VC++网络编程的基础知识,并通过实例解析来帮助理解相关概念。"VC++网络通信程序开发基础及...

    vc++网络通信编程实用案例精选

    在IT领域,网络通信编程是不可或缺的一部分,尤其是在开发跨平台应用程序时。VC++,全称为Microsoft Visual C++,是一款强大的Windows平台下的C++集成开发环境,它提供了丰富的库支持,包括用于网络通信的Winsock库...

    vc++ udp客服端

    通过阅读和理解这些代码,开发者可以学习如何在VC++环境下组织和编写UDP客户端程序,以及如何添加详细的代码注释,这对于理解和维护代码至关重要。 在实际应用中,开发者还可能遇到网络延迟、丢包等问题,需要根据...

    UDP通信程序

    在UDP通信程序中,通常涉及到客户端和服务器之间的数据交换,这在很多实时应用,如在线游戏、视频流媒体和网络电话等场景中非常常见。在使用VC++(Visual C++)进行开发时,我们可以利用Windows套接字API(Winsock)...

    VC++网络通信程序开发基础及实例解析

    《VC++网络通信程序开发基础及实例解析》是关于使用Microsoft Visual C++(简称VC++)进行网络通信程序设计的一本书。此书深入浅出地介绍了如何利用VC++的MFC(Microsoft Foundation Classes)库和其他相关技术来...

    vc++写的 UDP 例子

    客户端和服务器在UDP通信中扮演着不同的角色。客户端通常发起请求,而服务器则接收并响应这些请求。以下是对这两个部分的简要说明: 1. 客户端: - 创建套接字:客户端首先使用socket()函数创建一个UDP套接字。 -...

    VC++网络通信实例.zip

    通过这些实例,开发者可以深入理解TCP和UDP通信的基本流程,学习如何在VC++环境中实现网络通信。同时,这些源码可以作为基础,进一步扩展成复杂的网络应用,如聊天程序、文件传输或者在线游戏等。 总的来说,掌握...

Global site tag (gtag.js) - Google Analytics