小编aro*_*nav的帖子

使用Unix上的套接字在C中发送和接收文件(服务器/客户端)

首先,谢谢大家阅读和帮助,我非常感激.
第二,我很抱歉,但我还是这个网站的新手,英语不是我的母语,所以我可以做一些格式和语言错误.我提前道歉.
另外,我的C知识不是那么好,但我愿意学习和提高.
现在,就此事而言:

我需要做的是创建一个客户端和一个服务器,让服务器侦听传入的连接.
然后我让客户端向服务器发送一个非常大的文本文件(我知道它只是一个文件).
然后,服务器将对该文件执行一些操作(它将在发送的文件上运行一个脚本,该脚本在输出中生成另一个名为"output.txt"的文件).然后,服务器需要将output.txt文件发送回客户端.

现在,我有点如何制作客户端和服务器(我在本网站上阅读了beej指南和其他一些内容),甚至我可能犯了一些错误.我需要一些帮助服务器恢复文件,然后调用脚本并将其他文件发送回客户端.现在我做的是服务器和客户端...我真的不知道如何继续.
在旁注中,我使用我在本网站和互联网上找到的文件制作了这些文件,我希望它们不会太乱,因为我对程序员来说并不是那么好.

这是client.c

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h> 
#include <pthread.h>


#define SOCKET_PORT "50000"
#define SOCKET_ADR "localhost"
#define filename "/home/aryan/Desktop/input.txt"


void error(const char *msg)
{
    perror(msg);
    exit(0);
}


int main()
{
/* Making the client */
int sockfd, portno, n;
struct sockaddr_in serv_addr;
struct hostent *server;

char buffer[256];

portno = atoi(SOCKET_PORT);

sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) 
    error("ERROR opening socket"); …
Run Code Online (Sandbox Code Playgroud)

c sockets linux file send

6
推荐指数
1
解决办法
5万
查看次数

为什么以及如何出现涉及回车的以下输出?

#include <stdio.h>

void main()
{
    printf("ab");
    printf("\bsi");
    printf("\rha");
}
Run Code Online (Sandbox Code Playgroud)

此代码在GCC 4.8编译器上提供"ha"的输出

#include <stdio.h>

void main()
{
    printf("ab");
    printf("\bsi");
    printf("\rha");
    printf("\n");
}
Run Code Online (Sandbox Code Playgroud)

此代码在GCC 4.8编译器上提供"hai"的输出

现在的问题是为什么在添加语句printf("\n")时输出从"ha"变为"hai"; 最后(根据我)不应该因前面的行而影响代码.

c gcc output

4
推荐指数
1
解决办法
95
查看次数

为什么交错的scanf()+ printf()语句导致两个scanf()调用先执行,然后两个printf()调用?

您可以在以下代码中解释一件事:

#include<stdio.h>

int main()
{
    int n;char ch,ch1;
    scanf("%d\n",&n);
    printf("d-%d \n",n);

    scanf("\n%c",&ch);
    printf("ch-%d \n",ch);

    scanf("\n%c",&ch1);
    printf("ch1-%d \n",ch1);

    printf("%d %d %d\n",n,ch,ch1);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么在输入n的值后,它直接询问ch的值然后直接执行语句来打印它们各自的值,即语句:

printf("d-%d \n",n);
printf("ch-%d \n",ch);
Run Code Online (Sandbox Code Playgroud)

c printf scanf

2
推荐指数
1
解决办法
211
查看次数

标签 统计

c ×3

file ×1

gcc ×1

linux ×1

output ×1

printf ×1

scanf ×1

send ×1

sockets ×1