Socket编程(高并发TCP/UDP)

Socket编程(TCP/UDP) <sys/socket.h>如有问题请多多指教,1.Tcp模式(由客户端链接服务器)2.UDP模式:3.多线程tcp4.多进程tcp首先我们需要知道tcp和udp的协议的特点。1.Tcp模式(由客户端链接服务器)服务器端 客户端socket() 创建套接字...
摘要由CSDN通过智能技术生成

                             Socket编程(TCP/UDP) <sys/socket.h>

如有问题请多多指教,

1.Tcp模式(由客户端链接服务器)

2.UDP模式:

3.多线程tcp

4.多进程tcp


首先我们需要知道tcp和udp的协议的特点。

1.Tcp模式(由客户端链接服务器)

服务器端                                                       客户端

socket() 创建套接字                      socket()创建套接字

bind() 命名套接字(绑定地址)            

listen()创建监听队列                    

accept()接收连接(阻塞)             connect()发起连接

recv() 接收数据                             send()发送数据

Send()发送数据                            recv()发送数据

Close()关闭连接                           close()关闭链接

对于每一个主机我们都有大端和小端的区别,为啥保证可以正常通讯,我们网络字节序均使用了大端的方式。现在pc端大多数使用小端模式,因此我们的主机字节序使用小端。

<netinet/in.h>

unsigned long int htonl(unsigned long int hostlong)

unsigned short int htons(unsigned short int hostlong)

unsigned long int ntonl(unsigned long int netlong)

unsigned short int ntons (unsigned short int netshort)

例如:

htonl 表示 host to network long 即将长整型主机字节序的数据转换成网络字节序。

ip地址转换函数

通常,我们习惯用可读性好的字符串来表示ip地址,比如用点分十进制字符串表示IPv4地址,以及用十六进制字符串表示IPv6地址。但编程中我们需要将它们转化成整数方能使用。

用点分十进制字符串表示的IPv4地址和网络字节序整数表示的IPv4地址之间的转换:

#include<arpa/inet.h>

int_addr_t inet_addr(const char * strptr);

int inet_aton(const char * cp,struct in_addr* inp);

char * inet_ntoa(struct in_addr in);

inet_addr 将用点分十进制字符串表示的IPv4地址转换成网络字节序整数表示的IPv4,失败时返回 INADDR_NONE;

inet aton 函数和上面的一样,但是将转化的字符串存放在 inp中,成功返回1,失败返回0.

inet_ntoa 函数将用网络字节序整数表示ipv4 转化成 点分十进制字符串表示的IPv4地址但是要注意的是,该函数中,有静态变量,因此inet_nota是不可重入的。

函数介绍:

int socket(int domain, int type, int protocol);

失败返回 -1,成功返回监听套接字

domain  设置套接字协议族, AF_UNIX UNIX本地域协议簇, AF_INET TCP/IPV4协议簇  AF_INET6 TCP/IPV6协议簇

type 设置套接字服务类型  SOCK_STREAM (流

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值