UDP网络通信程序

//服务器端
#include "Winsock2.h"
#include "stdio.h"  

#pragma comment(lib, "ws2_32.lib")  

int main()
{

	////////////////////////////////////////加载套接字////////////////////////////////////////////////////
	WORD wVersionRequested;//套接字库版本号
	WSADATA wsaData;
	int err;

	wVersionRequested = MAKEWORD(2, 2);//定义套接字的版本号  

	err = WSAStartup(wVersionRequested, &wsaData);//创建套接字
	if (err != 0) {
		return 0;
	}
	///创建套接字失败处理
	if (LOBYTE(wsaData.wVersion) != 2 ||
		HIBYTE(wsaData.wVersion) != 2)
	{
		WSACleanup();
		return 0;
	}

	SOCKET SrvSock = socket(AF_INET, SOCK_DGRAM, 0);//创建套接字
	SOCKADDR_IN SrvAddr;
	SrvAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");//绑定服务端IP地址
	SrvAddr.sin_family = AF_INET;//服务端地址族
	SrvAddr.sin_port = htons(6001);//绑定服务端端口号  

	bind(SrvSock, (SOCKADDR*)&SrvAddr, sizeof(SOCKADDR));

	int len = sizeof(SOCKADDR);
	char buff[100];
	SOCKADDR ClistAddr;

	recvfrom(SrvSock, buff, 100, 0, (SOCKADDR*)&ClistAddr, &len);//等待接收客户端的请求到来
	printf("%s\n", buff);//把客户端发送来的buff信息打印出来  

	closesocket(SrvSock);//关闭套接字
	WSACleanup();

	system("pause");
	return 0;
}

  

//客户端程序
#include "Winsock2.h"
#include "stdio.h"  

#pragma comment(lib, "ws2_32.lib")  

int main()
{

	////////////////////////////////////////加载套接字////////////////////////////////////////////////////
	WORD wVersionRequested;//套接字库版本号
	WSADATA wsaData;
	int err;

	wVersionRequested = MAKEWORD(2, 2);//定义套接字的版本号  

	err = WSAStartup(wVersionRequested, &wsaData);//创建套接字
	if (err != 0) {
		return 0;
	}
	///创建套接字失败处理
	if (LOBYTE(wsaData.wVersion) != 2 ||
		HIBYTE(wsaData.wVersion) != 2)
	{
		WSACleanup();
		return 0;
	}

	SOCKET ClistSock = socket(AF_INET, SOCK_DGRAM, 0);//创建套接字类型  

	SOCKADDR_IN SrvAddr;
	SrvAddr.sin_family = AF_INET;//选择地址族
	SrvAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");//服务端的IP地址
	SrvAddr.sin_port = htons(6001);//服务端的端口号  

	sendto(ClistSock, "hello", strlen("hello") + 1, 0, (SOCKADDR*)&SrvAddr, sizeof(SOCKADDR));//往服务端发送"hello"消息
	closesocket(ClistSock);//关闭套接字
	WSACleanup();//  

	return 0;
}

  

时间: 2024-10-14 05:17:31

UDP网络通信程序的相关文章

Java中的TCP/UDP网络通信编程

127.0.0.1是回路地址,用于测试,相当于localhost本机地址,没有网卡,不设DNS都可以访问. 端口地址在0~65535之间,其中0~1023之间的端口是用于一些知名的网络服务和应用,用户的普通网络应用程序应该使用1024以上的端口. 网络应用中基本上都是TCP(Transmission Control Protocol传输控制协议)和UDP(User Datagram Protocol用户数据报协议),TCP是面向连接的通信协议,UDP是无连接的通信协议. Socket连接套接字,

Linux网络编程:基于UDP的程序开发回顾篇

