套接字socket(C/S架构通信)

发布时间:2021-11-28 13:11:56

本次实验主要实现的是回射客户/服务器。


意思就是客户端发送什么,服务器显示什么,并且在发送给客户端。


服务器端代码:


#include
#include
#include
#include
#include
#include
#include
#include

#define ERR_EXIT(m)
do
{
perror(m);
exit(EXIT_FAILURE);
}while(0)

int main(void)
{
int listenfd;
if((listenfd = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP)) < 0 )
{
ERR_EXIT("socket");
}
struct sockaddr_in servaddr;

memset(&servaddr,0,sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(5188);
// servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_addr.s_addr = inet_addr("0.0.0.0");

if(bind(listenfd,(struct sockaddr*)&servaddr,sizeof(servaddr)) < 0)
{
ERR_EXIT("bind");
}

if(listen(listenfd,SOMAXCONN) < 0)
{
ERR_EXIT("listen");
}
struct sockaddr_in peeraddr;
socklen_t peerlen = sizeof(peeraddr);

int conn;
if((conn = accept(listenfd,(struct sockaddr*)&peeraddr,&peerlen)) < 0)
{
ERR_EXIT("accept");
}

char recvbuf[1024];
while(1)
{
memset(recvbuf,0,sizeof(recvbuf));
int ret = read(conn,recvbuf,sizeof(recvbuf));
fputs(recvbuf,stdout);
write(conn,recvbuf,ret);
}
close(conn);
close(listenfd);
return 0;
}

客户端代码:


#include
#include
#include
#include
#include
#include
#include
#include

#define ERR_EXIT(m)
do
{
perror(m);
exit(EXIT_FAILURE);
}while(0)

int main(void)
{
int sock;
if((sock = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP)) < 0 )
{
ERR_EXIT("socket");
}
struct sockaddr_in servaddr;

memset(&servaddr,0,sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(5188);
servaddr.sin_addr.s_addr = inet_addr("你服务器的IP地址");

if( connect(sock,(struct sockaddr*)&servaddr,sizeof(servaddr)) < 0)
{
ERR_EXIT("connect");
}

char recvbuf[1024] = {0};
char sendbuf[1024] = {0};
while(fgets(sendbuf,sizeof(sendbuf),stdin) !=NULL)
{
write(sock,sendbuf,strlen(sendbuf));
read(sock,recvbuf,sizeof(recvbuf));
fputs(recvbuf,stdout);
memset(sendbuf,0,sizeof(sendbuf));
memset(recvbuf,0,sizeof(recvbuf));
}
return 0;

}

?

相关文档

  • 2021高三化学教师新学期工作计划
  • 承揽装配合同书范本
  • 关于励志成才的文章3篇
  • c++ 空指针错误
  • 不主动的说说
  • 妇联主席在月嫂就业技能培训班开班上的讲话精选多篇
  • 我的好伙伴写老师的作文500字
  • 日本人真爱喝珍珠奶茶
  • 家宅风水常识及禁忌
  • 初级插花教学图片精选的模板
  • 父爱使我潸然泪下
  • Java小项目(二)---外卖订餐系统
  • Spring Boot Spring Mvc
  • gradle:failed to find Build Tools revision 23.0.1
  • 国庆节乡村晚会致辞开场白
  • 港丽餐厅哪些菜比较好吃
  • HTML 新元素
  • 农村文艺晚会主持人主持词
  • 七年级上册历史第一单元试题及答案
  • 梦见琥珀
  • 北师大版六年级下册语文第四单元作文范文北师大六年级下册数学
  • “六一”贺词
  • oppor178十128多少钱
  • 上学期学校少先队工作总结精选多篇
  • 狼子野心文言文阅读答案
  • 实用版个人购房合同
  • 作为一名教师,教学资源检索秘笈有哪些?
  • dataframe 提取月数据_Python|专题(1)??数据处理常规操作集(1)
  • 小学班级个人工作总结范本多篇
  • 狼之桥
  • 猜你喜欢

  • 有关小蜗牛的知识
  • 毕业生及用人单位调研报告
  • 音乐 六年级上册 第2单元 管乐之家 word高清打印版电子书电子课本
  • 班主任工作艺术浅探
  • Zookeeper--入门详解
  • 痛风的预防及饮食指导
  • 人教版小学数学三年级下册总复习知识点归纳及专项练习
  • 华为手机关掉耳机模式
  • 【述职报告】办公室上半年工作总结及下半年打算
  • 理论力学精品课程第一章 静力学概念和公理
  • 《机床电器》杂志社迁址通知
  • 青春经典励志名言语录
  • 当选工会主席感言参考
  • 移动机卡不分离手机掉了怎么办
  • 中华人民共和国建材行业标准辊式细碎机(报批稿)
  • ICU护士长度述职报告 ICU护士长个人年终述职报告
  • 小学六年级想象作文:假如我是一朵云彩
  • 精品解析:【全国县级联考】陕西省汉中市城固县2019届高三10月调研检测考试文数试题解析(原卷版)
  • 模拟试卷-石家庄理工职业学院
  • 民族风情:哈尼族艺术——舞蹈
  • 四川省医疗纠纷预防与处置暂行办法(2012.4.11)
  • 2015年幼儿园团支部工作计划
  • Exercise intolerance in heart failure with preserved ejection fraction: more than a heart problem
  • 辨证分型治疗口腔扁*苔癣
  • CSDN总裁的第一次创业经历蒋涛 PK Leo实录(1)
  • 2020高中历史 第二单元 第6课 罗马法的起源与发展课时作业 新人教版必修1
  • 论党的发展能力是加强执政能力建设的关键
  • 2020年中考数学二轮复*重难题型突破类型二*移旋转折叠问
  • 2017高中生物第3章细胞的代谢第4节细胞呼吸*题浙科版1解析
  • 县政府办领导班子述职述廉报告
  • “生态型领导”模式下团队的构建
  • 小学英语期末考试重点之反义词汇总
  • 2018年环境犯罪案例-word范文模板 (12页)
  • 淘宝劳动合同
  • 北师大版小学四年级数学下《等量关系》教学设计
  • 保养你的笔记本电池
  • 2010年年度司法行政工作总结及工作思路
  • 铅笔画画画图片大全
  • 海口撼宇文化传播有限公司企业信用报告-天眼查
  • 让高考阅卷老师“悦”卷的几条对策
  • 薄荷几月份扦插最好
  • 2019年鄂教版小学语文六年级上册优质课教案10海的颜色
  • 电脑版