套接字通信程序示例,通信域为PF_INE,客户端

时间 : 16-01-26 栏目 : linux编程 作者 : 老薛 评论 : 0 点击 : 1,630 次

#include <stdio.h>
#include <stdlib.h>/*for atoi()*/
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <netdb.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main(int argc,char *argv[])
{
    int connect_fd;
    int ret;
    char snd_buf[1024];
    int port;
    int len;

    static struct sockaddr_in srv_addr;

    if(argc!=3){
        printf("Usage: %s server_ip_address port\n",argv[0]);
        return 1;
    }    

    port=atoi(argv[2]);

    connect_fd=socket(PF_INET,SOCK_STREAM,0);
    if(connect_fd<0){
        perror("cannot create communication socket");
        return 1;
    }    

    memset(&srv_addr,0,sizeof(srv_addr));
    srv_addr.sin_family=AF_INET;
    srv_addr.sin_addr.s_addr=inet_addr(argv[1]);
    srv_addr.sin_port=htons(port);

    ret=connect(connect_fd,(struct sockaddr*)&srv_addr,sizeof(srv_addr));
    if(ret==-1){
        perror("cannot connect to the server");
        close(connect_fd);
        return 1;
    }
    
    memset(snd_buf,0,1024);

    while(1){
        write(STDOUT_FILENO,"input message:",14);
        
        len=read(STDIN_FILENO,snd_buf,1024);
        if(len>0)
            write(connect_fd,snd_buf,len);

        len=read(connect_fd,snd_buf,len);
        if(len>0)
            printf("Message from server: %s\n",snd_buf);
        
        if(snd_buf[0]=='@')
            break;    
    }
    
    close(connect_fd);
    return 0;
}

本文标签

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/xtyw003/1171.html

随便看看

0