一枚小生的奋斗 2015-05-06 09:25 采纳率: 10%
浏览 1485

linux文件传输,初学,请大家帮忙,谢谢

我 已经连接上了服务端,它有怎样的信息传输功能呢?图片说明

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "serv_client.h"

int main(int argc,char** argv)
{
int sockfd;
int clientfd;
uint16_t port;
int ret;
pid_t pid;

struct sockaddr_in server_addr;

if ( 2 != argc ){
    printf("usage:command listen_port\n");
    return -1;
}

port = atoi(argv[1]);

server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = INADDR_ANY;
server_addr.sin_port = htons(port);

sockfd = socket(PF_INET,SOCK_STREAM,0);

if (sockfd < 0)   
{   
    perror("open data stream socket failed!\n");   
    return -1;  
}   

ret = bind(sockfd,(struct sockaddr *)&server_addr,sizeof(server_addr));
if(ret < 0)
{
    perror("bind data socket failed!\n");
    return -1;
}   

ret = listen(sockfd, SOMAXCONN );
if( ret < 0)
{
    perror("listening data stream failed!\n");
    return -1;
}

printf("Waiting for client conneciton...\n");
while(1)
{   
    clientfd = accept(sockfd, NULL, NULL);
    if( clientfd < 0)
    {
        perror("accept data connection error!\n");
        return -1;
    }
    pid = fork();
    if ( pid < 0 ){
        perror("fork error!\n");
    }

    if ( 0 == pid ){
        //chid process
        printf("one client come ...\n");
        serv_client(clientfd);
        return 0;
    }

    close(clientfd);
}

}

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "client_process.h"

void usage()
{
printf("command ip_addr port\n");
}

int main(int argc,char **argv)
{
struct sockaddr_in server;
int sockfd;
int port;
int ip_addr;
int ret;

if ( 3 != argc ){
    usage();
    return -1;
}

sockfd = socket(PF_INET, SOCK_STREAM , 0);
if(sockfd < 0)
{
    perror("data stream socket create failed!\n");
    return -1;
}

server.sin_family = AF_INET;
port = atoi(argv[2]);
server.sin_port = htons(port);

ret = inet_pton(AF_INET, argv[1], &server.sin_addr.s_addr);
if ( ret <=0 ){
    printf("your ip address is unvalide!\n");
    usage();
    return -1;
}


ret = connect(sockfd,(struct sockaddr*) &server,sizeof(struct sockaddr_in));
if(ret < 0)
{
    perror("data connection is failed!\n");
    return -1;
}

    printf("connect to server successfully!\n");

    clinet_process( sockfd );

}

  • 写回答

3条回答 默认 最新

  • oyljerry 2015-05-06 09:44
    关注

    connect成功后,就可以send发送信息了,然后服务端接收打印

    评论

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集