[问题] 用C语言写的socket程序,怎么把server返回给client的信息在浏览器显示?

软件和网站开发以及相关技术探讨
头像
TheChampionHeart
帖子: 98
注册时间: 2007-10-06 20:49
来自: 中国,天津(Tianjin China)

搞定了 谢谢大家的帮助!

#16

帖子 TheChampionHeart » 2007-11-03 16:04

代码:server.c
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>
#include<sys/wait.h>

#define SERVPORT 3333
#define BACKLOG 10
#define MESG "<head></head><body><html><h1>Successfully Connected</h1>\
<p>You have connected to the server smoothly :-).</html></body\n>"

main()
{
int sockfd,client_fd;
struct sockaddr_in my_addr;
struct sockaddr_in remote_addr;
if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1)
{
perror("socket 创建出错");
exit(1);
}
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(SERVPORT);
my_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(my_addr.sin_zero),8);

if(bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))==-1){
perror("bind 出错");
exit(1);
}

if(listen(sockfd,BACKLOG)==-1)
{
perror("listen 出错");
exit(1);
}

while(1)
{
int sin_size = sizeof(struct sockaddr_in);
client_fd = accept(sockfd,(struct sockaddr *)&remote_addr,
&sin_size);
if(client_fd == -1)
{
perror("accept 出错");
continue;
}
printf("Now I am receiving a connection from %s\n",inet_ntoa(remote_addr.sin_addr));
if(!fork())
{
if(send(client_fd,MESG,strlen(MESG),0)==-1)
perror("send 出错");
close(client_fd);
exit(0);
}
close(client_fd);
}

}
附件
screenshot1.png
liujunwei
帖子: 5
注册时间: 2007-10-30 18:58

我现在也在为这个问题发愁呢?

#17

帖子 liujunwei » 2007-11-14 7:42

上面的人都在说什么?根本就是不知道怎么回事?一顿瞎扯。
我现在做了个文本的浏览器,但是能分析出超连接和表单,但是不知道如何判断超连接被点击。大家交流一下阿!
头像
AutumnHealth
帖子: 776
注册时间: 2006-12-20 18:41

#18

帖子 AutumnHealth » 2007-11-14 22:04

事件模型
尽情享受生活~

Welcome to AutumnHealth's blog:
http://forum.ubuntu.org.cn/weblog.php?w=1421
http://blog.csdn.net/autumnhealth
回复