异常:Handling ClientRegistrationException error: No client with requested id: null

异常:Handling ClientRegistrationException error: No client with requested id: null

解决方案:传递参数的时候 传client_id

要实现在Windows下使用C编写Web服务器,并将CSS文件输出到网页上,您需要完成以下步骤: 1. 在服务器上设置文件系统路径,以在Web浏览器中访问文件。 2. 在代码中处理HTTP请求并将其与适当的文件系统路径相关联。 3. 读取CSS文件的内容。 4. 将CSS文件的内容添加到HTTP响应中。 5. 发送HTTP响应到浏览器,以便在网页中呈现CSS样式。 下面是一个简单的示例代码,它可以实现将CSS文件输出到网页上: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <WinSock2.h> #define BUF_SIZE 1024 #define SMALL_BUF 100 void error_handling(char *message); int main(int argc, char *argv[]) { WSADATA wsaData; SOCKET serv_sock, clnt_sock; char buf[BUF_SIZE], method[10], ct[SMALL_BUF], file_name[SMALL_BUF]; FILE *clnt_read, *clnt_write; SOCKADDR_IN serv_adr, clnt_adr; int clnt_adr_sz, i; if(argc!=2) { printf("Usage : %s <port>\n", argv[0]); exit(1); } if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) error_handling("WSAStartup() error!"); serv_sock=socket(PF_INET, SOCK_STREAM, 0); if(serv_sock == INVALID_SOCKET) error_handling("socket() error!"); memset(&serv_adr, 0, sizeof(serv_adr)); serv_adr.sin_family=AF_INET; serv_adr.sin_addr.s_addr=htonl(INADDR_ANY); serv_adr.sin_port=htons(atoi(argv[1])); if(bind(serv_sock, (SOCKADDR*)&serv_adr, sizeof(serv_adr))==SOCKET_ERROR) error_handling("bind() error!"); if(listen(serv_sock, 20)==SOCKET_ERROR) error_handling("listen() error!"); clnt_adr_sz=sizeof(clnt_adr); for(i=0; i<5; i++) { clnt_sock=accept(serv_sock, (SOCKADDR*)&clnt_adr, &clnt_adr_sz); if(clnt_sock == INVALID_SOCKET) error_handling("accept() error!"); else printf("Connected client %d \n", i+1); clnt_read = fdopen(clnt_sock, "r"); clnt_write = fdopen(dup(clnt_sock), "w"); fgets(buf, BUF_SIZE, clnt_read); if(strstr(buf, "HTTP/")==NULL) { fputs("Invalid request!\n", clnt_write); fclose(clnt_read); fclose(clnt_write); continue; } strcpy(method, strtok(buf, " /")); strcpy(file_name, strtok(NULL, " /")); strcpy(ct, strrchr(file_name, '.')+1); if(strcmp(ct, "css")!=0) { fputs("Content-Type:text/html;charset=utf-8\n\n", clnt_write); fprintf(clnt_write, "<html><head><title>Not CSS file</title></head>"); fprintf(clnt_write, "<body><p>The requested file is not a CSS file.</p></body></html>"); fclose(clnt_read); fclose(clnt_write); } else { fputs("Content-Type:text/css;charset=utf-8\n\n", clnt_write); clnt_read = fopen(file_name, "r"); while(fgets(buf, BUF_SIZE, clnt_read)!=NULL) { fputs(buf, clnt_write); fflush(clnt_write); } fclose(clnt_read); fclose(clnt_write); } } closesocket(serv_sock); WSACleanup(); return 0; } void error_handling(char *message) { fputs(message, stderr); fputc('\n', stderr); exit(1); } ``` 在这个示例中,我们通过判断文件扩展名是否是“.css”来判断是否为CSS文件,然后读取CSS文件的内容并将其添加到HTTP响应中,最后将响应发送回浏览器。 注意,这个示例只是一个简单的例子,实际上实现一个完整的Web服务器需要更多的代码和功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值