代码编织梦想

服务器

#include <stdio.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <string.h>
#include <unistd.h>

#define ERR_MSG(msg) do{\
    fprintf(stderr, "__%d__:", __LINE__);\
    perror(msg);\
}while(0)

#define PORT 8888
#define IP  "192.168.31.212"

int main(int argc, const char *argv[])
{
	//创建报式套接字
	int sfd = socket(AF_INET, SOCK_DGRAM, 0);
	if(sfd < 0)
	{
		ERR_MSG("socket");
		return -1;
	}

	//填充地址信息结构体,真是的地址信息结构体根据地址族制定
	//AF_INET :  man 7 ip
	struct sockaddr_in sin;
	sin.sin_family      = AF_INET;      //必须填AF_INET;
	sin.sin_port        = htons(PORT);  //端口号的网络字节序;1024~49151
	sin.sin_addr.s_addr = inet_addr(IP); //本机IP,ifconfig查看;


	//绑定服务器的地址信息结构体到套接字文件描述符上,必须绑定
	if(bind(sfd, (struct sockaddr*)&sin, sizeof(sin)) < 0)
	{
		ERR_MSG("bind");
		return -1;
	}
	printf("bind success\n");

	ssize_t res = 0;
	char buf[128] = "";

	struct sockaddr_in cin; 	//存储数据包的来源
	socklen_t addrlen = sizeof(cin);
	

	while(1)
	{
		bzero(buf, sizeof(buf));
		//接收, 接收信息的同时,接收该数据包从谁哪里来
		res = recvfrom(sfd, buf, sizeof(buf), 0, (struct sockaddr*)&cin, &addrlen);
		if(res < 0)
		{
			ERR_MSG("recvfrom");
			return -1;
		}
		printf("[%s:%d] : %s\n", inet_ntoa(cin.sin_addr), ntohs(cin.sin_port), buf);

		//发送:谁给我发信息,我就将信息发还给谁
		strcat(buf, "*_*");
		if(sendto(sfd, buf, sizeof(buf), 0, (struct sockaddr*)&cin, sizeof(cin)) < 0)
		{
			ERR_MSG("sendto");
			return -1;
		}
		printf("sendto success\n");

	}
	//关闭文件描述符
	close(sfd);
	return 0;
}

客户端

#include <stdio.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <string.h>
#include <unistd.h>

#define ERR_MSG(msg) do{\
    fprintf(stderr, "__%d__:", __LINE__);\
    perror(msg);\
}while(0)

#define CLI_PORT 6666
#define CLI_IP  "192.168.31.212" 

#define SER_PORT 8888
#define SER_IP  "192.168.31.212" 

