简单的socket多线程示例 封装

#!/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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值