• 大小: 21KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: 其他
  • 标签:

资源简介

本程序以ubuntu为client运行环境,以装有linux系统的arm板为server端,server端以多线程的形式服务client的请求。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
/* server端口号 */
int SERVER_PORT;
int CLIENT_PORT;

/* 读取server端口 并且 随即打开client端口 */
int config_client(char *seraddr)
{
       FILE* fout = fopen(“config_client.in““r“);
       fscanf(fout“%s“seraddr);
       fscanf(fout“%d“&SERVER_PORT);
       fclose(fout);
       return 0;
}

int main(){

pid_t fd;
//char *recv_data;
char buff[100] = “0“; //定义要发送的数据缓冲区;
char ip_buff[20];
int sockfdconnsock; //定义一个socket套接字用于通讯
struct sockaddr_in serveraddr;//定义网络套接字地址结构
        struct sockaddr_in clientaddr;
char recv_buff[100] = “0“;
config_client(ip_buff);


sockfd =socket(AF_INETSOCK_STREAM0); //创建一个套接字
memset(&serveraddr0sizeof(serveraddr));

bzero(&serveraddrsizeof(serveraddr));
serveraddr.sin_family = AF_INET; //指定使用的通讯协议族
serveraddr.sin_port = htons(SERVER_PORT);//指定要连接的服务器的端口

inet_pton(AF_INET ip_buff &serveraddr.sin_addr);

int serverip = serveraddr.sin_addr.s_addr;
printf(“Server ip : %d.%d.%d.%d\n“serverip&255(serverip>>8)&255(serverip>>16)&255(serverip>>24)&255);
                        printf(“Server prot : %d\n“ntohs(serveraddr.sin_port));

connect(sockfd(struct sockaddr *)&serveraddrsizeof(serveraddr)); //连接服务器
while(1){
int num;
printf(“input the words:“);
scanf(“%s“buff);
fflush(stdin);
  if(strcmp(buff “exit“)==0){//如果输入exit,跳出循环  
                     if(send(sockfdbuffsizeof(buff)0)==-1)  
                     {  
                            perror(“send“);  
                            exit(EXIT_FAILURE);  
                     }             
                     break;  
              }                    
              if(send(sockfdbuffsizeof(buff)0)==-1)  
              {  
                     perror(“send“);  
                     exit(EXIT_FAILURE);  
              }
num = recv(sockfdrecv_buffsizeof(recv_buff) 0);//向客户端发送数据
recv_buff[num]=‘\0‘;
printf(“The receive data: %s\n“recv_buff);
recv_buff[0]=‘\0‘;
}
close(sockfd);
return(0);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-12-14 09:51  实验作业(张勇,1101211083)\
     目录           0  2011-12-05 22:22  实验作业(张勇,1101211083)\clients\
     文件        7995  2011-12-05 22:14  实验作业(张勇,1101211083)\clients\clien
     文件        7995  2011-12-05 22:21  实验作业(张勇,1101211083)\clients\client
     文件        2461  2011-12-05 21:18  实验作业(张勇,1101211083)\clients\client.c
     文件        2700  2011-12-05 22:03  实验作业(张勇,1101211083)\clients\client.o
     文件          21  2011-12-04 20:39  实验作业(张勇,1101211083)\clients\config_client.in
     文件         148  2011-12-05 22:02  实验作业(张勇,1101211083)\clients\makefile
     文件         583  2011-12-14 09:51  实验作业(张勇,1101211083)\readme.txt
     目录           0  2011-12-05 22:23  实验作业(张勇,1101211083)\server\
     文件           9  2011-12-04 19:59  实验作业(张勇,1101211083)\server\config_server.in
     文件         231  2011-12-05 22:13  实验作业(张勇,1101211083)\server\makefile
     文件       13037  2011-12-05 22:13  实验作业(张勇,1101211083)\server\serv
     文件        5878  2011-12-05 21:07  实验作业(张勇,1101211083)\server\server.c
     文件        7416  2011-12-05 22:13  实验作业(张勇,1101211083)\server\server.o

评论

共有 条评论

相关资源