基于Socket编程下 实现Linux-Linux、Linux-Windows udp通信
创始人
2024-04-06 17:22:53

文章目录

  • 一、通信实现
  • 二、Linux-Linux
    • 1. 服务器 Server
    • 2. 客户端 Client
  • 三、Linux-Windows
    • 1. 服务器 Linux_Server
    • 2. 客户端 Windows_Client
  • 程序源码


一、通信实现

1. Linux-Linux
在虚拟机下开启俩个终端,分别运行服务器和客户端程序(服务器运行在前,客户端运行在后)
在这里插入图片描述
2. Linux-Windows
①客户端 Windows_Client
在这里插入图片描述
②服务器 Linux_Server
在这里插入图片描述

二、Linux-Linux

1. 服务器 Server

①头文件声明

#include
#include
#include
#include
#include
#include
#include
#include

②创建套接字

int sockfd = socket(AF_INET,SOCK_DGRAM,0);

③指定IP地址与端口号

struct sockaddr_in saddr,caddr;
memset(&saddr,0,sizeof(saddr));
saddr.sin_family = AF_INET;
saddr.sin_port = htons(8080);//普通数字可以用htons()函数转换成网络数据格式的数字)
saddr.sin_addr.s_addr = inet_addr("192.168.124.16");//将点分十进制的IP地址转化为二进制

④绑定

bind(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));

UDP不用listen监听

⑤接收客户端发送过来的数据

recvfrom(sockfd,buff,127,0,(struct sockaddr*)&caddr,&len);

⑥发送消息给客户端

sendto(sockfd,"OK",2,0,(struct sockaddr*)&caddr,sizeof(caddr));

⑦关闭套接字

close(sockfd);

2. 客户端 Client

①头文件声明

#include
#include
#include
#include
#include
#include
#include
#include

②创建套接字

sockfd = socket(AF_INET,SOCK_DGRAM,0);

③指定IP地址和端口号

struct sockaddr_in saddr;
memset(&saddr,0,sizeof(saddr));
saddr.sin_family = AF_INET;
saddr.sin_port = htons(8080);
saddr.sin_addr.s_addr = inet_addr("192.168.124.16");

④向服务器发送消息

fgets(buff,128,stdin);
sendto(sockfd,buff,strlen(buff),0,(struct sockaddr*)&saddr,sizeof(saddr));

⑤接收服务器发过来的消息

recvfrom(sockfd,buff,127,0,(struct sockaddr*)&saddr,&len);

⑥关闭套接字

close(sockfd);

三、Linux-Windows

1. 服务器 Linux_Server

①头文件声明

#include
#include
#include
#include
#include
#include
#include
#include

②创建套接字

int sockfd = socket(AF_INET,SOCK_DGRAM,0);

③指定IP地址与端口号

struct sockaddr_in saddr,caddr;
memset(&saddr,0,sizeof(saddr));
saddr.sin_family = AF_INET;
saddr.sin_port = htons(8080);//普通数字可以用htons()函数转换成网络数据格式的数字)
saddr.sin_addr.s_addr = inet_addr("192.168.124.16");//将点分十进制的IP地址转化为二进制

④绑定

bind(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));

UDP不用listen监听

⑤接收客户端发送过来的数据

recvfrom(sockfd,buff,127,0,(struct sockaddr*)&caddr,&len);

⑥发送消息给客户端

sendto(sockfd,"OK",2,0,(struct sockaddr*)&caddr,sizeof(caddr));

⑦关闭套接字

close(sockfd);

2. 客户端 Windows_Client

①声明头文件与库

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

②Sockets初始化信息

WSADATA s; 
if (WSAStartup(MAKEWORD(2, 2), &s) != 0) // 通过连接两个给定的无符号参数,首个参数为低字节,使用2.2版本的Socket{printf("Init Windows Socket Failed! Error: %d\n",GetLastError());getchar();return -1;}

③创建套接字

SOCKET sockfd = socket(AF_INET,SOCK_DGRAM,0);

④指定IP地址和端口号

struct sockaddr_in saddr;
memset(&saddr,0,sizeof(saddr));
saddr.sin_family = AF_INET;
saddr.sin_port = htons(8080);
saddr.sin_addr.s_addr = inet_addr("192.168.124.16");

⑤向服务器发送消息

fgets(buff,128,stdin);
sendto(sockfd,buff,strlen(buff),0,(struct sockaddr*)&saddr,sizeof(saddr));

⑥接收服务器发过来的消息

recvfrom(sockfd,buff,127,0,(struct sockaddr*)&saddr,&len);

⑦关闭套接字

closesocket(sockfd);
WSACleanup( );

程序源码

若需程序源码可在评论区留言QQ邮箱 或 直接私信即可。

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...