在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

怎么使用linux socket实现服务器和客户端对话

136次阅读
没有评论

共计 2612 个字符,预计需要花费 7 分钟才能阅读完成。

本文丸趣 TV 小编为大家详细介绍“怎么使用 linux socket 实现服务器和客户端对话”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用 linux socket 实现服务器和客户端对话”文章能帮助大家解决疑惑,下面跟着丸趣 TV 小编的思路慢慢深入,一起来学习新知识吧。

1. 服务器端
#include  sys/types.h 
#include  sys/socket.h 
#include  stdio.h 
#include  stdlib.h 
#include  errno.h 
#include  string.h 
#include  unistd.h 
#include  netinet/in.h 
#define SERVPORT 3333
#define BACKLOG 10
#define MAX_CONNECTED_NO 10
#define MAXDATASIZE 5
int main()
 struct sockaddr_in server_sockaddr,client_sockaddr;
 int sin_size,recvbytes;
 int sockfd,client_fd;
 char buf[MAXDATASIZE];
/* 创建 socket*/
 if((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1){
 perror( socket 
 exit(1);
 }
 printf(socket success!,sockfd=%d\n ,sockfd);
/* 设置服务器 sockaddr_in 结构 */
 server_sockaddr.sin_family=AF_INET;
 server_sockaddr.sin_port=htons(SERVPORT);
 server_sockaddr.sin_addr.s_addr=INADDR_ANY;
 bzero((server_sockaddr.sin_zero),8);
/* 绑定 socket 和端口 */
 if(bind(sockfd,(struct sockaddr *) server_sockaddr,sizeof(struct sockaddr))==-1){
 perror( bind 
 exit(1);
 }
 printf( bind success!\n 
/* 监听客户端请求 */
 if(listen(sockfd,BACKLOG)==-1){
 perror( listen 
 exit(1);
 }
 printf( listening....\n 
/* 接受客户端请求 */
 if((client_fd=accept(sockfd,(struct sockaddr *) client_sockaddr, sin_size))==-1){
 perror( accept 
 exit(1);
 }
/* 接收客户端信息 */
 if((recvbytes=recv(client_fd,buf,MAXDATASIZE,0))==-1){
 perror( recv 
 exit(1);
 }
 printf(received a connection :%s\n ,buf);
/* 关闭 socket*/
 close(sockfd);
2. 客户端
#include  stdio.h 
#include  stdlib.h 
#include  errno.h 
#include  string.h 
#include  netdb.h 
#include  sys/types.h 
#include  netinet/in.h 
#include  sys/socket.h 
#define SERVPORT 3333
#define MAXDATASIZE 100
main(int argc,char *argv[]){
 int sockfd,sendbytes;
 char buf[MAXDATASIZE];
 struct hostent *host;
 struct sockaddr_in serv_addr;
/*argc 2, 表示没有输入主机名,主机句是 IP 地址形式,如“192.168.1.1”*/
 if(argc   2){
 fprintf(stderr, Please enter the server s hostname!\n 
 exit(1);
 }
/* 获取主机名,地址解析函数 */
 if((host=gethostbyname(argv[1]))==NULL){
 perror( gethostbyname 
 exit(1);
 }
/* 创建 socket*/
 if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){
 perror( socket 
 exit(1);
 }
/* 设置 serv_addr 结构参数 */
 serv_addr.sin_family=AF_INET;
 serv_addr.sin_port=htons(SERVPORT);
 serv_addr.sin_addr=*((struct in_addr *)host- h_addr);
 bzero((serv_addr.sin_zero),8);
/* 向服务器请求连接,serv_addr 是服务器端地址 */
 if(connect(sockfd,(struct sockaddr *) serv_addr,\
 sizeof(struct sockaddr))==-1){
 perror( connect 
 exit(1);
 }
/* 发送消息给服务器,此时可以在服务器端看到 hello 字样 */
 if((sendbytes=send(sockfd, hello ,5,0))==-1){
 perror( send 
 exit(1);
 }
/* 关闭连接 */
 close(sockfd);
}

编译步骤

#gcc server.c -o server
#./server // 此时服务器端在监听
#gcc client.c -o client
#./client 172.31.100.236 // 客户端向服务器端发送“hello,服务器端监听终止 

读到这里,这篇“怎么使用 linux socket 实现服务器和客户端对话”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注丸趣 TV 行业资讯频道。

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-02-04发表,共计2612字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产精品a免费一区久久电影 | 中字幕人妻一区二区三区 | 成人看片毛片免费播放器 | 东京热无码av一区二区 | 国产xxxxxx久色视频在 | 国产毛片欧美毛片久久久 | 国产精品无码一区二区在线 | 人人综合 | 色综合色综合色综合色综合 | 五月开心播播网 | 一级电影毛片 | 在线免费看污片 | 国产免费叼嘿视频 | 国产精品乱码久久久久久软件 | www.亚洲欧美 | 国产偷录视频叫床高潮 | 国产短视频精品一区二区三区 | 97久久综合区小说区图片区 | 国产精品一区二区 尿失禁 国产精品一区二区av | 亚洲qingse中文久久网 | a级在线观看视频 | 欧美日韩精品一区二区三区不卡 | 九九九精品视频 | 亚洲综合精品成人 | 久久国产毛片 | 91亚洲欧美综合高清在线 | 9lporm自拍视频区 | 天堂在线精品 | 久久综合九色综合欧美9v777 | 国产成人精品无码a区在线观看 | 日本一区二区三区精品 | 视频福利网站 | 精美日产nv二线三线水蜜桃 | 无码中文字幕色专区 | 黄色毛片免费 | 久久久久亚洲av无码观看 | 朝鲜一级片 | 99re热这里只有精品视频 | 亚洲成人毛片 | 日本aaaa片毛片免费观看 | 男人午夜影院 |