Python socket编程客户端与服务端通信

[本文出自天外归云的博客园]

目标:实现客户端与服务端的socket通信,消息传输。

客户端

客户端代码:

from socket import socket,AF_INET,SOCK_STREAM

#服务端的ip地址
server_ip = '127.0.0.1'
#服务端socket绑定的端口号
server_port = 20000

if __name__ == '__main__':
    while True:
        str_msg = input("请输入要发送信息:")
        if str_msg != "":
            bytes_msg = bytes(str_msg, encoding = "gbk")
            client = socket(AF_INET,SOCK_STREAM)
            client.connect((server_ip,server_port))
            client.send(bytes_msg)
            print(str(client.recv(8192),encoding="gbk"))
            client.close()

客户端(Mac系统)运行截图:

服务端

服务端代码:

from socketserver import BaseRequestHandler, TCPServer

#指定接收消息的客户端ip列表
target_clients = ["10.235.0.109"]

class EchoHandler(BaseRequestHandler):
    def handle(self):
        for target_client in target_clients:
            if target_client in self.client_address:
                print('Got connection from', self.client_address)
                msg = self.request.recv(8192)
                if not msg:
                    break
                ret_msg = bytes("自动回复:消息已收到!", encoding = "gbk")
                self.request.send(ret_msg)
                print(str(msg, encoding = "gbk"))
                break

if __name__ == '__main__':
    from threading import Thread
    NWORKERS = 16
    #绑定socket服务端所在ip和端口号
    serv = TCPServer(('', 20000), EchoHandler)
    for n in range(NWORKERS):
        t = Thread(target=serv.serve_forever)
        t.daemon = True
        t.start()
    serv.serve_forever()

服务端(Windows系统)运行截图,注意要设置cmd活动页代码为936(chcp 936)方可显示中文,设置cmd属性中的字体为点阵字体:

参考资料:Python3-cookbook 11.2 创建TCP服务器

转载于:https://www.cnblogs.com/LanTianYou/p/6890383.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值