python2.7_1.14_単純なエコークライアント/サーバアプリケーションの作成
5522 ワード
1、サービス側server.py
2、クライアントクライアントpy
3.運転
python server.py --port=9900
python client.py --port=9900
# -*- coding: utf-8 -*-
import socket
import argparse
host = 'localhost'
data_payload = 2048
backlog = 5
def echo_server(port):
# TCP
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
#
server_address = (host, port)
print 'Starting up echo server on %s port %s' % server_address
sock.bind(server_address)
# ,backlog
sock.listen(backlog)
while True:
print 'Waiting to receive message from client'
client, address = sock.accept()
data = client.recv(data_payload)
if data:
print 'Receive Data:%s' % data
#
data = '<worked>'+data+'</worked>'
client.send(data)
print 'Sent %s bytes back to %s' % (data, address)
#
client.close()
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Socket Server Example')
parser.add_argument('--port', action='store', dest='port', type=int, required=True)
given_args = parser.parse_args()
port = given_args.port
echo_server(port)
2、クライアントクライアントpy
# -*- coding: utf-8 -*-
import socket
import argparse
host = 'localhost'
def echo_client(port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = (host, port)
print 'Connecting to %s port %s' % server_address
sock.connect(server_address)
try:
message = ' '
# CMD GBK
message = message.decode('utf-8').encode('gbk')
print 'Sending: %s' % message
sock.sendall(message)
amount_received = 0
amount_expected = len(message)
while amount_received < amount_expected:
data = sock.recv(16)
amount_received += len(data)
print 'Received:%s' % data
except socket.error, e:
print 'Socket error: %s' % str(e)
except Exception, e:
print 'Other error: %s' % str(e)
finally:
print 'Closing connection to the server'
sock.close()
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Socket Server Example')
parser.add_argument('--port', action='store', dest='port', type=int, required=True)
given_args = parser.parse_args()
port = given_args.port
print port
echo_client(port)
3.運転
python server.py --port=9900
python client.py --port=9900