本文实例为大家分享了python编写监听端的具体代码,供大家参考,具体内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
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() |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/pingD/article/details/41804807