当前课程知识点:互联网体系结构 >  第二周:Socket网络编程 >  UDP范例代码 >  Video

返回《互联网体系结构》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《互联网体系结构》慕课在线视频列表

Video课程教案、知识点、字幕

好我们接下来来看就是我们怎么样

socket编程来写几个简单的范例程序

在这个程序里面

我们看这个代码是怎么工作的

那我们先来看一下哦

我们先要把我们的这个代码给clone下来

然后我们使用vscode

我们下载的代码打开

看一下

在Lab2里面

我们可以看到这里面有几个.c文件

其中那我们看就是先看UDP

我们可以看一下UDP的这个代码

UDP的代码呢

我们我们看一下这里面

那他就是include了几个文件

其中有比较关键的两个就是type和socket的对吧

你们看这个main里面

我们先是定义了这个

服务器的地址给他定义了变量

然后那我们就定义了一个这个

这个就是客户端的地址结构

因为

UDP他在他的服务器需要接收到客户端的

数据包的时候

他一起同时也拿到了UDP客户端的这个IP地址和端口

我们还有一个数据传输的缓冲区

把这个

对他做了一些初始化

然后主要是这个my_addr也就是服务器的地址

我们地址族设为AF_INET对吧

然后呢

我们这个地址呢

我们是允许连接在本地上的任意IP地址

然后呢

我们端口号呢

我们这地方是用了8000端口

这地方我们用htons

也就是只使用了一个,就是主机字节序顺序转换成网络字节顺序

序列的

然后呢

这边是用socket接口

它就是socket的参数

你可以看到是PF_INET

然后呢

第二个参数

是SOCK_DGRAM也就是指明的是UDP协议

它的返回的套接字描述符我们存储在server sockfd

创建了这个socket之后呢

他就有bind

他首先要指明

就是之前初始化的一个my_address

把他强制类型转化成通用的socket地址

数据结构的指针对吧

然后呢

把它绑定到我们刚刚创建的socket上

绑定好之后

他就是可以接收数据了

他可以接收数据了

要不然我们这地方就有个

在这个套接字描述符上

在这个套接字上接收数据

让我们有buffer

我们把数据接收的数据放在这个buffer这一块存储区里面

然后呢

我们接收到的客户端的地址

瑞奥特拽死

这地方我们就是野爸

就是我们前面定义的结构体变量

把它强制类型转换之后把它传进去

这样的就是内核

那就帮我们把接收到的地址存到这个结构体变量里面

这样我们接收到了就这个就从这儿接收到了接收过完之后

我们就把他

close

对吧也就是服务端

我们这个程序的功能就是就是服务端接收到数据

那我们再来看客户端啊

客户端它是两个是对应起来的

他这边呢

我们这地方也是

创建了一个

就是服务端的

因为他是客户端和服务端是相对的嘛

他这样有一个数据传输的缓冲区

然后那

我们需要帮他初始化

因为我们是在本机两台两个都在本机

所以呢

我们在J二S呢

他都是设置的

是127.0.0.1

还有端口号和服务器应该是这个是一样的

如果不一样的话

那就是没法建立连接的吧

因为他就像你寄信

记得不是你要收信的人的地址

然后呢

这地方是创建

和在服务器端创建是一样的

估计都一样

然后呢

这边把一个字符串

然后开始发送这个字符串

发送这个字符串的,只是输出的发送者

实际的发送字符串呢

在这个send to

他这帮我创建的

然后呢

要传输的要发出去的数据的buffer那段区域

然后就这样,就是取它的长度

我把这一段字符串发出去

发到哪里呢

发到这个

那个地方发送成功的话就close

我们看一下这个这个他在就是

功能怎么实现啊

就是我们看就是

我看他是不是可以正常工作

这地方让我们写了一个简单的

待会儿我们也可以看一下

就是我们编译一下编译没问题的吧

你现在UDP server

他在那wait

我们执行UDP client

我发现这个udp server收到了

发送了一个

就这样

那就是客户端UDP通过服务器来发送了这个数据

他的就是编译的方法也很简单

就是

我们可以手工编译啊

我在这是写了一个简单的

输出的目标是udp server

我们是通过UDP.c把它翻译成

那同样的,udp client,我们这也同样的方法编译

这是两个程序

互联网体系结构课程列表:

第一周:互联网概述

-课程内容简介

--Video

-网络协议基础

--Video

--Video

--Video

--Video

-上网浏览网页背后的网络通信过程

--Video

--Video

-实验环境安装配置

--Video

-网络相关命令

--Video

--Video

-本周作业

--外部链接

第二周:Socket网络编程

-编译、构建和调试

--Video

--Video

--Video

-Socket接口

--Video

--Video

-UDP范例代码

--Video

-TCP范例代码

--Video

-本周作业

--外部链接

第三周:TCP协议与Linux内核

-TCP协议概述

--Video

--Video

-Linux网络协议栈源代码简介

--Video

-Linux系统的编译、构建和调试

--Video

--Video

-TCP协议源代码分析

--Video

-本周作业

--外部链接

第四周:IP协议及路由表

-IP协议基础

--Video

-路由表

--Video

-路由转发举例

--Video

-IP协议栈源代码解析

--Video

-路由协议简介

--Video

-网络层数据传输路径解析

--Video

-本周作业

--外部链接

第五周:ARP协议及ARP缓存

-ARP协议基础

--Video

-ARP解析的过程

--Video

-ARP解析在网络传输过程中的作用

--Video

-ARP协议栈源代码解析

--Video

-本周作业

--外部链接

第六周:二层交换网络及转发过滤数据库

-以太网基础

--Video

--Video

-交换机的学习、转发和过滤数据库

--Video

-常见二层协议

--Video

-数据链路层在Linux网络协议栈中的一些关键代码分析

--Video

-本周作业

--外部链接

第七周:DNS协议及域名存储与解析

-DNS协议基础

--Video

-DNS域名的存储

--Video

-DNS域名解析过程分析

--Video

-本周作业

--外部链接

第八周:互联网架构设计背后的渊源

-互联网架构设计的最初动机与核心目标

--Video

-互联网架构设计的具体目标及背后重要权衡

--Video

--Video

--Video

-课程考核

--外部链接

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。