ソケットプログラミングの例

2416 ワード

1.socketプログラミング
   ソフトウェアテストとjmeterはクライアントの同時実行を実現するためであり、jmeterの原理はスレッドプールを使用することである.
   ソフトウェア開発の目的は、サービス側の同時サポートマルチユーザ同時同時作業を実現することである.
2.マルチスレッドに基づくソケットサービスの同時実現


'''

'''
import socket
client = socket.socket()
client.connect(('127.0.0.1',8090))
while True:
client.send('33'.encode('utf-8'))
data = client.recv(1024)
print(data)

'''

'''
1:
import socket
from concurrent.futures import ThreadPoolExecutor

server = socket.socket()

server.bind(
('127.0.0.1', 9000)
)

server.listen(5)


# 1.
def run(conn):
while True:
try:
data = conn.recv(1024)
if len(data) == 0:
break
print(data.decode('utf-8'))
conn.send('111'.encode('utf-8'))

except Exception as e:
break

conn.close()


if __name__ == '__main__':
print('Server is run....')
pool = ThreadPoolExecutor(50)
while True:
conn, addr = server.accept()
print(addr)
pool.submit(run, conn)



  2:           
def communicate(conn):   #          
while True:
try:
data = conn.recv(1024)
if len(data) == 0:
break
conn.send(data.upper())
except Exception as e:
print(e)
break
conn.close()


def server():
server = socket.socket()
server.bind(('127.0.0.1',8989))
server.listen(5)
while True:
conn,addr = server.accept()
t = Thread(target= communicate,args=(conn,) ) # python () ,
t.start() # communicate server ,start()

if __name__ == '__main__':
s = Thread(target = server)
s.start()