close

一個LOOP 做 TCP/IP 收資料

另一個

 

=========================================

import threading,time
import socket
global G_Data


def main():
       
    added_thread = threading.Thread(target = tcp_job,)
    added_thread.start()
   
    while True:
        time.sleep(0.1)
        global G_Data
       
        if G_Data == "a":
           print("a")
           G_Data = ""
        elif G_Data == "b":
           print("b")
           G_Data = ""
        elif G_Data == "c":
           print("c")
           G_Data = ""
           break

    time.sleep(2)
    print("All Finish")   # If main is finished, thread is same
  
   

def tcp_job():
   
    global G_Data
    print("Start")
    address = ('127.0.0.1', 21) 
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # s = socket.socket()
   
    s.bind(address) 
    s.listen(1)
    connection, addr = s.accept()
    while True:      
       #print ('got connected from',addr)
       time.sleep(1.5)
       Data=connection.recv(10)
      
       G_Data = Data.decode()
       G_Data = G_Data[0:len(G_Data)-2]  # No \r\n
      
       print("TCP_G_Data=",G_Data)
       print("Data=",Data)
      
       if Data == b"close\r\n":   # 客戶端要停止...
           break
       elif not Data:             # 如果客戶端斷線...
           break
    s.close()  
      
 
if __name__ == '__main__':
   
    main()                      # 從MAIN開始

=======================================

 

 

 

 

 

 

 

arrow
arrow
    全站熱搜

    ricky10116r2d2 發表在 痞客邦 留言(0) 人氣()