本文实例为大家分享了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