Skip to content

Commit 9b4f3aa

Browse files
committed
socketserver study
1 parent 717e935 commit 9b4f3aa

File tree

3 files changed

+99
-5
lines changed

3 files changed

+99
-5
lines changed

studyLib/socket/my_tcp_client.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88

99

1010
def main():
11-
server_addr = ('146.11.22.128', 9999)
11+
server_addr = ('146.11.22.166', 20000)
1212
client = socket.socket()
1313
client.connect(server_addr)
14-
send_data1 = [b'aheuo', b'ashxao', b'bhaua']
15-
print(client.recv(1024))
14+
send_data1 = [b'1aheuo\r\n', b'2ashxao\r\n', b'3bhaua\r\n']
15+
print(client.getpeername())
1616
for data in send_data1:
1717
client.send(data)
18-
print(client.recv(1024).decode())
19-
client.send(b'exit')
18+
print(client.recv(1024))
19+
client.send(b'exit\r\n')
2020
client.close()
2121
pass
2222

studyLib/socket/sockClient.py

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#!/usr/bin/env python3
2+
# -*- coding: utf-8 -*-
3+
4+
import socket, threading, multiprocessing
5+
from network_setting import *
6+
from time import ctime
7+
8+
__author__ = 'Mr.Huo'
9+
10+
TcpSerAddr = (LOCALIP, TCP_PORT_S)
11+
TcpCliAddr = (LOCALIP, TCP_PORT_C)
12+
13+
14+
class MyTcpClient():
15+
def __init__(self, client_address, server_address, buff=1024, bind=True):
16+
self.client_address = client_address
17+
self.server_address = server_address
18+
self.socket = socket.socket()
19+
self.recvdata = None
20+
self.buff = buff
21+
if bind:
22+
try:
23+
self.socket.bind(self.client_address)
24+
except:
25+
self.socket.close()
26+
raise
27+
try:
28+
self.socket.connect(self.server_address)
29+
except:
30+
self.socket.close()
31+
raise
32+
33+
def handle(self, send_data):
34+
pass
35+
36+
def client_actions(self, send_data):
37+
self.socket.send(send_data.encode('utf-8') + b'\r\n')
38+
try:
39+
self.recvdata = self.socket.recv(self.buff)
40+
except Exception as err:
41+
print(err)
42+
self.shutdown()
43+
finally:
44+
print('Server Send: %s' % (self.recvdata.decode('utf-8')))
45+
46+
def shutdown(self):
47+
self.socket.close()
48+
49+
50+
def main():
51+
tcpClie = MyTcpClient(TcpCliAddr, TcpSerAddr)
52+
while True:
53+
send_data = input('input the send data to server:')
54+
tcpClie.client_actions(send_data)
55+
if b'ByeBye' in tcpClie.recvdata or not tcpClie.recvdata:
56+
break
57+
tcpClie.shutdown()
58+
59+
60+
if __name__ == '__main__':
61+
main()

studyLib/socket/sockServer.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/usr/bin/env python3
2+
# -*- coding: utf-8 -*-
3+
4+
from network_setting import *
5+
from socketserver import (TCPServer as TCP, StreamRequestHandler as SRH)
6+
from time import ctime
7+
8+
__author__ = 'Mr.Huo'
9+
10+
TcpSerAddr = (LOCALIP, TCP_PORT_S)
11+
12+
13+
class MyRequestHandler(SRH):
14+
def handle(self):
15+
print('...connect from:', self.client_address)
16+
while True:
17+
data = self.rfile.readline()
18+
print(type(data))
19+
if not data or b'ByeBye' in data:
20+
self.wfile.write(('[%s] %s' % (ctime(), b'ByeBye'.decode("UTF-8"))).encode("UTF-8"))
21+
break
22+
print(data)
23+
self.wfile.write(('[%s] %s' % (ctime(), data.decode("UTF-8"))).encode("UTF-8"))
24+
25+
26+
def main():
27+
tcpServ = TCP(TcpSerAddr, MyRequestHandler)
28+
print('waiting for connection...')
29+
tcpServ.serve_forever()
30+
31+
32+
if __name__ == '__main__':
33+
main()

0 commit comments

Comments
 (0)