VC环境下window网络程序:UDP Socket程序

2024-09-08 05:18

本文主要是介绍VC环境下window网络程序:UDP Socket程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在学Windows网络编程,正好在做UDPsocket的程序,贴上来:

服务器框架函数:

             socket();    bind();    recfrom();  sendto();  closesocket();

客户机框架函数:

           socket();      recfrom();  sendto();  closesocket();

二、具体代码如下所示,欢迎大家一起交流

首先要打开服务器进行监听,所以服务器server代码如下:

// udpse.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <winsock2.h>
#pragma  comment(lib,"WS2_32.lib")
#include <iostream>
int main(int argc, char* argv[])
{
 WSADATA wsaData;
 //初始化socket
 WSAStartup(MAKEWORD(2,2),&wsaData);
    //创建socket
 SOCKET recvSocket;
    recvSocket=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
 //将socket进行绑定
 sockaddr_in reAddr;
 reAddr.sin_family=AF_INET;
 reAddr.sin_port=htons(5678);
 reAddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
 bind(recvSocket,(sockaddr *)&reAddr,sizeof(reAddr));
 //调用recvfrom函数绑定在socket接收到客户机数据
 //获取当前系统时间 sDataTime,
 SYSTEMTIME st;
 GetLocalTime(&st);
 //char sDataTime[30];
 printf("当前系统服务器时间:%4d-%2d-%2d %2d:%2d:%2d\n",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
 

 char recvBuf[1024];
 int bufLen=1024;
 //两个暂时没用的,客户机属性
 sockaddr_in FromclientAddr;
 int FromclientSize=sizeof(FromclientAddr);
 int lbuf=recvfrom(recvSocket,recvBuf,bufLen,0,(SOCKADDR *)&FromclientAddr,&FromclientSize);
 recvBuf[lbuf]='\0';

 printf("客户机IP地址是:%s,端口是:%d\n,发来的数据内容是:%s\n",inet_ntoa(FromclientAddr.sin_addr),FromclientAddr.sin_port,recvBuf);

 printf("接收完成,关闭socket\n");
 closesocket(recvSocket);
 //释放资源并退出
 WSACleanup();
 return 0;
}

 

三,客户机发送数据,代码如下:

// udp.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <winsock2.h>
#pragma  comment(lib,"WS2_32.lib")
int main(int argc, char* argv[])
{
 WSADATA wsaData;
 //初始化socket
 WSAStartup(MAKEWORD(2,2),&wsaData);
 //套接字初始化
 SOCKET sendSocket;
 sendSocket=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
 //设置即将连服务器地址
 sockaddr_in seAddr;
 seAddr.sin_family=AF_INET;
 seAddr.sin_port=htons(5678);
 seAddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");//;htonl(INADDR_ANY)
 
 //初始化
 char sendBuf[1024]="hello wang shu qing";
 int bufLen=1024;
    //向服务器发送数据
 printf("请输入发送数据给服务器:\n");
 scanf("%s",sendBuf);
    bufLen=strlen(sendBuf);
 //绑定
 sendto(sendSocket,sendBuf,bufLen,0,(SOCKADDR *)&seAddr,sizeof(seAddr));
 //发送完成,关闭socket
 printf("发送完成,关闭socket\n");
 closesocket(sendSocket);
 //释放资源并退出
 WSACleanup();
 return 0;
}

 四,效果图:

 

  

这篇关于VC环境下window网络程序:UDP Socket程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147216

相关文章

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

Java通过ServerSocket与Socket实现通信过程

《Java通过ServerSocket与Socket实现通信过程》本文介绍了Java中的ServerSocket和Socket类,详细讲解了它们的构造方法和使用场景,并通过一个简单的通信示例展示了如何... 目录1 ServerSocket2 Socket3 服务器端4 客户端5 运行结果6 设置超时总结1

浅析Python中如何处理Socket超时

《浅析Python中如何处理Socket超时》在网络编程中,Socket是实现网络通信的基础,本文将深入探讨Python中如何处理Socket超时,并提供完整的代码示例和最佳实践,希望对大家有所帮助... 目录开篇引言核心要点逐一深入讲解每个要点1. 设置Socket超时2. 处理超时异常3. 使用sele

Mysql 驱动程序的程序小结

《Mysql驱动程序的程序小结》MySQL驱动程序是连接应用程序与MySQL数据库的重要组件,根据不同的编程语言和应用场景,MySQL提供了多种驱动程序,下面就来详细的了解一下驱动程序,感兴趣的可以... 目录一、mysql 驱动程序的概念二、常见的 MySQL 驱动程序1. MySQL Connector

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni