LinuxÒÁµéÔ°ÂÛ̳'s Archiver

DarkSpy ·¢±íÓÚ 2008-6-25 10:26

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]]

n00b ·¢±íÓÚ 2008-6-25 10:28

¶Ô²»Æð£¬ÄúÁ½´Î·¢±í¼ä¸ôÉÙÓÚ 60 Ã룬Çë²»Òª¹àË®£¡

AIKO_sex ·¢±íÓÚ 2008-6-25 14:11

ÄãÔõô²»·âװͼÐÎÄ£¿é:lol

blackspace ·¢±íÓÚ 2008-6-25 16:23

[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]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.