ds socket Ä£¿é :-)
²»¸Ê¼Åį,ÓÖ¿ªÊ¼·â×° socket Ä£¿é,ÉÙÁ¿C++Óï·¨,¹¹³É¼ò½àµÄÍøÂç½Ó¿ÚÄ£ÐÍ,ÔÚÕâÖ®ÉÏ,¿ÉÒÔ·â×°¸üºÃµÄC++½Ó¿Ú.Ö»ÐèÒª±ä»» namespace ¾Í¿ÉÒÔÇл»UDP ºÍ TCP, ¼¸ºõ²»ÓÃÐÞ¸ÄÈκδúÂë.
µ×²ãÊÊÁ¿Ê¹Óà libevent Ä£ÐÍ,·½±ã¿çƽ̨Çл» iocp, kqueue, epoll µÈÄ£ÐÍ.
[code]
struct ds_socket_pack
{
int socket_fd;
const char* address;
int port;
struct sockaddr_in s_in;
struct event* pevent;
} ;
typedef struct ds_socket_pack ds_socket_pack;
ds_socket_pack* ds_socket_init(const char* address, int port);
void ds_socket_free(ds_socket_pack*);
namespace ds_socket_tcp
{
int ds_socket_client_init(ds_socket_pack*);
int ds_socket_server_init(ds_socket_pack*);
void ds_socket_client_run(ds_socket_pack*, void (*)(int, short, void *));
void ds_socket_server_run(ds_socket_pack*, void (*)(int, short, void *));
void ds_socket_dispatch(ds_socket_pack*);
int ds_recv(int fd, char**, int size, ds_socket_pack* = 0, int time_out = 0);
int ds_send(int fd, const char*, int size, ds_socket_pack* = 0);
// for TCP, the last param is no useful
}
[/code]
UDP
[code]
namespace ds_socket_udp
{
int ds_socket_server_init(ds_socket_pack* p);
int ds_socket_client_init(ds_socket_pack* p);
void ds_socket_client_run(ds_socket_pack*, void (*)(int, short, void *));
void ds_socket_server_run(ds_socket_pack*, void (*)(int, short, void *));
void ds_socket_dispatch(ds_socket_pack*);
int ds_recv(int fd, char**, int size, ds_socket_pack*, int time_out = 0);
int ds_send(int fd, const char*, int size, ds_socket_pack*);
}
[/code]
.
.
[[i] ±¾Ìû×îºóÓÉ DarkSpy ÓÚ 2008-6-25 10:40 ±à¼ [/i]] ¶Ô²»Æð£¬ÄúÁ½´Î·¢±í¼ä¸ôÉÙÓÚ 60 Ã룬Çë²»Òª¹àË®£¡ ÄãÔõô²»·âװͼÐÎÄ£¿é:lol [quote]ÔÌûÓÉ [i]AIKO_sex[/i] ÓÚ 2008-6-25 14:11 ·¢±í [url=http://bbs.linuxeden.com/redirect.php?goto=findpost&pid=613237&ptid=164263][img]http://bbs.linuxeden.com/images/common/back.gif[/img][/url]
ÄãÔõô²»·âװͼÐÎÄ£¿é:lol [/quote]
¶¼xamlÁË
Ò³:
[1]