`
paulfzm
  • 浏览: 873034 次
  • 性别: 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实现的服务器与客户端的双端视频通信完整源码。

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

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

    该程序是基于vc++对话框的程序,可以在局域网中实现udp通信的功能

    VS2017实现Udp socket多线程通信(C++)

    包括UDP服务器客户端多线程通信程序(用select实现),基于Visual Studio2017实现,已编译测试过,用到的朋友记得关闭SDL检查

    基于UDP的通信程序设计

    武汉理工大学计算机网络与通信课程设计——基于C语言的UDP的通信程序设计,包含完整源代码。C语言编写 VC++6.0编译。可实现实时交互通信功能,另外包含客户机和服务器端的运行截图

    基于UDP的Socket 通信源码(VC++ 2010 MFC CSocket类)

    摘要:网络上基于socket通信的例子很多,但要么代码不好用,要么...也可以和其他socket程序通信,测试与网上下载的“TCPUDP端口调试工具SocketTool V2.2绿色版”通信没有问题。 ; 作者技术交流邮箱: sa978bl@139.com

    VC实现最简单的UDP通信

    在Windows 95环境下,基于TCP/IP协议,用Winsock完成了话音的端到端传输。采用双套接字技术,阐述了主要函数的使用要点,以及基于异步选择机制的应用方法。同时,给出了相应的实例程序

    [260]完整串口通信程序 Vc++源代码 TCPIP协议 UDP协议 短连接,长连接,定时上位机开发VC串口学习器 等.zip

    [260]完整串口通信程序 Vc++源代码 TCPIP协议 UDP协议 短连接,长连接,定时上位机开发VC串口学习器 等.zip[260]完整串口通信程序 Vc++源代码 TCPIP协议 UDP协议 短连接,长连接,定时上位机开发VC串口学习器 等.zip...

    vc udp通信 socket setsockopt 组播广播

    文档中详细描述了VC环境下组播通信的实现方法,文档中包含程序代码,以编译通过。

    基于UDP的通信程序

    利用多线程技术编写一个图形界面的网络聊天室程序。开放工具VC++2010。

    VC++ UDP仿QQ带背景的窗口聊天程序

    内容索引:VC/C++源码,网络相关,仿QQ,聊天 VC++ UDP仿QQ带背景的窗口聊天程序,有要是增加了背景图片和背景音乐的功能,总体还是有点粗糙,以后会慢慢修改完善,聊天功能还有不少地方不能另我满意 ,先这样了。

    VC++通信与界面美化 UDP仿QQ带背景的窗口聊天程序

    VC++源代码,直接打开就可以用,UDP通信并很好的界面美化,非常不错的例子,我自己都在实际应用,尤其新朋友是非常好的代码资源

    VC++ 基于UDP协议的网络通讯实例

    内容索引:VC/C++源码,网络相关,UDP,协议,通讯 VC++ 基于UDP协议的网络通讯实例,C/S架构,在实例中,用户通过服务器端的程序定义一个屏幕上的几何圆,并将圆的X/Y坐标及半径信息发送至客户端,客户端接收到这些数据...

    VC++ CAsyncSocket UDP无连接通信实例

    VC++使用CAsyncSocket实现UDP无连接的通信实例,程序分为UDPClient和UDPSever。服务端Socket需要设置本端的地址和端口号,另外指定接收端的IP 地址还有端口,若有数据发送,则会显示发送的字节数,也可中断发送。...

    VC++ 最简的UDP点对点聊天程序示例

    内容索引:VC/C++源码,网络相关,UDP,点对点,聊天 最简的基于UDP的VC++点对点聊天示例,程序中调用createthread创建线程, ThreadID如果不为0,则线程创建失败;还可学习到地址绑定,注意在UDP协议中,不需要listen,...

    UDP控制台简单测试程序

    用VC++6.0编写的简单UDP协议的控制台程序,在本机上进行连接测试,适合Windows Socket编程的初学者参考。 下载后用好压解压,压缩文件为Zip格式。

    vc++ 实现的基于UDP的简单双端通信例子

    打开对话框后,可以写入IP地址,和自己想发送的文字,比如你写入本机的回环地址127.0.0.1时,按发送后再按接收,就可以收到刚才发送的文字,如果在局域网两台自己上都打开本程序,那只要写上对方的IP地址就可以与...

    vc++ 实现的tcp聊天程序

    一个用tcp实现的 聊天程序源代码 可以对新学socket 编程的朋友有点帮助。

    vc++ 应用源码包_1

    VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本的使用。 VC++精仿QQ2008窗体及分类菜单 VC++卡通风格气泡提示源码 VC++...

    vc++ 应用源码包_3

    VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本的使用。 VC++精仿QQ2008窗体及分类菜单 VC++卡通风格气泡提示源码 VC++...

Global site tag (gtag.js) - Google Analytics