服务器端
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#define PORT 2000
#define BACKLOG 1
int main(int argc,char ** argv)
{
int fd1,fd2;
int t;
struct sockaddr_in server_addr,client_addr;
socklen_t len;
if((fd1=socket(AF_INET,SOCK_STREAM,0))==-1)
{
printf("socket error\n");
exit(1);
}
t=SO_REUSEADDR;
setsockopt(fd1,SOL_SOCKET,SO_REUSEADDR,&t,sizeof(t));
bzero(&server_addr,sizeof(server_addr));
server_addr.sin_family=AF_INET;
server_addr.sin_port=htons(PORT);
server_addr.sin_addr.s_addr=htonl(INADDR_ANY);
if(bind(fd1,(struct sockaddr *)&server_addr,sizeof(server_addr))==-1)
{
printf("bind() error!\n");
exit(1);
}
if(listen(fd1,BACKLOG)==-1)
{
printf("listen() error\n");
exit(1);
}
len=sizeof(client_addr);
if((fd2=accept(fd1,(struct sockaddr*)&client_addr,&len))==-1)
{
printf("accept() error\n");
exit(1);
}
printf("the client's IP is %s,PORT is %d\n",inet_ntoa(client_addr.sin_addr),htons(client_addr.sin_port));
send(fd2,"nice to meet you\n",18,0);
close(fd2);
close(fd1);
}
客户端
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
#define PORT 2000
#define DATASIZE 200
int main(int argc,char ** argv)
{
int fd;
int count;
char buffer[DATASIZE];
struct hostent *h;
struct sockaddr_in server_addr;
if(argc!=2)
{
printf("usage:%s <IP address>\n",argv[0]);
exit(1);
}
if((h=gethostbyname(argv[1]))==NULL)
{
printf("gethostbyname() error\n");
exit(1);
}
if((fd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
printf("socket() error\n");
exit(1);
}
bzero(&server_addr,sizeof(server_addr));
server_addr.sin_family=AF_INET;
server_addr.sin_port=htons(PORT);
server_addr.sin_addr=*((struct in_addr*)h->h_addr);
if(connect(fd,(struct sockaddr*)&server_addr,sizeof(server_addr))==-1)
{
printf("connect() error\n");
exit(1);
}
if((count=recv(fd,buffer,DATASIZE,0))==-1)
{
printf("recv() error\n");
exit(1);
}
buffer[count-1]='\0';
printf("from server : %s\n ",buffer);
close(fd);
}
ubantu上 用 gcc 编译 和 arm-linux-gcc编译
通过nfs将文件共享到arm板上
可以实现