1.2socket服务器使用多线程

Posted 啊峰哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.2socket服务器使用多线程相关的知识,希望对你有一定的参考价值。

socket服务器代码如下

from socket import *
import time
import threading,_thread as thread

myHost = ‘‘                                                                #‘‘说明所有IP都可以连接
myPort = 50007                                                             #设置一个端口

socketobj = socket(AF_INET,SOCK_STREAM)                                    #创建TCP对象
socketobj.bind((myHost,myPort))                                            #绑定端口
socketobj.listen(5)                                                        #允许5个请求连接

def now():
    return time.ctime(time.time())

def handleClient(connection):
    #time.sleep(5)
    while True:
        data = connection.recv(1024)                                       #每次读取最多1024字节
        if not data: break
        reply = Echo=> %s at %s % (data,now())                           #发送数据给客户端
        connection.send(reply.encode())
    connection.close()


def dispatcher():
    while True:
        connection,address = socketobj.accept()                             #接受数据并打印
        print(Server connected by,,address,end=‘‘)
        print(at,now())
        #thread.start_new_thread(handleClient,(connection,))                #使用多线程
        thread = threading.Thread(target=handleClient,args=(connection,))   #使用多线程
        thread.start()                                                      #开始线程

dispatcher()

socket客户端代码如下

from socket import *

serverHost = localhost
serverPort = 50007

while True:
    messages = [input(输入).encode()]             #输入信息,并设置编码, 可设置b‘‘或者str.encode()

    socketobj = socket(AF_INET, SOCK_STREAM)        # 创建TCP对象
    socketobj.connect((serverHost, serverPort))     # 连接端口

    for line in messages:
        socketobj.send(line)
        data = socketobj.recv(1024)                 # 从服务器接受信息
        print(Client received:, data.decode())    #打印信息,解码打印,str.decode()

    socketobj.close()

 

以上是关于1.2socket服务器使用多线程的主要内容,如果未能解决你的问题,请参考以下文章

Linux:TCP Socket编程(代码实战)

Linux:TCP Socket编程(代码实战)

java socket 多线程通讯 使用mina作为服务端

一个Socket能否被多线程写入

C#socket通信-----多线程

C# socket服务器端 多线程客户端 如何少量使用CPU