Linux关于socket(深入UDP与TCP区别)

本文探讨了Linux中socket的两种类型——数据报套接字(UDP)和流式套接字(TCP)的区别。UDP是无连接、无序且不保证可靠的数据传输,使用sendto和recvfrom进行读写操作。与TCP不同,UDP不涉及listen、accept和connect步骤,因此实现更简洁。通过示例代码展示了UDP服务端和客户端的交互,突出其不粘包特性,即每次传输的数据是独立的。
摘要由CSDN通过智能技术生成

socket之数据报套接字(UDP)

数据报套接字(SOCK_DGRAM) 数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠,无差错。使用数据报协议UDP协议。

socket之UDP实现

udp没有服务器和客户端的概念,但是我们为了和前一篇文章《Linux关于socket(TCP实现C/S)》相结合,进行总结TCP和UDP的区别,我们用代码实现UDP的服务端和客户端。

实现代码前,我们要知道UDP的写入是用sendto,读出使用recvfrom.而TCP读的话可以用read,send,写的话用recv,write

UDP不用实现TCP服务端的listen,accept,和客户端的connect,它直接创建完就可以使用,所以代码比较简洁。

以下是服务端代码

#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
#include <sys/types.h>  
#include <sys/wait.h>
#include <sys/socket.h>  
#include <netinet/in.h> /* for struct sockaddr_in*/  
#include <sys/errno.h>  
#include <signal.h>  

//关于服务器udp的socket
void error_exit(char *name)
{
   perror(name);
   exit(-1);
}
int main(int argc,char *argv[])
{
   int s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值