zoukankan      html  css  js  c++  java
  • Most simple basic of internet programming based on two different machines sharing the same local net

    This blog is just shown for the most simple basic of internet programming based on two different machines sharing the same local net.While the client sends data to server, server just sends back data with timestamps

    Server

    (1)Parameter configure

    import socket
    from time import ctime
    
    Host=""   # host name,default to server machine's IP
    
    Port=1300 
    
    addr=(Host,Port) 
    
    Bufsize=1024 # The maximum amount of data to be received at once is specified by bufsize
    

    (2)Create server

    Server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    

    AF-->address family,such as AF_LOCAL,AF_INET;SOCK_STREAM specifies using TCP,while SOCK_DGRAM specifies UDP.

    Server.bind(addr)
    
    Server.listen(5)
    

    while True:
    print('...Waiting to be connected...')
    client,address=Server.accept() # default to be block mode,that is blocking while waiting. input() also has a flavor of block
    while True:
    data=client.recv(Bufsize)
    if not data:
    break
    print(data)
    client.send(bytes(ctime(),'utf8')+data)
    client.close()

    Server.close()

    ** In a summary**, server is just created as a socket object through socket.socket(),and then bind() this socket object with the machine, and then listen(), following that, going into

    Client

    Parameter config

    import socket
    
    Host='192.168.1.7'
    

    Host number can be checked out by this: On the server machine,cmd-->ipconfig/all--->IPv4 address:192.168.1.7

    Port=1300 # The same with server's port 
    
    Address=(Host,Port)
    
    BufSize=1024
    

    Create client

    Client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    

    Client.connect(Address)

    While True:
    data=input('>>>')
    if not data:
    break
    Client.send(bytes(data,'utf8'))
    data=Client.recv(BufSize)
    if not data:
    break
    print(data.decode('utf8'))

    Client.close()

    ##### 愿你一寸一寸地攻城略地,一点一点地焕然一新 #####
  • 相关阅读:
    20201226 ZooKeeper
    20201220 分布式理论、架构设计(自定义RPC)
    20201217 Cluster模式潜在问题及解决方案、Web服务综合解决方案
    20201216 Nginx
    20201214 Tomcat
    20201209 Spring Boot
    20201206 Spring Data JPA
    20201205 Spring MVC
    20201128 IoC容器设计实现及Spring源码分析
    numpy数组及处理:效率对比
  • 原文地址:https://www.cnblogs.com/johnyang/p/12367516.html
Copyright © 2011-2022 走看看