跨平台socket 简单实现
2010-06-26 04:04
211 查看
header
代码
int socket_num;
int conns = 0;
char buf[512];
int new_fd;
fd_set fdsr;
unsigned int fd_A[5];
memset(fd_A, 0, sizeof(fd_A));
socket_init();
socket_num = socket_create_acceptor(14001);
while(!shutdown){
FD_ZERO( &fdsr );
FD_SET((u_int)socket_num,&fdsr);
for (int i = 0; i < 5; i++)
{
if (fd_A[i] != 0)
FD_SET(fd_A[i], &fdsr);
}
int result = select( FD_SETSIZE, &fdsr, 0, 0, 0);
if ( result < 0 )
break;
else if (result == 0)
continue;
// check every fd in the set
for (int i = 0; i < conns; i++)
{
if (FD_ISSET(fd_A[i], &fdsr))
{
int ret = recv(fd_A[i], buf, sizeof(buf), 0);
if (ret <= 0)
{
socket_close(fd_A[i]);
FD_CLR(fd_A[i], &fdsr);
fd_A[i] = 0;
}
else
{
//handle message
}
}
}
if (FD_ISSET(socket_num, &fdsr))
{
//handle new connection
new_fd = socket_accept(socket_num);
if (new_fd <= 0)
continue;
if (conns < 5)
fd_A[conns++] = new_fd;
else
socket_close(new_fd);
}
}
for (int i = 0; i < 5; i++)
{
if (fd_A[i] != 0)
socket_close(fd_A[i]);
}
socket_term();
代码
int socket_num;
int conns = 0;
char buf[512];
int new_fd;
fd_set fdsr;
unsigned int fd_A[5];
memset(fd_A, 0, sizeof(fd_A));
socket_init();
socket_num = socket_create_acceptor(14001);
while(!shutdown){
FD_ZERO( &fdsr );
FD_SET((u_int)socket_num,&fdsr);
for (int i = 0; i < 5; i++)
{
if (fd_A[i] != 0)
FD_SET(fd_A[i], &fdsr);
}
int result = select( FD_SETSIZE, &fdsr, 0, 0, 0);
if ( result < 0 )
break;
else if (result == 0)
continue;
// check every fd in the set
for (int i = 0; i < conns; i++)
{
if (FD_ISSET(fd_A[i], &fdsr))
{
int ret = recv(fd_A[i], buf, sizeof(buf), 0);
if (ret <= 0)
{
socket_close(fd_A[i]);
FD_CLR(fd_A[i], &fdsr);
fd_A[i] = 0;
}
else
{
//handle message
}
}
}
if (FD_ISSET(socket_num, &fdsr))
{
//handle new connection
new_fd = socket_accept(socket_num);
if (new_fd <= 0)
continue;
if (conns < 5)
fd_A[conns++] = new_fd;
else
socket_close(new_fd);
}
}
for (int i = 0; i < 5; i++)
{
if (fd_A[i] != 0)
socket_close(fd_A[i]);
}
socket_term();
相关文章推荐
- 简单实现基于TCP的Socket多线程通信
- JAVA系列课程讲座二:使用Socket通信实现简单聊天通信程序(UDP方式)
- java简单Socket聊天室程序的实现
- socket实现简单的上传下载
- 面向连接的Socket Server的简单实现
- java使用socket实现http简单get请求
- 简单RPC之Socket实现
- Socket原理及C/S简单代码实现
- TCP socket 简单实现
- android的Socket编程---实现简单的服务器,并与客户端通信
- 【java学习记录】12.用Socket网络访问方法,实现简单的网络聊天程序
- 通过Socket实现简单web服务器功能(接收页面请求信息)不使用Tomcat!
- android Socket实现简单聊天功能以及文件传输
- php socket通信简单实现
- socket编程(一),实现服务器与客户端简单通信
- java基于TCP的socket编程简单实现[代码实践过]
- 用Socket实现的简单客户端和服务端程序(一)
- 网络编程:使用Socket实现简单的服务器和客户端的通信
- socket通信简单实现
- 通过socket和Udp协议简单实现一个群体聊天工具(控制台)