linux tcp socket简单例子

客户端代码 client.c
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>

int  main( int  argc,  char  **argv)
{
     int  sockfd;
     struct  sockaddr_in servaddr;

    sockfd = socket(PF_INET, SOCK_STREAM,  0 );

    bzero(&servaddr,  sizeof (servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons( 50001 );
    servaddr.sin_addr.s_addr = inet_addr( "127.0.0.1" );

    connect(sockfd, ( struct  sockaddr *)&servaddr,  sizeof (servaddr));

     char  sendline[ 100 ];
    sprintf(sendline,  "Hello, world!" );

    write(sockfd, sendline, strlen(sendline));

    close(sockfd);

     return   1 ;
}

服务器端代码 server.c
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>

int  main( int  argc,  char  **argv)
{
     int  listenfd;
     int  connfd;
     struct  sockaddr_in servaddr;

    listenfd = socket(PF_INET, SOCK_STREAM,  0 );

    bzero(&servaddr,  sizeof (servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
    servaddr.sin_port = htons( 50001 );

    bind(listenfd, ( struct  sockaddr *)&servaddr,  sizeof (servaddr));

    listen(listenfd,  10 );
    connfd = accept(listenfd, ( struct  sockaddr *) NULL NULL );

     int  n;
     char  recvline[ 1024 ];

     while ((n=read(connfd, recvline,  1024 )) >  0 )
    {
        recvline[n] =  0 ;
        printf( "%s\n" , recvline);
    }

    close(connfd);
    close(listenfd);

     return   1 ;
}

你可能感兴趣的:(linux,socket,tcp)