Python入门:实现Echo Server

本文介绍如何使用PyCharm创建项目并实现简单的HelloWorld程序,同时探讨了单双引号在字符串定义中的区别,并提供了EchoServer的服务端及客户端Python代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pycharm实现helloworld


  • 创建项目生成helloworld.py
  • print 'hello world!' 一行代码搞定!?或者可以print "hello world!"
  • $ python helloworld.py 则可以输出 hello world!

    单引号和双引号的区别–肤浅的认识

    对于一个字符串Let’s go,中间包含了一个符号’,那么在定义的时候
    str = ‘Let\’s go’里面会加入一个转义字符;而如果用双引号str = “Let’s go”,则字符串表达清晰。

    对于以下表达式,其实都是一样的

#执行结果都为true
print 'Hello python' == "Hello python"
print 'Hello python' == '''Hello python'''
print 'Hello python' == 'Hello'' ''python'
print 'Hello python' == "Hello"" ""python"
print 'Hello python' == '''Hello'''''' ''''''python'''

Echo Server的实现

服务端

import socket
import argparse

host = 'localhost'
data_payload = 2048
backlog = 5


def echo(port):
    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)

    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:%s' % data
            data = data
            client.send(data)
            print 'Send %s bytes back to %s' % (data, address)

        client.close()

//猜测为main函数入口
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(port)


#Usage:python server.py --port=2007

客户端

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 = 'I \'m a fucking programmer'
        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)


# Usage:python client.py --port=2007
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值