`

简单UDP服务器端和客户端(源代码)

阅读更多

//客户端
#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <string.h>

using namespace std;

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


class CInitSock
{
public:
	CInitSock(int version01 = 2, int versiont02 = 2)
	{
		WORD sockVersion = MAKEWORD(2, 2);
		WSADATA wsaData = {0}; 

		if (WSAStartup(sockVersion, &wsaData) != 0)
		{
			cout << "initlization failed!" << endl;

			exit(0);
		}

	}

	~CInitSock()
	{
		WSACleanup();
	}
};

CInitSock mysock;


int const MAX_SIZE = 1024;

int main()
{
	char buffer[MAX_SIZE] = "\0";
	sockaddr_in addr = {0};
	int nLen  = sizeof(sockaddr_in);
	SOCKET s;

	addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
	addr.sin_family = AF_INET;
	addr.sin_port  = htons(4567);
	s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

	while (true)
	{
		cout << "Please input send data: " << endl;
		cin >> buffer;

		if ((strcmp(buffer, "quit") == 0) || (strcmp(buffer, "exit")) == 0)
		{
			cout << "process exit...." << endl;

			break;
		}

		sendto(s, buffer, strlen(buffer), 0, (sockaddr*)&addr, sizeof(addr));
	}
} 
 //服务器端
#include <iostream>
#include <stdio.h>
#include <windows.h>

using namespace std;

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


class CInitSock
{
public:
	CInitSock(int version01 = 2, int versiont02 = 2)
	{
		WORD sockVersion = MAKEWORD(2, 2);
		WSADATA wsaData = {0}; 

		if (WSAStartup(sockVersion, &wsaData) != 0)
		{
			cout << "initlization failed!" << endl;

			exit(0);
		}

	}

	~CInitSock()
	{
		WSACleanup();
	}
};

CInitSock mysock;

int main()
{
	SOCKET  s = 0;
	sockaddr_in sin = {0}; 

	sin.sin_family = AF_INET;
	sin.sin_port = htons(4567);
	sin.sin_addr.S_un.S_addr = INADDR_ANY;

	s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

	if (bind(s, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)
	{
		cout << "bind failed!" << endl;

		return 0;
	}

	char  buffer[1024] = "\0";
	sockaddr_in addr  = {0};
	int  nLen  = 0;

	nLen = sizeof(sockaddr_in);

	cout << "------- now service start -------------" << endl;

	while (true)
	{
		int nRecv = 0;

		cout << "wait to receive data............" << endl;

		nRecv = recvfrom(s, buffer, 1024, 0, (sockaddr*)&addr, &nLen);

		if (nRecv > 0)
		{
			buffer[nRecv] = '\0';

			cout << "receve buffer: " << buffer << endl;
		}
	}

	closesocket(s);
}
 
分享到:
评论

相关推荐

    Socket编程-即时通讯工具-基于TCP和UDP协议-包括服务器端和客户端

    工具包括服务器端和客户端; 具备用户注册、登录、找回密码功能(基于TCP协议); 两个用户如果同时在线,采用点到点通信方式进行聊天,信息不需要通过服务器中转,服务器也不保存(基于TCP协议); 支持离线消息...

    基于android的手机监控系统客户端源代码和服务器端

    在这个项目中,客户端源代码可能包含以下关键组件: 1. **视频流处理**:客户端通过JMF来接收并解码服务器端发送的视频流。JMF是一个开源的Java多媒体框架,能够处理音频、视频的捕获、播放和传输。 2. **网络通信...

    UDP服务器和客户端源码

    **UDP服务器端(UdpServer)**: 服务器端主要负责接收来自客户端的数据包,并可能进行相应的处理后回传。在`UdpServer`源码中,通常会包含以下关键步骤: 1. **初始化套接字**:使用`socket()`函数创建一个UDP套接...

    libevent实现UDP relay服务器与客户端

    在项目中,`libevent-client`和`libevent-server`分别代表了客户端和服务器的源代码文件,包含了上述过程的实现细节。通过阅读和分析这些代码,可以更深入地理解libevent在UDP relay场景中的应用。

    UDP简易客户端与服务器端程序(Java)

    在这个Java实现的UDP简易客户端与服务器端程序中,我们可以通过两个核心文件——UDPClient.java和UDPServer.java来理解其工作原理。 首先,让我们来看看`UDPServer.java`。服务器端通常负责监听特定的端口,接收...

    C#TCP-IP服务器和客户端源代码.rar

    本资源"**C# TCP-IP服务器和客户端源代码.rar**"就是针对C#新手设计的一套完整示例,帮助开发者理解和实现简单的TCP/IP通信。 首先,让我们深入了解TCP/IP协议。TCP/IP由四层模型组成:应用层、传输层、网络层和...

    C#编写dns的服务器和客户端源代码

    在IT领域,DNS(Domain ...以上就是使用C#编写DNS服务器和客户端源代码的相关知识点,通过这些知识,你可以构建出能够处理各种DNS查询的高效系统。在实际项目中,你还需要考虑性能优化、错误处理和安全性等方面的问题。

    dhcp服务器以及客户端源代码

    总之,DHCP服务器和客户端源代码是深入学习网络配置和协议实现的宝贵资源。不仅可以帮助理解DHCP的工作机制,还能够提升你的网络编程技能,尤其是在处理网络服务、协议解析和并发处理等方面。对于网络管理员和软件...

    netbios服务器和客户端源代码

    客户端源代码可能包括了向整个网络广播消息或向特定节点发送数据报的代码。 在Visual Studio 2017中,你将能够编译和调试这些源代码,观察它们如何在实际环境中工作。通过调试服务器和客户端的交互,你可以理解...

    UDP 类 UDP DLL 客户端 服务器端测试程序

    这个UDP类包含了客户端和服务器端的实现,客户端用于发送数据,而服务器端则接收和处理这些数据。在UDP通信中,客户端首先会通过IP地址和端口号找到服务器,然后发送数据报文。服务器则监听特定端口,接收到数据后...

    csharp socket服务器端客户端聊天源代码

    这个“csharp socket服务器端客户端聊天源代码”项目就是一个很好的实例,帮助开发者理解如何构建基于Socket的聊天应用。下面将详细阐述这个项目中涉及的关键知识点。 1. **Socket编程基础**: Socket是网络编程的...

    C# 做的Udp实例,有服务器端和客户端

    描述中提到"有服务器端和客户端",这意味着这个压缩包中包含两个部分的代码,一个用于设置UDP服务器,另一个用于创建UDP客户端。服务器端通常会启动一个监听特定端口的进程,当接收到客户端的数据时,会进行相应的...

    UDP服务器客户端.rar

    优化UDP服务器客户端代码,提高其处理能力和效率,是开发过程中的重要任务。 10. **安全性考虑**:虽然UDP不提供连接和可靠性,但安全问题不容忽视。开发者需要考虑如何防止DDoS攻击,如何加密传输数据以保护隐私,...

    udp程序,客户端和服务器端

    在本文中,我们将深入探讨 UDP 程序的客户端和服务器端实现,以及如何进行通信。 首先,`udp_server.c` 文件代表服务器端代码,而 `udp_client.c` 则代表客户端代码。这两个程序是基于 UDP 实现的通信系统的核心...

    linuxUDP下实现客户端与服务器端聊天模式

    文件名"UDP_getchat"可能包含了服务器端和客户端的源代码,可能包括`.c`或`.cpp`文件,以及可能的头文件和编译脚本。通过查看和分析这些源代码,你可以更深入地理解如何在Linux环境下实现基于UDP的聊天模式。 总结...

    RTSPRTP服务器+客户端 C++ 源代码

    本资源提供了一套C++编写的RTSP/RTP服务器和客户端的源代码,这对于理解这两种协议的工作原理以及进行相关开发具有很高的参考价值。 1. **RTSP协议**:RTSP是一种应用层协议,主要用于控制多媒体数据的播放。它允许...

    基于winsock TCP的服务器端和客户端演示

    在压缩包中的"winsocket"文件可能包含了服务器端和客户端的源代码,你可以通过阅读和运行这些代码来更好地理解TCP通信的流程。此外,理解错误处理和异常处理也是很重要的,因为网络通信中经常会出现各种不可预知的...

    p2p穿透服务器源代码以及客户端源代码

    标题中的“p2p穿透服务器源代码以及客户端源代码”意味着我们拥有关于实现这一功能的软件源码。这可能包括服务器端代码,负责处理连接请求、维护P2P网络的结构以及协助NAT穿透;以及客户端代码,用于连接到服务器,...

    w5500模块客户端服务器源代码

    本篇将深入探讨W5500模块在构建TCP服务器和客户端中的应用,并结合51单片机和STM32微控制器的源代码进行解析。 一、W5500模块简介 W5500的核心特性在于其内置的硬核TCP/IP处理器,这使得它可以快速高效地处理网络...

    qt 客户端和服务器端源代码

    在"qt 客户端和服务器端源代码"这个主题中,我们将深入探讨如何使用QT来构建客户端和服务器应用,实现文件的传输。 首先,让我们了解QT中的网络编程基础。QT提供了一个强大的网络模块(QNetworkAccessManager),...

Global site tag (gtag.js) - Google Analytics