c++ - Masalah operasi pelayan web dilaksanakan dalam bahasa c
phpcn_u1582
phpcn_u1582 2017-06-30 09:57:18
0
1
1252
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>

void error_handling(char *message);

int main(int argc,char *argv[])
{
    int serv_sock;
    int clnt_sock;

    struct sockaddr_in serv_addr;
    struct sockaddr_in clnt_addr;
    socklen_t clnt_addr_size;

    char message[] = "HTTP/1.1 200 OK\r\nContent-Type:text/html\r\n\r\nentity-body:<html>sdf</html>";
    
    
    if(argc!=2){
        printf("usage: %s <port>\n",argv[0]);
        exit(1);    
    }
    
    serv_sock = socket(PF_INET,SOCK_STREAM,0);
    if(serv_sock == -1)
        error_handling("socket() error");

    memset(&serv_addr, 0 ,sizeof(serv_addr));

    serv_addr.sin_family = AF_INET;
    serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
    serv_addr.sin_port = htons(atoi(argv[1]));

    if(bind(serv_sock,(struct sockaddr*) &serv_addr,sizeof(serv_addr))==-1)error_handling("bind() error");

    if(listen(serv_sock,5)==-1)
        error_handling("listen() error");
    clnt_addr_size = sizeof(clnt_addr);
    clnt_sock = accept(serv_sock,(struct  sockaddr*)&clnt_addr,&clnt_addr_size);

    if(clnt_sock==-1)
        error_handling("accept() error");

    write(clnt_sock,message,sizeof(message));
    close(clnt_sock);
    close(serv_sock);
    return 0;

}
void error_handling(char *message)
{
    fputs(message,stderr);
    fputc('\n',stderr);
    exit(1);
}

Apabila berjalan pada Linux dan mengaksesnya dalam penyemak imbas, anda akan digesa untuk memuat turun fail bin Jika anda menjalankannya pada Win melalui cygwin, anda tidak boleh mengakses pelayan. Tolong beritahu saya cara membuat penyemak imbas menerima html yang dihantar dalam kod

phpcn_u1582
phpcn_u1582

membalas semua(1)
淡淡烟草味

Ia tidak semestinya masalah dengan program ini. Sebelum menggunakan penyemak imbas, adakah anda telah mencuba telnet atau wget/curl ke port di bawah cygwin untuk melihat sama ada ia tersedia? Malah dalam Linux, akses kepada port di bawah 2048 memerlukan kebenaran daripada pengguna pentadbir.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan