千锋教育介绍,阿克苏网站怎么做seo,上海中国建设银行招聘信息网站,鞋子的网站策划方案模板目录 1、主机字节序列和网络字节序列
2、套接字地址结构 3、IP地址转换函数
4、TCP协议编程#xff1a;
#xff08;1#xff09;服务器端#xff1a;
#xff08;2#xff09;客户端: 1、主机字节序列和网络字节序列
主机字节序列分为大端字节序和小端字节序
大端…目录 1、主机字节序列和网络字节序列
2、套接字地址结构 3、IP地址转换函数
4、TCP协议编程
1服务器端
2客户端: 1、主机字节序列和网络字节序列
主机字节序列分为大端字节序和小端字节序
大端字节序是指一个整数的高位字节存储在内存的低地址处低位字节序列存储在内存的高地址处。
小端字节序是指整数的高位字节存储在高地址处低位字节序列存储在内存的低地址处。
网路字节序列大端字节序列转换为大端htons()
2、套接字地址结构
通用套接字地址结构
struct sockaddr
{
sa_family_t sa_family;
char sa_date[14];
}
传的时候会根据需要的类型传递参数。 3、IP地址转换函数
ipv4地址直接按的转换
int_addr_t inet_addr(const char *cp);//把字符串表示的IPV4地址转换为网络字节序
char*inet_ntoa(stuct in_addr in)//把网络字节序转换为字符串表示的
4、TCP协议编程
1服务器端
创建套接字socket()
给套接字指定地址绑定IP端口bind()
开机 、监听队列不阻塞listen
接受链接accept()
接收数据recv()
发送数据send()
关闭链接close()
服务器端
int main()
{
//创建套接字
int sockfdsocket(AF_INET,SOCK_STREAM,0)
// 协议版本
//创建失败就返回
if(sockfd-1)
{
exit(1);;
}//指定服务器的ip和端口
struct sockaddr_in saddr,caddr;//套接字的地址监听套接字
//清空服务器端
memset(saddr,0,sizeof(saddr));//制空
//填充ip和端口
saddr.sin_familyAF_INET
saddr.sin_porthtons(6000);//1024以内知名端口4096以内保留端口临时端口5000
saddr.sin_addr.s_addrinet_addr(127.0.0.1);//ip地址int resbind(sockfd,(sockaddr*)saddr,sizeof(saddr));
if(res-1)
{
printf(bind err\n);
exit(1);
}//设置监听队列reslistenscokfd,5;
// 套接字 监听队列长度
if(res-1)
{
exit(1);
}//接受链接
while(1)
{
//获取客户端的套接字地址的长度socklen_t lensizeof(caddr);
//连接套接字int caccept(sockfd,(struct sockaddr*)caddr,len);if(c0){continue;}printf(acceptc%d,ip%s,port%d,c,inei_ntoa(caddr.sin_addr),ntohs(caddr.sin_port));//定义接收数据的数组char buff[128]{0};// 连接套接字 接收数组接收的长度 recv(c,buff,127,0);printf(buff%s,buff);//返回数据 连接套接字 返回的数据 返回数据的长度 send(c,ok,2,0);//关闭连接套接字close(c);}
2客户端:
创建套接字socket()
向服务器发起链接connect()
给服务端发送数据send()
接收服务端发送的数据recv()
关闭链接close()
#includestdio.h
#includestring.h
#includestdlib.h
#includeunistd.h
#includesys/socket.h
#includenetinet/in.h
#include arpa/inet.h//客户端
int main()
{//创建套接字int sockfdsocket(AF_INET,SOCK_STREAM,0);//判断是否创建成功if(sockfd-1){exit(1);}//绑定套接字地址struct sockaddr_in saddr;//套接字清空memset(saddr,0,sizeof(saddr));saddr.sin_familyAF_INET;//绑定端口saddr.sin_porthtons(6000);//绑定IP地址saddr.sin_addr.s_addrinet_addr(127.0.0.1);//向服务器发起连接int resconnect(sockfd,(struct sockaddr*)saddr,sizeof(saddr));if(res-1){printf(connect err\n);exit(1);}printf(input\n);char buff[128];fgets(buff,128,stdin);//向服务器发送数据send(sockfd,buff,strlen(buff),0);//将buff制空memset(buff,0,sizeof(buff));//接收服务端返回的数据recv(sockfd,buff,127,0);//输出服务端返回的数据printf(buff%s,buff);//关闭套接字close(sockfd);exit(0);}