文章目录
题目要求
利用TCP Socket实现PC机与目标板的通讯,目标板作为服务端,服务端按要求给两个客户端传送文件。
作业要求:
1)交电子文档,需要源代码。
2)上机演示
一、软硬件准备
1、硬件准备
Linux开发箱
2、软件准备
Ubuntu
VMware
超级终端
二、编译生成可执行文件
1、新建server.c并gcc编译生成fuwuqi
此过程参考上一篇文章,略
#include <stdio.h>
#include <netdb.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <netinet/in.h>
#include <pthread.h>
#define portnum 12345
#define FILE_SIZE 500
#define BUFFER_SIZE 1024
void *net_thread(void * fd);
int main()
{
//初始化套接字
int server_fd=socket(AF_INET,SOCK_STREAM,0);
if(-1==server_fd)
{
perror("socket");
exit(1);
}
//绑定端口和ip;
struct sockaddr_in server_addr; //struct sockaddr_in为结构体类型 ,server_addr为定义的结构体
server_addr.sin_family=AF_INET; //Internet地址族=AF_INET(IPv4协议)
server_addr.sin_port=htons(portnum); //将主机字节序转化为网络字节序 ,portnum是端口号
(server_addr.sin_addr).s_addr=htonl(INADDR_ANY);//IP地址
if(-1==bind(server_fd,(struct sockaddr *)&server_addr,sizeof(server_addr))) //套接字与端口绑定
{
perror("bind");
exit(6);
}
//开启监听
if(-1==listen(server_fd,5)) //5是最大连接数,指服务器最多连接5个用户
{
perror("listen");
exit(7);
}
while(1)
{
struct sockaddr_in client_addr;
int size=sizeof(client_addr);
int new_fd

本文介绍了如何使用TCP Socket在Linux开发板与个人计算机(PC)之间实现通信。首先,文章概述了所需的软硬件准备,包括Linux开发箱和Ubuntu等软件。接着,详细阐述了编译生成可执行文件的步骤,包括创建server.c和client.c,并分别编译为fuwuqi(服务端)和kehu(客户端)。通过将fuwuqi部署到Linux开发板并执行,同时在VMware中运行kehu,成功实现了文件的传输和通信。
最低0.47元/天 解锁文章
2056





