socket服务器简易连接

1.socket:创建socket伪文件生成文件描述符fd
2.bind: 给fd绑定端口和ip;
3.listen;给当前socket设置最大客户端链接
4.accept:阻塞等待客户端连接;生成客户端的fd,addr结构体(客户端端口,ip等内容)
5.read:读数据
6.write:写数据
7.close:关闭服务器的socket和客户端的socket;

#include<stdio.h>
  2 #include<stdlib.h>
  3 #include<string.h>
  4 #include<unistd.h>
  5 #include<sys/types.h>
  6 #include<sys/socket.h>
  7 #include<ctype.h>
  8 #include<netinet/in.h>
  9 #include<arpa/inet.h>
 10 #define SERVER_PORT 8000
 11 int main()
 12 {
 13         int lfd,cfd;
 14         struct sockaddr_in addr;
 15         struct sockaddr_in caddr;
 16         lfd = socket(AF_INET,SOCK_STREAM,0);//定义socket文件
 17 
 18         addr.sin_family=AF_INET;
 19         addr.sin_port = htons(8000);
 20         addr.sin_addr.s_addr = htonl(INADDR_ANY);
 21 
 22         bind(lfd,( struct sockaddr *)&addr,sizeof(addr));//将socket套接字绑定在固定端口和ip
 23 
 24         listen(lfd,128);//设置套接字的最大客户端连接数
 25 
 26         socklen_t socketlen = sizeof(caddr);
 27         int n = 0,i=0;
 28         char buf[BUFSIZ];
 29         cfd = accept(lfd,( struct sockaddr*)&caddr,&socketlen);//接收客户端连接
 30         while(1)
 31         {
 32                 n=read(cfd,buf,BUFSIZ);//读数据
 33                 for(i=0;i<n;i++)
 34                         buf[i]=toupper(buf[i]);
 35                 write(cfd,buf,n);//写数据
 36         }
 37         close(lfd);
 38         close(cfd);
 39         exit(1);
 40 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YanWenCheng_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值