代碼抄freebsd開發手冊http://shouce.jb51.net/freebsd-developers-handbook/sockets-essential-functions.html的
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define BACKLOG 6
int main(int argc, char *argv[]){
register int s_sock_fd, c_sock_fd;
struct sockaddr_in s_addr, c_addr;
FILE *client;
int port = 8080;
unsigned int ca_len;
if((s_sock_fd = socket(PF_INET, SOCK_STREAM, 0)) < 0){
perror("socket error.\n");
return 1;
}
bzero(&s_addr, sizeof(s_addr));
s_addr.sin_family = AF_INET;
s_addr.sin_port = htons(port);
if(INADDR_ANY)
s_addr.sin_addr.s_addr = htonl(INADDR_ANY);
if(bind(s_sock_fd, (struct sockaddr *) &s_addr, sizeof(s_addr)) < 0){
perror("bind error.\n");
return 2;
}
switch(fork()){
case -1:
perror("fork error.\n");
return 3;
break;
default:
close(s_sock_fd);
return 0;
break;
case 0:
break;
}
listen(s_sock_fd, BACKLOG);
for(;;){
ca_len = sizeof(c_addr);
if((c_sock_fd = accept(s_sock_fd, (struct sockaddr *) &c_addr, &ca_len)) < 0){
perror("accept error.\n");
return 4;
}
if((client = fdopen(c_sock_fd, "w")) < 0){
perror("fdopen error.\n");
return 5;
}
fprintf(client, "<html>... ...</html>");
fclose(client);
}
}
uj5u.com熱心網友回復:
INADDR_ANY的值就是0,是不是寫反了???
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/218953.html
標籤:C語言
上一篇:陣列
下一篇:大學生初學C語言 求助大神
