照明网站建设,wordpress公司官网主题,公司注销查询系统,网站开发 放大图片查看struct sockaddr_in包含的东西#xff1a; 在/user/include下搜索#xff1a;grep struct sockaddr_in { * -nir r : 递归 i #xff1a; 不区分大小写 n : 显示行号
socket编程–服务端代码
/*
1、调用 socket 创建套接字
2、调用 bind 添加地址
3、lis…查看struct sockaddr_in包含的东西 在/user/include下搜索grep struct sockaddr_in { * -nir r : 递归 i 不区分大小写 n : 显示行号
socket编程–服务端代码
/*
1、调用 socket 创建套接字
2、调用 bind 添加地址
3、listen 监听
4、accept 连接
5、read
6、write
*/#include stdio.h
#include sys/types.h
#include sys/socket.h
//#include linux/in.h
#include netinet/in.h
#include arpa/inet.h
#include stdlib.hint main()
{int s_fd;//1、创建套接字 sockets_fd socket(AF_INET,SOCK_STREAM,0);//用到IPV4TCP协议0自动配合起来if(s_fd -1){ //返回-1错误perror(socket);exit(-1);}//2、添加地址 bind struct sockaddr_in s_addr; //定义结构体s_addr.sin_family AF_INET; //协议族s_addr.sin_port htons(8989); //端口号一般为5000--9000//电脑为x86是小端字节序网络字节序为大端字节序。所以要进行转换用htonsinet_aton(172.0.0.1,s_addr.sin_addr);//把字符串形式的127.0.0.1转换成网络能识别的格式。用到inet_atonbind(s_fd,(struct sockaddr *)s_addr,sizeof(struct socket_in));//3、监听listenlisten(s_fd,10);//监听10个//4、连接 acceptint c_fd accept(s_fd,NULL,NULL);//连接到客户端之后后续的操作用返回值c_fd来操作//5、read//6、writeprintf(connect\n);//数据连接之后打印while(1);return 0;
}编译运行此代码 windosR 输入cmd指令然后ping ip是否接通通过之后输入telnet ip 端口号。则该服务器连接客户端成功代码向下运行打印出connect字符。
windos10系统默认不开启telnet需要查询开启方法进行开启再使用该命令。
数据互通
/*
1、调用 socket 创建套接字
2、调用 bind 添加地址
3、listen 监听
4、accept 连接
5、read
6、write
*/#include stdio.h
#include sys/types.h
#include sys/socket.h
//#include linux/in.h
#include netinet/in.h
#include arpa/inet.h
#include stdlib.h
#include string.hint main()
{int s_fd;int n_read;char redBuf[128];char *retmessage I get your message!\n;struct sockaddr_in s_addr; //定义结构体struct sockaddr_in c_addr;//数据清空memset(s_addr,0,sizeof(struct sockaddr_in));memset(c_addr,0,sizeof(struct sockaddr_in));//1、创建套接字 sockets_fd socket(AF_INET,SOCK_STREAM,0);//用到IPV4TCP协议0自动配合起来if(s_fd -1){ //返回-1错误perror(socket);exit(-1);}//2、添加地址 bind s_addr.sin_family AF_INET; //协议族s_addr.sin_port htons(8989); //端口号一般为5000--9000//电脑为x86是小端字节序网络字节序为大端字节序。所以要进行转换用htonsinet_aton(172.0.0.1,s_addr.sin_addr);//把字符串形式的127.0.0.1转换成网络能识别的格式。用到inet_atonbind(s_fd,(struct sockaddr *)s_addr,sizeof(struct socket_in));//3、监听listenlisten(s_fd,10);//监听10个//4、连接 acceptint clen sizeof(struct socket_in);int c_fd accept(s_fd,(struct sockaddr *)c_addr ,clen);//连接到客户端之后后续的操作用返回值c_fd来操作if(c_fd -1){perror(accept);}printf(get connect : %s\n,inet_ntoa(c_addr.sin_addr));//把网络格式的IP转换为字符格式//5、readn_read read(c_fd,redBuf,128);if(n_read -1){perror(read);}else{printf(get message : %d,%s\n,n_read,redBuf);}//6、writewrite(c_fd,retmessage,strlen(retmessage));return 0;
}在新的界面telnet ip 端口号实现连接
输出结果
Trying 172.0.0.1...
Connected to 172.0.0.1.
Escape character is ^].
laowang
I get your message
Connection closed by foreign host.另一个界面
get connect : 172.0.0.1
get message : 8,laowang