1 //服务端程序
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <string.h>
5 #include <sys/types.h>
6 #include <unistd.h>
7 #include <arpa/inet.h>
8 #include <netinet/in.h>
9 #include <ctype.h>
10
11 int main()
12 {
13 //创建socket
14 //int socket(int domain,int type,int protocol)
15 int lfd = socket(AF_INET,SOCK_STREAM,0);
16 if(lfd < 0)
17 {
18 perror("socket error");
19 return -1;
20 }
21
22 //int bind(int socket,const struct sockaddr *addr,socklen_t addrlen );
23 //将文件描述符与端口进行绑定
24 struct sockaddr_in serv;
25 bzero(&serv,sizeof(serv));
26 serv.sin_family = AF_INET;
27 serv.sin_port = htons(8888);
28 serv.sin_addr.s_addr = htonl(INADDR_ANY);//表示使用本地任意可用IP
29 int ret = bind(lfd,(struct sockaddr *)&serv,sizeof(serv));
30 if(ret < 0)
31 {
32 perror("bind error");
33 return -1;
34 }
35
36 //监听
37 //int listen(int sockfd,int backlog);
38 listen(lfd,128);
39
40 //int accept(int socket,struct sockaddr *addr,socklen_t *addrlen);
41 int cfd = accept(lfd,NULL,NULL);
42 printf("lfd==[%d],cfd==[%d]\n",lfd,cfd);
43
44 int i = 0;
45 int n = 0;
46 char buf[1024];
47
48 while(1)
49 {
49 {
50 //读数据
51 memset(buf,0x00,sizeof(buf));
52 n = read(cfd,buf,sizeof(buf));
53 if(n <= 0 )
54 {
55 printf("read error or connect close, n==[%d]\n",n);
56 break;
57 }
58 printf("n==[%d],buf==[%s]\n",n,buf);
59
60 for(i = 0; i < n; i++)
61 {
62 buf[i] = toupper(buf[i]);
63 }
64
65 //发送数据
66 write(cfd,buf,n);
67 }
68
69 //关闭监听文件描述符和通信文件描述符
70 close(lfd);
71 close(cfd);
72 }
Linux网络编程 | 服务端开发流程代码示例
最新推荐文章于 2023-06-08 22:06:49 发布