基于无连接的UDP程序设计 同样,在开发基于UDP的应用程序时,其主要流程如下: 对于面向无连接的UDP应用程序在开发过程中服务端和客户端的操作流程基本差不多.对比面向连接的TCP程序,服务端少了listen和accept函数.前面我们也说过listen函数最主要的作用就是将一个socket套接字描述符转为被动监听模式,然后调用accept主要是用于等待客户端(用connect)来连接服务器.connect函数不仅可以用于流式套接字还可用于数据报式套接字.在TCP中,客户端调用connect函数

基于Socket的UDP发包程序

UDP(User Datagram Protocol,用户数据报协议)是在互联网中常用的传输层协议,该协议提供了向另一用户程序发送的消息的最简便的协议机制.与TCP一样,其默认的下层协议是IP.UDP是面向操作的,不提供提交和复制保护,因此不能保证数据的可靠性传输.UDP一般用在可靠性较高的局域网中. .NET 下可使用Socket 类编写基于UDP的网络程序,只要在创建Socket时将构造函数函数的第三个参数选为枚举值ProtocolType.Udp即可.此外,.NET的System.Net.

TCP、UDP练习题 (UDP聊天程序、TCP上传文本文件和图片文件)

TCP.UDP编程练习 TCP ☆上传文本文件 读取一个本地文本文件,将数据发送到服务端,服务器端对数据进行存储. 存储完毕后,给客户端一个提示. 一.解题思路 客户端:(1) 创建Socket对象----用服务器的ip+端口号 (2)读取文件内容 (3)通过socket把内容发送给服务器端(把socket中的输出流包装成"打印流"来进行发送文本,是一种比较安全的输出方式,不会出现失真.) 服务器端:(1) 创建服务器socket---ServerSocket (2)通过ServerS

[C# 网络编程系列]专题七:UDP编程补充——UDP广播程序的实现

上次因为时间的关系,所以把上一个专题遗留下的一个问题在本专题中和大家分享下,本专题主要介绍下如何实现UDP广播的程序,下面就直接介绍实现过程和代码以及运行的结果. 一.程序实现 UDP广播程序的实现代码: [csharp] view plain copy print? using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.W

python网络编程基础--socket的简介,以及使用socket来搭建一个简单的udp小程序

socket介绍: socket(简称套接字),是进程间通讯的一个工具,他能实现把数据从一方传输到另一方,完成不同电脑上进程之间的通讯,它好比数据的搬运工.socket应用:不夸张来说,只要跟网络相关的应用程序或者软件都使用到了socket, 比如:微信,qq等使用socket创建udp网络程序的流程:1,创建客户端套接字2,发送/接收数据3,关闭套接字使用程序展现流程 :(使用的 ide为pycharm):1,首先创建socket,在 Python 中 使用socket 模块的函数 socke

udp网络程序-发送、接收数据

1. udp网络程序-发送数据 创建一个基于udp的网络程序流程很简单,具体步骤如下: 创建客户端套接字 发送/接收数据 关闭套接字 代码如下: #coding=utf-8 from socket import * # 1. 创建udp套接字 udp_socket = socket(AF_INET, SOCK_DGRAM) # 2. 准备接收方的地址 # '192.168.1.103'表示目的ip地址 # 8080表示目的端口 dest_addr = ('192.168.1.103', 8080

python:UDP网络程序与总结

UDP网络程序 一.创建一个udp客户端程序 流程简单,具体步骤如下: 创建客户端套接字 发送/接收数据 关闭套接字 二.发送数据 from socket import * #1. 创建套接字 udpSocket = socket(AF_INET, SOCK_DGRAM) #2. 准备接收方的地址 sendAddr = ('192.168.1.103', 8080) #3. 从键盘获取数据 sendData = input("请输入要发送的数据:") #4. 发送数据到指定的电脑上 u

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

最近在学Windows网络编程,正好在做UDPsocket的程序,贴上来: 服务器框架函数: socket();    bind();    recfrom();  sendto();  closesocket(); 客户机框架函数: socket();      recfrom();  sendto();  closesocket(); 二.具体代码如下所示,欢迎大家一起交流 首先要打开服务器进行监听,所以服务器server代码如下: // udpse.cpp : Defines the en