int main(int argc, const char *argv[])
{
	//创建报式套接字
	int sfd = socket(AF_INET, SOCK_DGRAM, 0);
	if(sfd < 0)
	{
		ERR_MSG("socket");
		return -1;
	}

	//填充服务器地址信息结构体,真是的地址信息结构体根据地址族制定
	//AF_INET :  man 7 ip,
	//由于下面的sendto要发送给服务器,所以需要先填充服务器的地址信息结构体
	//供给下面的sendto函数使用;
	struct sockaddr_in sin;
	sin.sin_family      = AF_INET;      //必须填AF_INET;
	sin.sin_port        = htons(SER_PORT);  //服务器的端口
	sin.sin_addr.s_addr = inet_addr(SER_IP); //服务器IP

	ssize_t res = 0;
	char buf[128] = "";

	struct sockaddr_in rcvaddr; 	//存储数据包的来源
	socklen_t addrlen = sizeof(rcvaddr);
	

	while(1)
	{
		bzero(buf, sizeof(buf));
		//发送,数据给服务器
		printf("请输入>>>");
		fgets(buf, sizeof(buf), stdin);
		buf[strlen(buf)-1] = 0;

		if(sendto(sfd, buf, sizeof(buf), 0, (struct sockaddr*)&sin, sizeof(sin)) < 0)
		{
			ERR_MSG("sendto");
			return -1;
		}
		printf("sendto success\n");

		//接收, 接收信息的同时,接收该数据包从谁哪里来
		res = recvfrom(sfd, buf, sizeof(buf), 0, (struct sockaddr*)&rcvaddr, &addrlen);
		if(res < 0)
		{
			ERR_MSG("recvfrom");
			return -1;
		}
		printf("[%s:%d] : %s\n", inet_ntoa(rcvaddr.sin_addr), ntohs(rcvaddr.sin_port), buf);

	
	}
	//关闭文件描述符
	close(sfd);

	return 0;
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_71934534/article/details/127992759

Java实现简易UDP客户端、服务器端通信程序-爱代码爱编程

本学期计算机网络课程要求完成一个TCP和一个UDP的通信程序,我完成了功能的简单实现。我在上一篇博客已经讲了TCP的具体实现,接下来讲一讲UDP程序的实现。 目录 效果展示一、项目结构二、完整代码1.UDPClient2.UDPServer3.UDPFrame4.UDPSend5.UDPReceive6.ReminderTextAdapter(参

python udp客户端 服务器实现方式_python如何创建UDP服务器和客户端?-爱代码爱编程

在编程通信的端口上,我们知道有服务端和客户端两种。在之前的学习中接触过两种通信协议,UDP相比较而言,由于自身无连接的特性,所以在设置方法上没有那么多的步骤。本篇对创建两种端口的步骤进行了整理,还不会创建UDP的赶紧来看看,下面我们就服务器和客户端创建步骤分别展开详解。 1、创建UDP服务端的基本步骤 (1)创建套接字并绑定地址 (2)开始监

android udp服务,Android上实现UDP客户端-爱代码爱编程

前言 在之前的文章中我们已经讲过了TCP通讯的实现,大家如果有兴趣的话,可以参考以下文章: Android上实现TCP客户端 Android上实现TCP服务端 那么今天就让我们来了解下android上 UDP客户端的实现吧。 UDP服务端的实现,大家可以参看以下文章: Android上实现UDP服务端 这里我封装了一个udp客户端的封装类

使用 Python 来搭建 UDP 服务器-爱代码爱编程

文章目录 使用 Python 来搭建 UDP 服务器搭建 UDP ServerUDP Client用 16 进制来收发消息 使用 Python 来搭建 UDP 服务器 使用 python 的 socket 模块,很容易快速搭建 udp 服务器,以便完成业务的需求,下面就来通过代码展示这种便捷性 搭建 UDP Server imp

libuv文件服务器,libuv_UDP服务器搭建-爱代码爱编程

libuv_UDP服务器搭建 libuv_UDP服务器搭建 设计概述 http://docs.libuv.org/en/v1.x/design.html 服务器绑定端口 1: 初始化服务器 udp handle: uv_udp_init(event_loop, &udp_server); 2:配置绑定IP与端口: st

Java UDP 客户端服务器程序示例-爱代码爱编程

在本 Java 网络编程教程中,您将学习如何编写基于 UDP 协议的客户端/服务器应用程序。 首先,让我们看看 Java Network API 是如何设计来支持使用 UDP 的网络应用程序开发的。 DatagramPacket 和DatagramSocket是用于实现 UDP 客户端/服务器应用程序的两个主要类。Datagram

Python 网络编程-创建 UDP 服务器和客户端相互通讯-爱代码爱编程

目  录 1.创建 UDP 服务器和客户端相互通讯 1.1 服务器端代码实现 1.2 客户端代码实现 1.3 代码运行结果 2. socket 模块常见函数和Socket 类用法 有些基础知识,请参看:Python 网络编程-创建 TCP 服务器和客户端相互通讯 1.创建 UDP 服务器和客户端相互通讯 1.1 服务器端代码实现 fr

udp服务端和客户端的连接_galeng_yang的博客-爱代码爱编程

UDP客户端(创建,目标IP,发送的内容) import socket client_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # 创建一个UDP套接字 dest_addr = ("192.168.8.1",6666) # 目标方的地址和端口 client_socket.sendto(

python创建udp服务端和客户端流程_我最爱python的博客-爱代码爱编程

python创建UDP服务端和客户端流程 服务端 #mermaid-svg-bxa6orNaZYRAK6zF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bxa6orNaZYRAK6zF .error-icon

udp服务器和客户端的搭建,实现彼此间交互_玖尾猫的博客-爱代码爱编程

一、什么是UDP         Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。        Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序

linux下的udp服务器客户端的搭建(c语言实现)_昆工第一ikun的博客-爱代码爱编程

        大家好,我是练习编程时长两年半的个人练习生昆工第一ikun,昨天我们说了搭建TCP的服务器和客户端,今天我们就来分享一下UDP的服务器和客户端搭建。UDP的特点是无连接 ,多个客户端可以发送消息给服务器。 UDP:无连接 ,多个客户端可以发送消息给服务器 UDP服务器流程: socket() -> bind() -> re

javaudp客户端服务端简单使用_苏打水解渴的博客-爱代码爱编程

服务端代码 public static void main(String[] args) throws IOException { /* * 接收客户端发送的数据 */

c#搭建udp服务器(esp-01s)---局域网_挨踢玩家的博客-爱代码爱编程

这次分享一个C#搭建UDP的简易服务器(局域网) 实现效果:   大概意思就是:客户端A,B通过IP公网(类似中介)来通讯,A发信息给服务器→服务器转发给B。 A→服务器→B B→服务器→A 大概意思是这样👆 硬件: esp-01s 软件: 网络调试助手 串口助手 步骤: 1.在网络调试助手打开服务端 2

linux实现简单的udp服务端和客户端(c/c++)_蜡笔小方的博客-爱代码爱编程

udp_server.cpp #include <iostream> #include <sys/types.h> #include <sys/socket.h> #include <unistd.h> #include <arpa/inet.h> #include <string.h&g

基于udp协议搭建的简单客户端与服务器(udp协议)_keild的博客-爱代码爱编程

UDP协议 UDP协议的介绍1.UDP的缺点 基于UDP实现的回显服务器基于UDP实现的客户端 UDP协议的介绍 UDP协议特点: 1.无连接 2.面向数据报 3.不可靠传输 4.全双工 16位源端口号

python开发udp通信:使用socket创建udp服务器端和客户端_python实现udp客户端和服务器-爱代码爱编程

我的主页视频讲解 博客不经常在线,私信请到西瓜视频搜索“智能之心”,以智能之心赴智能之梦。 UDP通信步骤 引用UDP通信步骤 一、UDP套接字服务端架构步骤 1. //初始化套接字环境WSAStartup 2.

windows建立udp的客户端和服务端_windows udp-爱代码爱编程

一.UDP的服务端建立: udp服务端创建的步骤: 1.加载库 2.创建套接字 3.绑定IP地址 4.接收数据 5.发送数据 6.关闭套接字,卸载库 代码如下: #include<iostream> #include<stdio.h> #include<winsock2.h> #include <

搭建客户端和服务器,完成客户端和服务器的数据收发_搭建客户端ip-爱代码爱编程

搭建客户端和服务器,完成客户端和服务器的数据收发 TCP/IP四层协议模型和TCP通信 socket编程预备知识 服务器的搭建 客户端的搭建 TCP/IP四层协议模型和TCP通信