#!/usr/bin/env python
#-*- coding:utf-8 -*-
#@Time : 2018/1/3 23:25
#@Author : Zhang Xun
#@File : mysocket.py
import commands
import socket
import threading
class MyThread(threading.Thread):
def __init__(self,conn):
super(MyThread,self).__init__()
self.conn = conn
def run(self):
cmd = self.conn.recv(2048)
stauts,output = commands.getstatusoutput(cmd)
self.conn.sendall(output)
class MySocketServer(object):
def __init__(self,host,port):
self.host = host
self.port = port
self.address = (host,port)
self.s = None
self.conn = None
self.clinetaddr = None
def tcpconnect(self):
n = input("请输入最大监听数")
self.s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.s.bind(self.address)
self.s.listen(n)
print("Sever has started! ")
while 1:
self.conn,self.clientaddr = self.s.accept()
print("{0} 已连接到服务端".format(self.clientaddr))
myThread = MyThread(self.conn)
myThread.start()
s.close()
class MySocketClient(object):
def __init__(self,host,port):
self.host = host
self.port = port
self.address = (host,port)
self.s = None
self.clinetaddr = None
def clientconnect(self):
self.s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.s.connect(self.address)
while 1:
cmd = raw_input("[{0}:{1}]>>>".format(self.host,self.port))
self.s.sendall(cmd.encode("utf-8"))
data = self.s.recv(2048)
print(data)
############################################
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#@Time : 2018/1/6 1:47
#@Author : Zhang Xun
#@File : serve
from mysocket import MySocketServer
mySocketServer = MySocketServer(port=12345,host="192.168.61.140")
mySocketServer.tcpconnect()
############################################
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#@Time : 2018/1/6 1:53
#@Author : Zhang Xun
#@File : client
from mysocket import MySocketClient
mySocketClient = MySocketClient(host="192.168.61.140",port=12345)
mySocketClient.clientconnect()
简单的socket多线程示例 封装
最新推荐文章于 2021-09-27 10:14:55 发布