A data sending method, comprising: within a first scheduling period, if first type data is punctured by second type data, saving (S301, S518, S818) a first data subset in the first type data and puncture location information of the first data subset in the first type data, wherein the first data subset in the first type data is preempted by the second type data, wherein data that is not punctured by the second type data and that is in the first type data is a second data subset, the first data subset and the second data subset constitute the first type data; within the first scheduling period, transmitting the second data subset and the second type data; and within a second scheduling period, transmitting (S302) the first data subset, the puncture location information, and puncture indication information, wherein the puncture indication information is used to indicate that the first data subset is retransmitted data triggered by puncturing; wherein the first data subset, the second data subset and the first type data are scrambled sequences obtained after scrambling processing, and the puncture location information comprises starting location information of the first data subset in the first type data and length information of the first data subset; or wherein the first data subset, the second data subset and the first type data are modulated symbol sequences obtained after fast Fourier transform, FFT, processing; and the puncture location information indicates: a first mapping pattern of the first data subset in a time-frequency resource block corresponding to the first scheduling period; or the puncture location information indicates: a conversion rule, wherein the conversion rule indicates a correspondence between a first mapping pattern of the first data subset in a time-frequency resource block corresponding to the first scheduling period and a second mapping pattern of the first data subset in the time-frequency resource block corresponding to the second scheduling period. within a first scheduling period, if first type data is punctured by second type data, saving (S301, S518, S818) a first data subset in the first type data and puncture location information of the first data subset in the first type data, wherein the first data subset in the first type data is preempted by the second type data, wherein data that is not punctured by the second type data and that is in the first type data is a second data subset, the first data subset and the second data subset constitute the first type data; within the first scheduling period, transmitting the second data subset and the second type data; and within a second scheduling period, transmitting (S302) the first data subset, the puncture location information, and puncture indication information, wherein the puncture indication information is used to indicate that the first data subset is retransmitted data triggered by puncturing; wherein the first data subset, the second data subset and the first type data are scrambled sequences obtained after scrambling processing, and the puncture location information comprises starting location information of the first data subset in the first type data and length information of the first data subset; or wherein the first data subset, the second data subset and the first type data are modulated symbol sequences obtained after fast Fourier transform, FFT, processing; and the puncture location information indicates: a first mapping pattern of the first data subset in a time-frequency resource block corresponding to the first scheduling period; or the puncture location information indicates: a conversion rule, wherein the conversion rule indicates a correspondence between a first mapping pattern of the first data subset in a time-frequency resource block corresponding to the first scheduling period and a second mapping pattern of the first data subset in the time-frequency resource block corresponding to the second scheduling period. <EOS>