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

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

139次阅读
没有评论

共计 2587 个字符,预计需要花费 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 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-12发表,共计2587字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: a级毛片免费在线观看 | 美丽人妻被按摩中出中文字幕 | 成人免费男女视频网站慢动作 | 国内精品一区二区2021在线 | 台湾佬中文娱乐网更新 | 高颜值美女啪啪 | 日韩国产成人无码av毛片 | 欧美开嫩苞实拍视频在线观看 | 国产精品成熟老妇女 | 中文字幕不卡免费视频 | 中文字幕在线网址 | 四虎影视免费在线观看 | 国产做爰全免费视频美女 | 久久精品23| 色欲色欲天天天www亚洲伊 | 亚洲综合视频网 | 精品欧美一区视频在线观看 | 国产成人精品亚洲日本语言 | 国产亚洲欧美在线播放网站 | 亚洲日韩精品无码专区加勒比 | 国产性一交一乱一伦一色一情 | 亚洲欧美日韩另类在线专区 | 精品欧美成人bd高清在线观看 | 只有这里有精品 | 91免费国产在线观看 | 成人久久18免费软件 | 中文字幕一区中文亚洲 | 日韩乱码在线观看 | 成人h网站在线观看 | 精品一区二区三区五区六区七区 | 精品免费国产一区二区三区四区 | 黄网站在线观看视频 | 97年美女害羞反抗酒店 | 成人羞羞视频在线观看免费 | 99草草国产熟女视频在线 | 精品国产福利片在线观看 | 成人久久久精品乱码一区二区三区 | 在线精品国产一区二区 | 亚洲精品成av人片天堂无码 | 欧美日韩亚洲国产千人斩 | 国内自拍偷拍视频 |