2019.10.22 用TCP实现服务端并发接收

Posted agsol

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019.10.22 用TCP实现服务端并发接收相关的知识,希望对你有一定的参考价值。

client



import socket

client = socket.socket()
client.connect(
    ('127.0.0.1',8888)
)


while 1:
    msg = input('input>>>')
    if  msg == 'q':
        break
    client.send(msg.encode('utf-8'))
    data = client.recv(1024).decode('utf-8')
    print(data)

client.close()

server线程解决

import socket
from  multiprocessing  import Process,Queue
import threading
import socketserver

# q = Queue(4)

server = socket.socket()
server.bind(
    ('127.0.0.1', 8888)
)
server.listen(3)

def se():


    while 1:
        conn,addr = server.accept()
        print(addr)

        while 1:
            try:
                data = conn.recv(1024).decode('utf-8')
                print(data)
                conn.send(data.encode('utf-8'))

            except Exception as e:
                print(e)
                break

        conn.close()



if __name__ == '__main__':

    p1 = threading.Thread(target=se)
    p2 = threading.Thread(target=se)
    p3 = threading.Thread(target=se)
    p1.start()
    p2.start()
    p3.start()

server进程解决

from  multiprocessing  import Process
import socket




def se(ser):


    while 1:

        # q.put(sb)
        conn,addr = ser.accept()
        print(addr)

        while 1:
            try:
                data = conn.recv(1024).decode('utf-8')
                print(data)
                conn.send(data.encode('utf-8'))

            except Exception as e:
                print(e)
                break

        conn.close()



if __name__ == '__main__':

    server = socket.socket()
    server.bind(
        ('127.0.0.1', 8888)
    )
    server.listen(3)
    p1 = Process(target=se,args = (server,))
    p2 = Process(target=se,args = (server,))
    p3 = Process(target=se,args = (server,))


    p1.start()
    p2.start()
    p3.start()

以上是关于2019.10.22 用TCP实现服务端并发接收的主要内容,如果未能解决你的问题,请参考以下文章

TCP socket 多线程 并发服务器(发送)与客户端(接收)

测试Linux下tcp最大连接数限制

测试Linux下tcp最大连接数限制

Python实现TCP服务端的并发

实现UDP高效接收/响应

C# 1000个socket客户端并发