fp = fopen("image.jpg","rb");
if (!fp)
exit(1);
fseek(fp,0,SEEK_END);
len = ftell(fp);
fseek(fp,0,SEEK_SET);
buf = (char *)malloc(len);
fread(buf,len,1,fp);
fclose(fp);
if (WSAStartup(0x0202,&wsa) != 0)
{
printf("Error code : %d",WSAGetLastError());
return 1;
}
if((s = socket(AF_INET , SOCK_STREAM , 0)) == INVALID_SOCKET)
{
printf("Error code : %d" , WSAGetLastError());
WSACleanup();
exit(1);
}
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = htons(8888);
if(bind(s ,(struct sockaddr *)&server , sizeof(server)) == SOCKET_ERROR)
{
printf("Error code : %d" , WSAGetLastError());
closesocket(s);
WSACleanup();
exit(EXIT_FAILURE);
}
sprintf(str,"%d",len);
strcpy(message,"HTTP/1.1 200 OK\r\nContent-Length: ");
sprintf(message,"%s %s",message,str);
sprintf(message,"%s %s",message,"\r\nContent-Type: image/jpeg\r\n\r\n");
sprintf(message,"%s %s",message,buf);
sprintf(message,"%s %s",message,"\r\n");
listen(s , 100);
c = sizeof(struct sockaddr_in);
while((new_socket = accept(s , (struct sockaddr *)&client, &c)) != INVALID_SOCKET)
{
memset(recvdata,'\0',sizeof(recvdata));
recv(new_socket,recvdata,2000,0);
send(new_socket , message , strlen(message) , 0);
}
if (new_socket == INVALID_SOCKET)
{
printf("Error code : %d" , WSAGetLastError());
closesocket(s);
WSACleanup();
return 1;
}
closesocket(s);
WSACleanup();
return 0;
我有發送圖像文件有問題。這是通信的服務器端,瀏覽器將是客戶端。當我嘗試連接到服務器時,服務器接受連接並且一切正常。然後我想發送圖像作爲響應,並且它應該在瀏覽器中顯示。任何人都可以告訴我這裏有什麼問題嗎?
客戶端收到什麼數據? – peterph
GET/HTTP/1.1 的User-Agent:歌劇/ 9.80(Windows NT的6.1; WOW64)的Presto/2.12.388版本/ 12.12 主持人:127.0.0.1:8888 接受:text/html的,應用/ XML ; q = 0.9,application/xhtml + xml,image/png,image/webp,image/jpeg,image/gif,image/x-xbitmap,*/*; q = 0.1 Accept-Language:en-US, en; q = 0.9 Accept-Encoding:gzip,deflate Connection:Keep-Alive 這是客戶端收到的。 – user1973035