Linux网络编程(TCP和UDP)

一、TCP的编程

TCP服务器:

头文件:sys/types.h   sys/socket.h

1、创建套接字:int socket(int domain,int type,int protocol)

第一个参数:IPv4使用AF_INET ;第二个参数:TCP使用SOCK_STREAM;第三个参数:0表示选择默认协议。

2、绑定套接字:int bind(int sockfd,const struct sockaddr *addr,socklen_t addrlen);

第一个参数sockfd为创建的套接字,第二个参数为绑定的参数,第三个参数为addr的长度

一般使用struct sockaddr_in代替struct sockaddr,初始化如下:

struct sockaddr_in addr;

addr.sin_family=AF_INET;

addr.sin_addr.s_addr=htonl(INADDR_ANY);//接收所有的连接

addr.sin_port=htons(5000);  //绑定的端口号

3、设置套接字监听:int listen(int sockfd,int backlog)

backlog为连接请求队列的最大长度

4、接收连接 int accept(in sockfd,struct sockaddr *addr,socklen_t *addrlen)

5、发送和接收信息:(也可以用read和write)

ssize_t send(int sockfd,const void *buf,size_t len,int flags)

ssize_t recv(int sockfd,void *buf,size_t len,int flags)

flags一般为0;

recv的flags值:MSG_DONTWAIT仅本操作非阻塞;MSG_OOB发送或接收带外数据;MSG_PEEK窥看外来消息;MSG_WAITALL等待所有数据

send的flags值:MSG_DONTROUTE绕过路由表查找;MSG_DONTWAIT仅本操作非阻塞;MSG_OOB发送或接收带外数据

6、关闭套接字 int close(int fd)  头文件unistd.h


TCP客户端:

1、创建套接字

2、连接服务器:int connect(int sockfd,const struct sockaddr *addr,socklen_t addrlen)

3、发送和接收数据:(recv和send)

4、关闭套接字


二、UDP的编程

UDP服务器:

1、创建套接字:第二个参数为SOCK_DGRAM

2、绑定套接字

3、发送和接收数据(recvfrom和sendto)

ssize_t recvfrom(int sockfd,void *buf,size_t len,int flags,struct sockaddr *src_addr,socklen_t *addrlen)

ssize_t sendto(int sockfd,const void *buf,size_t len,int flags,struct sockaddr *dest_addr,socklen_t *addrlen)

4、关闭套接字(close)


UDP客户端:

1、创建套接字

2、发送和接收数据:服务器的参数放到函数sendto的参数中

3、关闭套接字

Linux网络编程中的TCPUDP是两种常见的传输协议。 TCP(Transmission Control Protocol)是一种基于连接的可靠传输协议。它提供了面向连接、可靠的数据传输服务。在TCP通信中,数据被分割成小的数据块,通过TCP连接按序传输,并且保证数据的可靠性,即使在网络拥塞或数据丢失的情况下也能重新传输丢失的数据。TCP适用于对可靠性要求较高的应用程序,如文件传输、电子邮件和网页浏览。 UDP(User Datagram Protocol)是一种无连接的不可靠传输协议。它提供了一种无序、不可靠的数据传输服务。在UDP通信中,数据以数据包(也称为数据报)的形式发送,不进行连接建立和断开,也不保证数据的可靠性和按序传输。UDP适用于对实时性要求较高、对数据可靠性要求较低的应用程序,如音视频流媒体、在线游戏等。 在Linux中进行TCPUDP网络编程可以使用Socket API。该API提供了一组函数和数据结构,用于创建套接字(socket)、绑定(bind)套接字到特定的IP地址和端口、监听(listen)连接请求、接受(accept)连接、建立连接(connect)、发送(send)和接收(receive)数据等操作。 你可以使用C语言或其他支持Socket API的编程语言来进行Linux网络编程,通过调用Socket API提供的函数来实现TCPUDP通信。在编程过程中,你需要了解TCPUDP的特点、使用套接字创建相应的连接类型、发送和接收数据的方式等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值