免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 981 | 回复: 0
打印 上一主题 下一主题

socket [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:46 |只看该作者 |倒序浏览
#include<netinet/in.h>  //for sockaddr_in
#include<sys/types.h>    //for socket
#include<sys/socket.h>    //for socket
#include<stdio.h>        //for printf
#include<stdlib.h>    //for ext
#include<string.h>    //for bzero

int main(int argc,char *argv[])
{
    int sock_fd;
    char rbuf[200],sbuf[200];
    struct sockaddr_in serv_addr;
    
    serv_addr.sin_family=AF_INET;
    serv_addr.sin_port=htons(6621);
    serv_addr.sin_addr.s_addr=htons(INADDR_ANY);
    bzero(&(serv_addr.sin_zero),8);    
        
    sock_fd=socket(AF_INET,SOCK_STREAM,0);

    connect(sock_fd,(struct sockaddr*)&serv_addr,sizeof(struct sockaddr));
    while(1)
    {

        int recvhow=recv(sock_fd,rbuf,200,0);
        rbuf[recvhow]='\0';
/*
        if(rbuf[0]=='#')
            break;
        else
        {
            printf("server says:\t%s",rbuf);
            bzero(rbuf,200);
*/
            gets(sbuf);
            printf("%s",sbuf);
            send(sock_fd,"hello world!",strlen(sbuf),0);
    //    }
    }    

    close(sock_fd);
    return 0;
    
}















#include<netinet/in.h>  //for sockaddr_in
#include<sys/types.h>    //for socket
#include<sys/socket.h>    //for socket
#include<stdio.h>        //for printf
#include<stdlib.h>    //for ext
#include<string.h>    //for bzero


int main(int argc,char *argv)
{
    char rbuf[200];
    char sbuf[200];
    int server_socket,new_socket;
    struct sockaddr_in  server_addr;
    bzero(&server_addr,sizeof(server_addr));
    server_addr.sin_family=AF_INET;
    server_addr.sin_addr.s_addr=htonl(INADDR_ANY);
    server_addr.sin_port=htons(6621);
    bzero(&(server_addr.sin_zero),8);
   
    server_socket=socket(AF_INET,SOCK_STREAM,0);

    if(server_socket<0)
    {
        printf("Failed to create Socket!\n");
        exit(1);
    }

    if( bind(server_socket,(struct sockaddr*)&server_addr,sizeof(server_addr))== -1 )
    {
        printf("Faild to bind!\n");
        exit(1);
    }

    if( listen(server_socket,20)==-1)
    {
        printf("Failed to listen!\n");
        exit(1);
    }
   
    while(1)
    {
        struct sockaddr_in client_addr;
        int sin_size=sizeof(client_addr);
        new_socket=accept(server_socket,(struct sockaddr*)&client_addr,&sin_size);

        if(new_socket==-1)
        {
            printf("Failed to accept!\n");
            break;
        }

        int num=recv(new_socket,rbuf,200,0);
        rbuf[num]='\0';
        /*
        if(rbuf[0]=='#')
            break;
        else
        {*/
            printf("client says:\t%s",rbuf);
            /*bzero(rbuf,200);
            gets(sbuf);
            printf("%s",sbuf);
            send(new_socket,sbuf,strlen(sbuf),0);
        }*/
    }
    close(new_socket);
    close(server_socket);
    return 0;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP