项目名称 |
【苏嵌实训-嵌入式 linux C 第 10 天】 |
今日进度以及任务 |
Linux 网络编程 |
本日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量) |
作业 server.c: #include <stdio.h> #include <stdlib.h> #include <strings.h> #include <string.h>
#include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h>
#define PORT 33333
int main() { int servfd; int cliefd;
int opt; int cl_len;
char buff[1024];
struct sockaddr_in servaddr; struct sockaddr_in clieaddr;
servfd = socket(AF_INET, SOCK_STREAM, 0); if(servfd == -1) { perror("socket error:"); exit(1); }
printf("socket success!\n");
bzero(&servaddr, sizeof(struct sockaddr_in)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(PORT); servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");
opt = 1; setsockopt(servfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
if(bind(servfd, (struct sockaddr *)(&servaddr), sizeof(struct sockaddr_in)) < 0) { perror("bind error:"); exit(1); }
printf("bind success!\n");
if(listen(servfd, 3) < 0) { perror("listen error:"); exit(1); }
printf("listen success!\n");
while(1){
memset(buff, 0, sizeof(buff));
bzero(&clieaddr, sizeof(struct sockaddr_in)); cl_len = sizeof(struct sockaddr_in);
printf("accepting ........ \n");
cliefd = accept(servfd, (struct sockaddr *)(&clieaddr), &cl_len); if(cliefd == -1) { perror("accept error:"); exit(1); }
printf("ip: %s port: %d\n", inet_ntoa(clieaddr.sin_addr), ntohs(clieaddr.sin_port));
read(cliefd, buff, sizeof(buff));
printf("recv = %s\n", buff);
usleep(2);
write(cliefd, buff, strlen(buff)); }
return 0; } client.c: #include <stdio.h> #include <stdlib.h> #include <strings.h> #include <string.h>
#include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h>
#define PORT 33333
int main() { int cliefd;
char buff[1024];
struct sockaddr_in servaddr;
cliefd = socket(AF_INET, SOCK_STREAM, 0); if(cliefd == -1) { perror("socket error:"); exit(1); }
printf("socket success!\n");
bzero(&servaddr, sizeof(struct sockaddr_in)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(PORT); servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");
if(connect(cliefd, (struct sockaddr *)(&servaddr), sizeof(struct sockaddr_in)) < 0) { perror("connection error:"); exit(1); }
printf("connect success!\n");
write(cliefd, "hello world!", 13);
memset(buff, 0, sizeof(buff));
read(cliefd, buff, sizeof(buff));
printf("recv = %s\n", buff);
return 0; } 运行结果1:[vic@localhost note]$ ./server socket success! bind success! listen success! accepting ........ ip: 127.0.0.1 port: 46084 recv = hello world! accepting ........ ip: 127.0.0.1 port: 46086 recv = hello world! accepting ........ ip: 127.0.0.1 port: 46088 recv = hello world! accepting ........ ip: 127.0.0.1 port: 46090 recv = hello world! accepting ........ 运行结果2: [vic@localhost note]$ ./client socket success! connect success! recv = hello world! [vic@localhost note]$ ./client socket success! connect success! recv = hello world! [vic@localhost note]$ ./client socket success! connect success! recv = hello world! [vic@localhost note]$ ./client socket success! connect success! recv = hello world! |
本日开发中出现的问题汇总 |
无 |
本日未解决问题 |
无 |
本日开发收获 |
1. 学会了 Linux网络结构等知识
|
其他 |
今后也要认真学习 |
详细解决方案
苏嵌实训-嵌入式 linux C 第 10?天
热度:3 发布时间:2024-01-28 06:23:55.0
相关解决方案
- linux+tomcat部署JSP项目有关问题,找不到jar依赖包
- linux 上log4j使用,日志输出的配置
- linux 上Tomcat不解析.war包
- 使用moto sdk 6.2 for linux 模拟器调试 蓝牙程序时的有关问题
- 文件下传到系统中后,没有执行权限(linux)
- linux 命令 求解解决方法
- Linux 和windows中文乱码解决办法
- linux 上安装oracle10g
- linux 下安装oracle10g,该如何解决
- linux g_serial 的模块装配!
- 求真相,linux &arm 和c\c++有关的开发真的如何悲剧吗
- linux 如何运行c程序
- arm-linux-gcc下的字节对齐有关问题
- 好久没来CSDN了,散分,顺便说一句如何没有嵌入式开发(linux)
- linux下怎么使用arm-linux-gcc编译器
- 怪事【AT91RM9200+LINUX+PC6脚】
- linux+wifi+ap的一些有关问题
- linux 装置模型
- linux 有关问题
- linux 下汇编有关问题3,高人指教!
- linux 下汇编有关问题2,高人指教!
- linux 下汇编有关问题,高人指教!
- linux 下汇编有关问题,高人指教,初学,
- linux 下汇编有关问题4,高人指教!
- redhat5 linux 下汇编有关问题
- linux 上 WebSphere日志中文乱码
- suse linux 11上安装wepsphere6.1 报错?
- linux ubuntu 安装webspher,该如何解决
- suse linux 11下安装wepsphere6.1 报错?该怎么解决
- linux 下 WebSphere日志中文乱码,该如何处理