免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 929 | 回复: 0
打印 上一主题 下一主题

Linux TCP Server and client programm 1 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-02 16:57 |只看该作者 |倒序浏览

/*****************************************************************
*Name: server.c
*Key words: socket bind listen accept recv
*****************************************************************/
#include
#include
#include
#include
#include
#include
#include
#include
#define SERVER_PORT 3333
#define BACKLOG 10
#define MAX_CONNECTED_NO 10
#define MAXDATASIZE 100
int main(int argc, char **argv)
{
struct sockaddr_in server_sockaddr_in, client_sockaddr_in;
int sin_size, recvbytes;
int sockfd, client_fd;
char buf[MAXDATASIZE+1];
// create a socket
if((sockfd = socket(AF_INET, SOCK_STREAM,0)) == -1) {
  perror("socket");
  return -1;
}
printf("create socket success! sockfd = %d\n", sockfd);
//init server_sockaddr_in
server_sockaddr_in.sin_family=AF_INET;   //IPV4
server_sockaddr_in.sin_port=htons(SERVER_PORT);  //Local Listen Port
server_sockaddr_in.sin_addr.s_addr=INADDR_ANY;  //Local IP Addresses if host has multi ip addresses
bzero(&(server_sockaddr_in.sin_zero), 8);   //bzero
//bind, bind sockfd with local sockaddr_in struct
if(bind(sockfd, (struct sockaddr *)&server_sockaddr_in, sizeof(struct sockaddr)) == -1) {
  perror("bind");
  return -1;
}
printf("bind success!\n");

//listen
if(listen(sockfd, BACKLOG) < 0) {
  perror("listen");
  return -1;
}
printf("listen...\n");
if((client_fd = accept(sockfd, (struct sockaddr *)&client_sockaddr_in, &sin_size)) < 0) {
  perror("accept");
  return -1;
}
printf("accept success\n");
memset(buf,0x00,sizeof(buf));
if((recvbytes=recv(client_fd, buf, MAXDATASIZE, 0)) < 0) {
  perror("recv");
  return -1;
}
printf("received a connection: %s\n", buf);
close(sockfd);
return 0;
}


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/98019/showart_1952680.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP