使用python编写的监听端

import socket
import time
import sys
import string
import struct
import errno
import binascii

#Definition
ser_ip = 'localhost'
ser_port = 15001
HEADER_LISTENER = "IIII"
split_time = 4

class TcpClient:

 def run_srv(self):
    sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    print ("Trying to connect server...")

    addr = (ser_ip, ser_port)
    
    print ("Connecting " + ser_ip + ":" + str(ser_port))

    #Connect server
    try:
        sock.connect(addr)
    except Exception,e:
        print ("Error:%s" % (e))
        sock.close()
        sys.exit()

    hl = struct.pack(HEADER_LISTENER,0,0,0,0)
    header_len = len(hl)
    
    while True:
        try:
            buf_recv = sock.recv(header_len)
	    buf_header = buf_recv[0:header_len]			
            thread_id = struct.unpack("!4I" , buf_header)[0]
	    err_num = struct.unpack("!4I" , buf_header)[1]
	    com_num = struct.unpack("!4I" , buf_header)[2]
	    wait_num = struct.unpack("!4I" , buf_header)[3]
	    #print("header len %d, recv len %d,buf_header:%s,buf_recv:%s")%(header_len,len(buf_recv),binascii.hexlify(buf_header),binascii.hexlify(buf_recv))
            print ("split time:%d")%(split_time)
            print ("thread id :%d")%(thread_id)
            print ("error nums:%d")%(err_num)
            print ("compl nums:%d")%(com_num)
            print ("wait  nums:%d")%(wait_num)
            print ("----------------------")
        except Exception,e:
            print ("Error:%s" % (e))
            sock.close()
            sys.exit()
            

if __name__ == '__main__':
    if (len(sys.argv) >= 2):
        ser_port = int(sys.argv[1])
    
    client = TcpClient()
    client.run_srv()

你可能感兴趣的:(socket,python,struct)