当前位置: 技术问答>linux和unix
谁能给个 linux 下的 socket网络通信程序例子(C语言的)
来源: 互联网 发布时间:2016-05-11
本文导语: 谁能给个 linux 下的 socket网络通信程序(C语言的) 是服器端 客户端 服务器端 连接方面支持多客户连接,接收方面用线程,不影响做其他事即可,客户端断开后,服务器端有通知 客户端 接收方面有线程,不...
谁能给个 linux 下的 socket网络通信程序(C语言的)
是服器端 客户端
服务器端 连接方面支持多客户连接,接收方面用线程,不影响做其他事即可,客户端断开后,服务器端有通知
客户端 接收方面有线程,不等待, 服务器端停止 可户端有通知
小弟头一次写linux程序 请各位帮忙!!!!!自己写了一个运行起来有点问题!!!总有小毛病
所以希望各位大哥提供
是服器端 客户端
服务器端 连接方面支持多客户连接,接收方面用线程,不影响做其他事即可,客户端断开后,服务器端有通知
客户端 接收方面有线程,不等待, 服务器端停止 可户端有通知
小弟头一次写linux程序 请各位帮忙!!!!!自己写了一个运行起来有点问题!!!总有小毛病
所以希望各位大哥提供
|
select已经过时了,还是用epoll吧:)
SERVER端:
SERVER端:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ___PORT 1357
#define ___epoll_parall_events (20)
#define ___epoll_min (10)
static unsigned long ___epoll_max = 1024;
static int sockfd_server;
static int *epollfds;
static int epfd;
static int max_fd = 0;
static struct epoll_event eevents[___epoll_parall_events];
inline void fd_set2(int fd);
inline int fd_get2(int ifd);
inline void fd_clr2(int ifd);
inline void fd_zero2(void);
inline int fd_isset2(int ifd);
inline int fd_isin(int ifd);
void process_data(int sockfd, char *buf);
int main(int argc, char *argv[])
{
int newsockfd;
struct sockaddr_in addr;
int addr_len;
time_t local_time;
int readbytes;
int ret_nums,ifd;
struct rlimit lim;
unsigned long user_nums;
char buffer[256];
char msg[]="Welcome 2gliethttp server!";
addr_len = sizeof(struct sockaddr_in);
if((sockfd_server = socket(PF_INET,SOCK_STREAM,0))