zoukankan      html  css  js  c++  java
  • socket

    Server side

    define sockaddr_in
    structure sockaddr_in serveraddr, clientaddr

    new a socket
    server_socket = socket (AF_INET, SOCK_STREAM, 0)

    setup serveraddr
    serveraddr.sin_family
    serveraddr.sin_port
    serveraddr.sin_addr.s_addr = htons(INADDR_ANY)

    bind serveraddr to server_socket
    bind(server_socket, (struct sockaddr *) &serveraddr, sizeof(serveraddr)

    set up listen
    listen(server_socket, LENGTH_OF_LISTEN_QUEUE)

    server loop cycle, never exit

    no need to setup in server loop
    clientaddr.sin_family, clientaddr.sin_port, clientaddr.sin_addr.s_addr
    client_socket is generate by accept

    client_socket = accetp(server_socket, (struct sockaddr *) &clientaddr, sizeof(clientaddr))

    sent some information to client
    send(client_socket, buf, BUFFER_SIZE, 0)

    close client_socket after send inforation to client
    close(client_socket)


    Client side

    define sockaddr_in
    struct sockaddr_in clientaddr, serveraddr

    define buffer char array
    char buf[BUFFER_SIZE]

    new a socket
    client_socket  =  socket(AF_INET, SOCK_STREAM, 0)

    setup clientaddr
    clientaddr.sin_family
    clientaddr.sin_port
    clientaddr.sin_addr.s_addr

    setup serveraddr
    serveraddr.sin_family
    serveraddr.sin_port
    serveraddr.sin_addr.s_addr

    inet_aton(argv[1], &serveraddr.sin_addr)
    serveraddr.sin_addr.s_addr = inet_aton("127.0.0.1")

    bind clientaddr to client_socket
    bind(client_socket, (struct sockaddr*)&clientaddr, sizeof(clientaddr))

    connect client_socket to serveraddr
    connect(client_socket, (struct sockaddr*)&serveraddr, sizeof(serveraddr))

    receive information from server side
    recv(client_socket, buf, BUFFER_SIZE, 0)

  • 相关阅读:
    Rsync数据同步详情及配置
    ssh密钥及发放
    ssh服务及简单应用
    二叉搜索树的第k个结点
    序列化二叉树
    把二叉树打印成多行
    按之字形顺序打印二叉树
    对称的二叉树
    二叉树的下一个结点
    删除链表中重复的结点
  • 原文地址:https://www.cnblogs.com/greencolor/p/2743872.html
Copyright © 2011-2022 走看看