Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1260277
  • 博文数量: 548
  • 博客积分: 7597
  • 博客等级: 少将
  • 技术积分: 4224
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 13:21
个人简介

嵌入式软件工程师&&太极拳

文章分类

全部博文(548)

文章存档

2014年(10)

2013年(76)

2012年(175)

2011年(287)

分类: 嵌入式

2012-04-18 15:09:47

2009-05-04 21:33

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

#define PORT 1234
#define BACKLOG 10
#define MAX_CONNECTED_NO 10
#define MAXDATASIZE 100
int main()
{
struct sockaddr_in server_addr,client_addr;
int sin_size,recvbytes,flags;
int sockfd,client_fd;
char buf[MAXDATASIZE];
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){
   perror("socket error");
   exit(1);
}
server_addr.sin_family=AF_INET;
server_addr.sin_port=htons(PORT);
server_addr.sin_addr.s_addr=INADDR_ANY;
bzero(&(server_addr.sin_zero),8);
if(bind(sockfd,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1){
   perror("bind");
   exit(1);
}

printf("bind success!\n");
if(listen(sockfd,BACKLOG)==-1){
perror("listen error");
exit(1);
}

if((flags=fcntl(sockfd,F_SETFL,0))<0)
perror("fcntl F_SETFL");
flags|=O_NONBLOCK;
if(fcntl(sockfd,F_SETFL,flags)<0)
perror("fcntl");
while(1){
sin_size=sizeof(struct sockaddr_in);
if((client_fd=accept(sockfd,(struct sockaddr*)&client_addr,&sin_size))==-1){
    perror("accept");
    exit(1);
}
if((recvbytes=recv(client_fd,buf,MAXDATASIZE,0))==-1){
   perror("recv error");
   exit(1);
}

if(read(client_fd,buf,MAXDATASIZE)<0){
perror("read error");
exit(1);
}
close(client_fd);
exit(1);

http://hi.baidu.com/ppln/blog/item/e7d964ecbcce9f4778f055b2.html
阅读(621) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~