简易的C/S系统(实现两个数的和)
2016-07-15 19:59
399 查看
//Client: #include <string.h> #include <sys/socket.h> #include <stdio.h> #include <netinet/in.h> int main(int argc, char **argv){ int sockfd; struct sockaddr_in address; int result; int num1 = 25, num2 = 30, num3 = 0; printf("请输入两个整数"); scanf("%d%d", &num1, &num2); sockfd = socket(AF_INET,SOCK_STREAM, 0); address.sin_family = AF_INET; address.sin_addr.s_addr = inet_addr("127.0.0.1"); address.sin_port = 6666; result = connect(sockfd, (struct sockaddr *) &address, sizeof(address)); if(result == -1){ perror("连接失败了"); return 1; } write(sockfd, &num1, sizeof(num1)); write(sockfd, &num2, sizeof(num2)); read(sockfd, &num3, sizeof(num3)); printf("两个数的和是%d\n", num3); close(sockfd); return 0; }
//Server include<stdio.h> #include<string.h> #include<sys/socket.h> #include<netinet/in.h> int main(int argc, int **argv){ int server_sockfd, client_sockfd; struct sockaddr_in server_address; struct sockaddr_in client_address; //struct sockaddr_in *client_address2; server_sockfd = socket(AF_INET, SOCK_STREAM, 0); server_address.sin_family = AF_INET; server_address.sin_addr.s_addr = inet_addr("127.0.0.1"); server_address.sin_port = 6666; bind(server_sockfd, (struct sockaddr *) &server_address, sizeof(server_address)); listen(server_sockfd, 10); int client_len; //char client_ip[100], client_port[100]; while(1){ int num1, num2, num3; printf("服务器等待消息\n"); client_len = sizeof(client_address); client_sockfd = accept(server_sockfd, (struct sockaddr *) &client_address, (socklen_t *__restrict) &client_len); //sprintf(client_ip, inet_ntoa(client_address.sin_addr)); //client_address2 = (struct sockaddr_in *)&client_address; //printf("你所连接的主机的ip地址为: %s, 端口号是:\n", inet_ntoa(client_address2->sin_addr)); read(client_sockfd, &num1, sizeof(num1)); printf("第一个数是: %d\n", num1); read(client_sockfd, &num2, sizeof(num2)); printf("第二个数是: %d\n", num2); num3 = num1 + num2; write(client_sockfd, &num3, sizeof(num3)); close(client_sockfd); } return 0; }
相关文章推荐
- c# 访问SQL Server 其他会话正在使用事务的上下文
- 2016长乐夏令营 Day6
- 自我介绍-决心书
- 开发安全的web应用程序
- Java集合小结
- 【BZOJ-1336&1337】Alie最小圆覆盖 最小圆覆盖(随机增量法)
- IOS中json字符串原生数据请求&IOS跨平台AES128字符串加解密&AFNetworking框架的简单封装使用
- 软件构架、架构和框架的区别
- linux shell 自动输入y/yes
- js改变style样式和css样式
- OpenCV read video
- HDU 1162 Eddy's picture
- spring MVC框架下前台往java后台传送json数据
- 聪明的质监员(codevs 1138)
- 通过 Docker 化一个博客网站来开启我们的 Docker 之旅
- 归并排序
- SQLite简单理解常用方法与相关类
- dll's .h to dll's .lib
- oracle数据库操作
- jQuery 操作DOM总结,DOM Core操作,HTML-DOM操作和CSS-DOM操作