下面的两个程序实现了这样的功能: 客户端每1s产生一个随机数, 之后将产生的随机数转为字符串类型, 发送至服务端; 服务端在接收到数据后通过printf()函数将这个随机数显示到终端. 这个程序的思路可用于PC机和ARM开发板间的数据通信.
// server.c 服务端
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <arpa/inet.h>
#define SERVPORT 3333
#define BACKLOG 10
int main()
{
int sockfd,client_fd;
int recvbytes;
int sin_size;
char buf[50];
struct sockaddr_in my_addr;
struct sockaddr_in remote_addr;
sockfd = socket(AF_INET, SOCK_STREAM, 0);//建立socket --
my_addr.sin_family=AF_INET;//AF_INET地址族
my_addr.sin_port=htons(SERVPORT);//设定端口号(host -> networks)
my_addr.sin_addr.s_addr = INADDR_ANY;//32位IPv4地址
bzero(&(my_addr.sin_zero),8); //置前8个字节为0
if (bind(sockfd, (struct sockaddr