首页 > 其他 > 详细

Socket

时间:2016-08-01 15:41:08      阅读:214      评论:0      收藏:0      [点我收藏+]

 

Socket


一、Server

 int server_fd,client_fd;

// 地址蔟、socket类型、通信协议
server_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (server_fd < 0) {
printf("socket error\n");
return -1;
}

struct sockaddr_in addr,clientAddr;
bzero(&addr,sizeof(addr));

addr.sin_family = AF_INET;
addr.sin_port = htons(7787);
addr.sin_addr.s_addr = INADDR_ANY; // inet_addr("127.0.0.0")

// 地址绑定
bind(server_fd, (struct sockaddr_in *)&addr, sizeof(struct sockaddr_in));

// 100 最大连接数,监听连接请求--监听队列长度为 100
listen(server_fd, 100);

// 阻塞,直到有客户端连接
int s_size = sizeof(struct sockaddr_in);
client_fd = accept(server_fd, (struct sockaddr_in *)&clientAddr, &s_size);
if (client_fd >= 0) {
printf("connect client:%s\n",inet_ntoa(clientAddr.sin_addr));
}

二、Client

 int fd;

// 网络层协议: 决定抵制类型(ipv4、ipv6)AF_INET AF_INET6
// socket类型:SOCK_STREAM SOCK_DGRAM
// 运输层协议: IPPROTO_TCP IPPROTO_UDP
fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (fd <= 0) {
perror("open socket error\n");
return -1;
}

struct sockaddr_in addr;
bzero(&addr,sizeof(addr));

addr.sin_family = AF_INET;
addr.sin_port = htons(8088);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");

// connect 成功返回0
if (connect(fd, (struct sockaddr_in *)&addr, sizeof(addr)) < 0) {
perror("connect error\n");
return -1;
}
 

Socket

原文:http://www.cnblogs.com/buakaw/p/5725686.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!