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;

}

四,效果图:

时间: 2024-10-23 14:12:34

VC环境下window网络程序:UDP Socket程序的相关文章

VC++环境下多文档模板应用程序开发(带源码)

我们以前见到的关于VC++环境下利用APP Wizard 自动生成的MDI的应用程序只支持打开同一文档类型的多个文件,但是不能够同时打开不同种类型的文档.网上的这种公开资料比较少,我在知网上查阅了相关的资料.下面我根据这些资料做一下总结(辛辛苦苦一个一个字码出来的). 下面设计一个能够处理两种文档类型的应用程序:第一种文档类型:TXT文档,第二种文档类型:Bub的文档类型. 第一种的文档类型TXT,是利用APP Wizard自动生成的,只不过是在设置的时候将文档类型设置为TXT类型,并且使生成的

Linux环境下查看网络性能的基本命令

                 Linux环境下查看网络性能的基本命令 由于Linux经常使用的是字符界面,而且Linux的功能比较强大,具有默认路由功能,相当于网关和路由器.在网络性能方面也比较稳定,而且配置简单.当然在配置网络的时候可能会发生网络的连通性不稳定或者不通.一下命令或许对大家有所帮助: 1.curl & wget 使用curl或wget命令,不用离开终端就可以下载文件.如你用curl,键入curl -O后面跟一个文件路径.wget则不需要任何选项.下载的文件在当前目录. cur

【应用笔记】【AN003】VC++环境下基于以太网的4-20mA电流采集

简介 4-20mA电流环具有广泛的应用前景,在许多行业中都发挥着重要作用.本文主要介绍了以太网接口的4-20mA电流采集模块在VC++环境下进行温度采集,实现WINDOWS平台对数据的采集.分析及显示. 系统组成及工作原理 系统组成主要包括PT100铂电阻.SBWZ温度变送器.4-20mA电流采集模块(GM4008)以及上位机软件组成,如图1所示. PT100铂电阻温度传感器:利用铂金属阻值随温度的变化而变化的特性制成的一种温度传感器,主要用来测量温度的变化量. SBWZ温度变送器:一种现场安装

Linux环境下使用eclipse开发C++动态链接库程序

Linux中也有类似windows中DLL的变成方法,只不过名称不同而已.在Linux中,动态链接叫做Standard Object,生成的动态链接文件为*.so.详细请参考相关文档. 开发环境:Eclipse 3.4.2 G++:4.3.2 1. 创建动态链接库 (1)在Eclipse中创建新的C++工程 File->New->Project->C++->C++ Project,选择Shared Library. (2)创建源代码文件 File->New->Sourc

VC环境下编译OpenSSL(仅仅是个示例,网上还有许多相关文章)

VC环境OpenSSL安装以及编程过程 SSL就是Secure Sockets Layer,是一种安全套接字协议,详情请参考链接中的介绍. 配置过程中需要生成一些mak文件,这些生成代码用perl脚本生成,所以要安装一个ActivePerl ActivePerl:http://www.activestate.com/activeperl/ openss:http://www.openssl.org/ (本文使用openssl-1.0.0-beta5) 参考 openssl 目录下的 instal

LWIP裸机环境下实现TCP与UDP通讯

前面移植了LWIP,并且简单的实用了DHCP的功能,今天来使用一下实际的数据通讯的功能 首先是实现TCP客户端,我先上代码 #ifndef __TCP_CLIENT_H_ #define __TCP_CLIENT_H_ #include "network.h" //连接状态 enum tcp_client_states { ES_NONE = 0, ES_RECEIVED, //接收到了数据 ES_CLOSING //连接关闭 }; //TCP服务器状态 struct tcp_clie

查看shell环境下,网络连通管理

检查网络是否可用 curl www.baidu.com <!--STATUS OK--><html>...</html> ping www.baidu.com注意:网络通的情况下,也可能ping不通,因为可能有代理.防火墙关闭了端口访问 检查代理环境变量: echo http_proxyecho https_proxy 修改代理环境变量 export http_proxy=http://proxyhk.zte.com.cn:80/export https_proxy=h

在VC环境下执行代码出现错误

这是在执行代码过程中出现的错误,源代码在别的电脑上能运行,在自己的VC里运行就出现错误,在网上也搜过解决办法,但还是有点不太理解,是编程环境的问题h还是代码本身也存在问题???

在linux环境下尝试使用gcc编译一个程序,并验证-E\-S\-c选项

首先,进入Linux平台: 2.双击Terminal,进入: 3.编入命令 vim test.c ,进入新建文件test.c中,并且自己编写一个简单的c语言程序: 4.分别输入命令: ESC   :  w   q   ! 这5个命令回到编译页面,如若想修改则可输入命令 vim test.c  进入,输入命令i或者A命令 5.输入命令gcc -S test.c  预处理 6.输入命令 gcc -c test.c     预编译处理完成 7.输入命令    ./test 8.程序运行截图: