亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 974 | 回復(fù): 0
打印 上一主題 下一主題

linux下簡單的聊天程序(多路復(fù)用I/O) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-07-09 16:45 |只看該作者 |倒序?yàn)g覽
server.c
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAX_BUF_SIZE 1024
#define MAX_LISTEN 12
int main(int argc, char *argv[])
{
    int sockfd, conn_fd;
    int client_fd[MAX_LISTEN];
    struct sockaddr_in my_addr, client_addr;
    unsigned int backlog, port;
    int sin_size;
    char buf[MAX_BUF_SIZE + 1];
    fd_set rfds;
    struct timeval tv;
    int retval, maxfd = -1;
    int i;
    if (argv[1])
        port = atoi(argv[1]);
    else
        port = 8003;
    if (argv[2])
        backlog = atoi(argv[2]);
    else
        backlog = 12;
    if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
    {
        fprintf(stderr, "socket error!\n");
        exit(1);
    }
    int on = 1;
    if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on))  0)
            {
                printf("receive message from client %d successfully : [%s]\ntotal %d bytes\n", client_fd, buf, sin_size);
            }
            else
            {
                close(client_fd);
                FD_CLR(client_fd, &rfds);
                printf("del socket %d from select pipe. \n", client_fd);
                client_fd = -1;
                continue;
            }
        }
        if (FD_ISSET(0, &rfds))
        {
            bzero(buf, MAX_BUF_SIZE + 1);
            fgets(buf, MAX_BUF_SIZE, stdin);
            if (!strncasecmp(buf, "quit", 4))
            {
                printf("quit chat!\n");
                break;
            }
            for (i = 0; i  0)
                {
                    printf("message: %s\t send to client %d successfully, total %d bytes!\n", buf, client_fd, sin_size);
                }
                else
                {
                    printf("message: %s\t send failure, error code is %d, error message is %s\n",
                            buf, errno, strerror(errno));
                    break;
                }
            }
        }
        for (i=0; i
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAX_BUF_SIZE 1024
int main(int argc, char *argv[])
{
    int sockfd;
    int sin_size;
    struct sockaddr_in dest;
    char buf[MAX_BUF_SIZE + 1];
    fd_set rfds;
    struct timeval tv;
    int retval, maxfd = -1;
    if (argc != 3)
    {
        printf("usage: %s ip port\n for example: %s 127.0.0.1 8003\n", argv[0], argv[0]);
        exit(1);
    }
    if ((sockfd = socket(AF_INET, SOCK_STREAM, 0))  0)
            {
                printf("receive message from server successfully: [%s]\ntotal %d bytes\n", buf, sin_size);
            }
            else
            {
                if (sin_size < 0)
                    printf("receive message failure! error code is %d, error message is %s\n",
                           errno, strerror(errno));
            }
        }
        
        if (FD_ISSET(0, &rfds))
        {
            bzero(buf, MAX_BUF_SIZE + 1);
            fgets(buf, MAX_BUF_SIZE, stdin);
            if (!strncasecmp(buf, "quit", 4))
            {
                printf("quit chat!\n");
                break;
            }
            sin_size = send(sockfd, buf, strlen(buf) - 1, 0);
            if (sin_size < 0)
            {
                printf("message send failure: [%s], error code is %d, error message is %s\n",
                       buf, errno, strerror(errno));
                break;
            }
            else
            {
                printf("message: %s\tsend to server successfully, total %d bytes\n", buf, sin_size);
            }
        }
    }
    close(sockfd);
    return 0;
}
               
               
               

本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u2/78437/showart_1990894.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP