学习python仅此一篇就够了(Socket网络编程)

网络编程

服务端开发

Socket

socket是进程之间通信一个工具,好比现实生活中的插座,所有的家用电器要想工作都是基于插座进行,进程之间想要进行网络通信需要socket。

客户端和服务端

socket服务端:等待其他进程的连接,可接受发来的消息,可以回复消息。

socket客户端:主动连接服务端,可以发生消息,可以接收回复。

import socket

#创建socket对象
socket_server = socket.socket()
#绑定ip地址
socket_server.bind(("localhost", 8888))

#监听端口
socket_server.listen(1) #允许连接数量

#等待客户端连接
# result: tuple = socket_server.accept()
# conn = result[0] #客户端和服务端的连接对象
# address = result[1] #客户端地址信息

conn, address = socket_server.accept()

print(f"接收到了客户端的连接,客户端的信息是{address}")

while True:
    #接收客户信息
    DATA = conn.recv(1024).decode("UTF-8")
    #recv接收的参数是缓存区大小,一般给1024
    #recv方法的返回值是一个字节数组,不是字符串,提供编码将字节数组转化为字符串

    print(f"客户端发来的消息是{DATA}")

    #发送回复消息
    msg = input("请输入客户端回复的消息:") #将字符串编码为字节
    if msg == "exit":
        break
    conn.send(msg.encode("UTF-8"))

#关闭连接
conn.close()
socket_server.close()

 

 

客户端开发

import socket
#创建socket对象
socket_client = socket.socket()
#连接服务器
socket_client.connect(("localhost", 8888))

while True:
    #发送消息
    msg = input("请输入给客户端发送的信息")
    if msg == "exit":
        break
    socket_client.send(msg.encode("UTF-8"))
    #接收消息
    recv_ata = socket_client.recv(1024)
    print(f"服务端回复的消息是{recv_ata.decode('UTF-8')}")

#关闭连接
socket_client.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

元气满满的热码式

感谢您的支持!我会继续努力发布

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值